Repeat Handling
How It Works
In the event the Sender fails to receive a response from RPP, the transaction status may fall into the state of unknown. In such scenario, the Sender could resend the request, but it may cause a duplicate posting as the original request could have been processed successfully in RPP
To mitigate such situation, RPP introduces a repeat request feature to support the Sender to resend the original request but indicating the request could be a retry attempt. This helps RPP to filter our any possible duplicate attempt. However, such feature should only be used during exceptional scenario and shall not be used as a default option to all requests
In the API Business Application Header, <PssblDplct > shall be set to true to indicate the request is a retry (REPEAT) attempt to prevent duplicate payment. Though, not all APIs are supporting this retry feature. User shall refer to the respective API specification for more information
How to handle REPEAT request
There could be many business scenarios but below are some of it:
- Currently, in the event of transaction timeout, participant needs to resend the payment request with a repeat flag indicator. If the transaction is found, RPP will respond with the original status. However, if the original transaction did not reach RPP, RPP will not respond to the request and the message will be dropped. Due to this, participant will not be able to know the status of the transaction
- For transactions that require longer turnaround time for a user to complete the payment. During the wait time, participant will not be aware if the request has been timeout, aborted or still in progress
- For time-sensitive transaction, the payment request needs to be confirmed within seconds. In such case, participant may initiate an enquiry to determine the status immediately
Exception Flows
RPP Failed to Receive Request from OFI
Condition | Actions | Alternatives |
---|---|---|
OFI sent a request to RPP. However, RPP did not receive the request As no response is received from RPP after x period of time, OFI eventually timeout | RPP shall:
RPP shall:
| If retry is configured, OFI shall:
|
OFI Failed to Receive Response from RPP
Condition | Actions | Alternatives |
---|---|---|
OFI sent a request to RPP. However, RPP did not receive the request As no response is received from RPP after x period of time, OFI eventually timeout | RPP shall:
RPP shall:
| If retry is configured, OFI shall:
|
OFI Timeout due to Longer Processing Time at RFI
Condition | Actions | Alternatives |
---|---|---|
OFI sent a request to RPP. However, RPP did not receive the request As no response is received from RPP after x period of time, OFI eventually timeout | RPP shall:
RPP shall:
| If retry is configured, OFI shall:
|
OFI Timeout while Response from RPP is in Transit to OFI
Condition | Actions | Alternatives |
---|---|---|
OFI sent a request to RPP. However, RPP did not receive the request As no response is received from RPP after x period of time, OFI eventually timeout | RPP shall:
RPP shall:
| If retry is configured, OFI shall:
|