Skip to main content

Repeat Handling

See also API reference for Credit Transfer

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

Whenever RPP receives a REPEAT request, it will:

  • Check if both the original request and response messages have been received
  • If both original request and response messages are found:
    • RPP will not send a Credit Transfer message request
    • RPP will return to the OFI with the original message response
  • If only the original message request is found:
    • RPP will place the REPEAT request into a REPEAT queue
    • The REPEAT request will be picked up and send to RFI for processing
    • RPP will return to the OFI with the REPEAT message response from RFI

Whenever RFI receives a REPEAT request, it will:

  • If the original transaction has been posted successfully by the RFI, RFI will respond with the original transaction response instead of rejecting the REPEAT request as duplicate
  • If the original transaction has not been processed previously, RFI will process the transaction and return the appropriate response to RPP
info

Participant is advised to perform a Transaction Enquiry first before initiating a retry attempt. Such inquiry allows Participant to confirm on the stage of the payment and reduces the frictions in performing a transaction retry immediately

Exception Flows

RPP Failed to Receive Request from OFI

An image from the static

ConditionActionsAlternatives
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:
  • Timeout
  • Return a NEGATIVE response with timeout reason

RPP shall:
  • Display an appropriate error message to the Customer
  • Stop processing
  • Initiate a Transaction Enquiry separately to confirm on the payment status
If retry is configured, OFI shall:
  • If retry count has not exceeded the maximum number of retries
    • Send a repeat request
    • Continue processing
  • If retry count has exceeded the maximum number of retries
    • Display an ACCEPTED status message to Customer
    • Stop processing
    • Confirm the payment manually via Back Office portal

OFI Failed to Receive Response from RPP

An image from the static

ConditionActionsAlternatives
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:
  • Timeout
  • Return a NEGATIVE response with timeout reason

RPP shall:
  • Display an appropriate error message to the Customer
  • Stop processing
  • Initiate a Transaction Enquiry separately to confirm on the payment status
If retry is configured, OFI shall:
  • If retry count has not exceeded the maximum number of retries
    • Send a repeat request
    • Continue processing
  • If retry count has exceeded the maximum number of retries
    • Display an ACCEPTED status message to Customer
    • Stop processing
    • Confirm the payment manually via Back Office portal

OFI Timeout due to Longer Processing Time at RFI

An image from the static

ConditionActionsAlternatives
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:
  • Timeout
  • Return a NEGATIVE response with timeout reason

RPP shall:
  • Display an appropriate error message to the Customer
  • Stop processing
  • Initiate a Transaction Enquiry separately to confirm on the payment status
If retry is configured, OFI shall:
  • If retry count has not exceeded the maximum number of retries
    • Send a repeat request
    • Continue processing
  • If retry count has exceeded the maximum number of retries
    • Display an ACCEPTED status message to Customer
    • Stop processing
    • Confirm the payment manually via Back Office portal

OFI Timeout while Response from RPP is in Transit to OFI

An image from the static

ConditionActionsAlternatives
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:
  • Timeout
  • Return a NEGATIVE response with timeout reason

RPP shall:
  • Display an appropriate error message to the Customer
  • Stop processing
  • Initiate a Transaction Enquiry separately to confirm on the payment status
If retry is configured, OFI shall:
  • If retry count has not exceeded the maximum number of retries
    • Send a repeat request
    • Continue processing
  • If retry count has exceeded the maximum number of retries
    • Display an ACCEPTED status message to Customer
    • Stop processing
    • Confirm the payment manually via Back Office portal

OFI Initiated Credit Transfer and REPEAT of the Same Credit Transfer

An image from the static

ConditionActionsAlternatives
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:
  • Timeout
  • Return a NEGATIVE response with timeout reason

RPP shall:
  • Display an appropriate error message to the Customer
  • Stop processing
  • Initiate a Transaction Enquiry separately to confirm on the payment status
If retry is configured, OFI shall:
  • If retry count has not exceeded the maximum number of retries
    • Send a repeat request
    • Continue processing
  • If retry count has exceeded the maximum number of retries
    • Display an ACCEPTED status message to Customer
    • Stop processing
    • Confirm the payment manually via Back Office portal

See also