Documentation for a newer release is available. View Latest

Handle Clear And Settle Response Format Reject.story

Scenario: Handling clear and settle responses that indicate invalid original message


Steps
When the Payment Service sends a 'Clear And Settle Request'
Then the CSM receives a 'Customer Credit Transfer'
When the CSM sends a 'Rejected With Grpsts' 'Payment Status Report' with values:
| fIToFIPmtStsRpt.orgnlGrpInfAndSts.stsRsnInf.rsn.cd    | <ReasonCode>        |
| fIToFIPmtStsRpt.orgnlGrpInfAndSts.stsRsnInf.rsn.prtry | <ReasonProprietary> |
Then the Payment Service receives a 'System Event' using predicate:
| level                                 | ERROR                         |
| processingContext.associationId.value | NOTAVAILABLE                  |
| name                                  | OutgoingMessageTechnicalIssue |
| payload.reasonCode                    | <ExpectedReasonCode>          |
| type                                  | FUNCTIONAL                    |
Examples:
ReasonCode ReasonProprietary ExpectedReasonCode

FF01

NOT_SET

FF01

NOT_SET

TECH

TECH

Example: {ReasonCode=FF01, ReasonProprietary=NOT_SET, ExpectedReasonCode=FF01}

When the ⦅Payment Service⦆ sends a Clear And Settle Request

Then the ⦅CSM⦆ receives a Customer Credit Transfer

When the ⦅CSM⦆ sends a Rejected With Grpsts Payment Status Report with values:
| fIToFIPmtStsRpt.orgnlGrpInf*And*Sts.stsRsnInf.rsn.cd | ⦅FF01⦆ |
| fIToFIPmtStsRpt.orgnlGrpInf*And*Sts.stsRsnInf.rsn.prtry | ⦅NOT_SET⦆ |

Then ⦅the Payment Service⦆ receives a System Event using predicate:
| level | ERROR |
| processingContext.associationId.value | NOTAVAILABLE |
| name | OutgoingMessageTechnicalIssue |
| payload.reasonCode | ⦅FF01⦆ |
| type | FUNCTIONAL |

Example: {ReasonCode=NOT_SET, ReasonProprietary=TECH, ExpectedReasonCode=TECH}

When the ⦅Payment Service⦆ sends a Clear And Settle Request

Then the ⦅CSM⦆ receives a Customer Credit Transfer

When the ⦅CSM⦆ sends a Rejected With Grpsts Payment Status Report with values:
| fIToFIPmtStsRpt.orgnlGrpInf*And*Sts.stsRsnInf.rsn.cd | ⦅NOT_SET⦆ |
| fIToFIPmtStsRpt.orgnlGrpInf*And*Sts.stsRsnInf.rsn.prtry | ⦅TECH⦆ |

Then ⦅the Payment Service⦆ receives a System Event using predicate:
| level | ERROR |
| processingContext.associationId.value | NOTAVAILABLE |
| name | OutgoingMessageTechnicalIssue |
| payload.reasonCode | ⦅TECH⦆ |
| type | FUNCTIONAL |