Handle Negative Creditor CT Payment Status Report TM01 after payment processing.story
Scenario: Handling CSM rejects after processing - Time out from the CSM
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 |
| 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()