Documentation for a newer release is available. View Latest

Handle Negative Creditor CT Payment Status Report TM01 after payment processing.story

Scenario: Handling CSM rejects after processing - Time out from the CSM


Steps
When the CSM sends a 'Customer Credit Transfer'
Then the Payment Service receives a 'Receive Payment Request'
When the Payment Service sends a 'Receive Payment Response' with values:
| payload.content.txInfAndSts[0].txSts                  | <transactionStatus> |
| payload.content.txInfAndSts[0].stsRsnInf[0].rsn.cd    | <cd>                |
| payload.content.txInfAndSts[0].stsRsnInf[0].rsn.prtry | <prtry>             |
Then the CSM receives a 'Payment Status Report' with values:
| FIToFIPmtStsRpt.txInfAndSts[0].stsRsnInf[0].rsn.cd                   | <cd>                |
| FIToFIPmtStsRpt.txInfAndSts[0].stsRsnInf[0].rsn.prtry                | <prtry>             |
| FIToFIPmtStsRpt.txInfAndSts[0].txSts                                 | <transactionStatus> |
| FIToFIPmtStsRpt.txInfAndSts[0].instgAgt.finInstnId.clrSysMmbId.mmbId | 318668              |
When the CSM sends a 'Payment Status Report' with values:
| FIToFIPmtStsRpt.txInfAndSts[0].txSts                                 | CANC   |
| FIToFIPmtStsRpt.txInfAndSts[0].stsRsnInf[0].rsn.cd                   | TM01   |
| FIToFIPmtStsRpt.txInfAndSts[0].clrSysRef                             | CNC002 |
| FIToFIPmtStsRpt.txInfAndSts[0].instdAgt.finInstnId.clrSysMmbId.mmbId | 318668 |
Then the Payment Service receives a 'Receive Payment Timeout' with values:
| payload.content.txInfAndSts[0].txSts                                 | CANC                                                      |
| payload.content.txInfAndSts[0].stsRsnInf[0].rsn.cd                   | TM01                                                      |
| payload.content.txInfAndSts[0].clrSysRef                             | CNC002                                                    |
| payload.content.txInfAndSts[0].instdAgt.finInstnId.clrSysMmbId.mmbId | 318668                                                    |
| processingContext.associationId                                      | #ReceivePaymentResponse.processingContext.associationId   |
| processingContext.unitOfWorkId                                       | #ReceivePaymentResponse.processingContext.unitOfWorkId    |
| processingContext.clientRequestId                                    | #ReceivePaymentResponse.processingContext.clientRequestId |
Examples:
transactionStatus cd prtry

RJCT

AC01

NOT_SET

ACCP

NOT_SET

134

Example: {cd=AC01, transactionStatus=RJCT, prtry=NOT_SET}

com.iconsolutions.ipf.payments.csm.sic5.application.bdd.testfw.Steps.parseMeta(java.lang.String)

com.iconsolutions.ipf.payments.csm.sic5.application.bdd.testfw.Steps.parseLegacy(java.lang.String)

When ⦅the CSM⦆ sends a Customer Credit Transfer

Then ⦅the Payment Service⦆ receives a Receive Payment Request

When the ⦅Payment Service⦆ sends a Receive Payment Response with values:
| payload.content.txInf*And*Sts[0].txSts | ⦅RJCT⦆ |
| payload.content.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | ⦅AC01⦆ |
| payload.content.txInf*And*Sts[0].stsRsnInf[0].rsn.prtry | ⦅NOT_SET⦆ |

Then ⦅the CSM⦆ receives a Payment Status Report with values:
| FIToFIPmtStsRpt.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | ⦅AC01⦆ |
| FIToFIPmtStsRpt.txInf*And*Sts[0].stsRsnInf[0].rsn.prtry | ⦅NOT_SET⦆ |
| FIToFIPmtStsRpt.txInf*And*Sts[0].txSts | ⦅RJCT⦆ |
| FIToFIPmtStsRpt.txInf*And*Sts[0].instgAgt.finInstnId.clrSysMmbId.mmbId | 318668 |

When the ⦅CSM⦆ sends a Payment Status Report with values:
| FIToFIPmtStsRpt.txInf*And*Sts[0].txSts | CANC |
| FIToFIPmtStsRpt.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | TM01 |
| FIToFIPmtStsRpt.txInf*And*Sts[0].clrSysRef | CNC002 |
| FIToFIPmtStsRpt.txInf*And*Sts[0].instdAgt.finInstnId.clrSysMmbId.mmbId | 318668 |

Then ⦅the Payment Service⦆ receives a Receive Payment Timeout with values:
| payload.content.txInf*And*Sts[0].txSts | CANC |
| payload.content.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | TM01 |
| payload.content.txInf*And*Sts[0].clrSysRef | CNC002 |
| payload.content.txInf*And*Sts[0].instdAgt.finInstnId.clrSysMmbId.mmbId | 318668 |
| processingContext.associationId | #ReceivePaymentResponse.processingContext.associationId |
| processingContext.unitOfWorkId | #ReceivePaymentResponse.processingContext.unitOfWorkId |
| processingContext.clientRequestId | #ReceivePaymentResponse.processingContext.clientRequestId |

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

Example: {cd=NOT_SET, transactionStatus=ACCP, prtry=134}

com.iconsolutions.ipf.payments.csm.sic5.application.bdd.testfw.Steps.parseMeta(java.lang.String)

com.iconsolutions.ipf.payments.csm.sic5.application.bdd.testfw.Steps.parseLegacy(java.lang.String)

When ⦅the CSM⦆ sends a Customer Credit Transfer

Then ⦅the Payment Service⦆ receives a Receive Payment Request

When the ⦅Payment Service⦆ sends a Receive Payment Response with values:
| payload.content.txInf*And*Sts[0].txSts | ⦅ACCP⦆ |
| payload.content.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | ⦅NOT_SET⦆ |
| payload.content.txInf*And*Sts[0].stsRsnInf[0].rsn.prtry | ⦅134⦆ |

Then ⦅the CSM⦆ receives a Payment Status Report with values:
| FIToFIPmtStsRpt.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | ⦅NOT_SET⦆ |
| FIToFIPmtStsRpt.txInf*And*Sts[0].stsRsnInf[0].rsn.prtry | ⦅134⦆ |
| FIToFIPmtStsRpt.txInf*And*Sts[0].txSts | ⦅ACCP⦆ |
| FIToFIPmtStsRpt.txInf*And*Sts[0].instgAgt.finInstnId.clrSysMmbId.mmbId | 318668 |

When the ⦅CSM⦆ sends a Payment Status Report with values:
| FIToFIPmtStsRpt.txInf*And*Sts[0].txSts | CANC |
| FIToFIPmtStsRpt.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | TM01 |
| FIToFIPmtStsRpt.txInf*And*Sts[0].clrSysRef | CNC002 |
| FIToFIPmtStsRpt.txInf*And*Sts[0].instdAgt.finInstnId.clrSysMmbId.mmbId | 318668 |

Then ⦅the Payment Service⦆ receives a Receive Payment Timeout with values:
| payload.content.txInf*And*Sts[0].txSts | CANC |
| payload.content.txInf*And*Sts[0].stsRsnInf[0].rsn.cd | TM01 |
| payload.content.txInf*And*Sts[0].clrSysRef | CNC002 |
| payload.content.txInf*And*Sts[0].instdAgt.finInstnId.clrSysMmbId.mmbId | 318668 |
| processingContext.associationId | #ReceivePaymentResponse.processingContext.associationId |
| processingContext.unitOfWorkId | #ReceivePaymentResponse.processingContext.unitOfWorkId |
| processingContext.clientRequestId | #ReceivePaymentResponse.processingContext.clientRequestId |

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()

com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()