Credit Transfer
See also API reference for Credit Transfer
Introduction
The terminology Phase 1 is being used interchangeably to refer to services that are originally built for DuitNow Transfer i.e. Account Enquiry, Credit Transfer and National Addressing Database (NAD) related. QR, P2P, JomPAY and etc are built as overlay services on top of Phase 1. Hence these overlay services will adopt similar architecture and user will be asked to refer to Phase 1 sections throughout our documentations
Instant Transfer is a Credit Transfer service in which the customer sends the payment request and confirms the recipient's name before the actual credit transfer is performed. This payment request is a two-step process where an account enquiry request is sent to the Receiving Participant to request for the recipient's name, and upon successful retrieval of the Account Name, displays it to the customer for confirmation. Once confirmation is received, the Originating Participant then debits customer account and sends the actual Credit Transfer request to the Receiving Participant for processing
DuitNow Transfer will be marketed for use by the Participants' Retail and Corporate customers and invoked from the Participants' Internet and Mobile Banking channels
Overlay Services
Overlay services are services that augment a payment service by building on top of Real-time Retail Payments Platform (RPP) existing infrastructure to deliver enhanced value to the participants within Malaysia payment network
What are Overlay Services?
In RPP, we have built the below overlay services to improve the workflows and customer experience in facilitating different payment use cases
- QR payment for both domestic and cross border
- Bill payment via JomPAY
- Request-to-pay for end user to request or make a payment within the eCommerce space
Refer to the respective service sections on our product offerings
Account Enquiry
Account resolution enquiry is used to determine if particular beneficiary account is valid and ready to receive payment. There are many situations in which you may need to know if a beneficiary account provided by customer is valid before accepting payment request. Examples include:
- Customer needs to validate the beneficiary account name before making final confirmation to the payment request
- Customer needs to ensure the recipient details before making top-up to their eWallet account
Successful End-to-End Account Enquiry Flow
Step | Sender | Receiver | Process |
---|---|---|---|
1 | Customer | OFI | Customer logs into Online Banking or Mobile Banking app and initiates a DuitNow Instant Transfer |
2 | OFI | RPP | OFI performs the following:
|
3 | RPP | RFI | RPP performs the following:If any of the Message Validations fails:
|
4 | RFI | RPP | RFI performs the following:If any of the Message Validations fails:
|
5 | RPP | OFI | RPP performs the following:If any of the validations are not successful:
|
6 | OFI | Customer | OFI performs the following:If all validations are successful:
|
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 | OFI shall:
| If retry is configured, OFI shall:
|
OFI Failed to Receive Response from RPP
Condition | Actions | Alternatives |
---|---|---|
OFI sent a request to RPP, and RPP did receive the request. However, RPP response did not reach to OFI As no response is received from RPP after x period of time, OFI eventually timeout | OFI shall:
| If retry is configured, OFI shall:
|
RFI Failed to Receive Request from RPP
Condition | Actions | Alternatives |
---|---|---|
RPP sent a request to RFI. However, RFI did not receive the request from RPP As no response is received from RFI after x period of time, RPP eventually timeout | RPP shall:
| - |
RPP Failed to Receive Response from RFI
Condition | Actions | Alternatives |
---|---|---|
RPP sent a request to RFI, and RFI did receive the request. However, RFI response did not reach to RPP As no response is received from RFI after x period of time, RPP eventually timeout | RPP shall:
| - |
Credit Transfer
A Credit Transfer is a push payment transaction of an amount from a bank account (the debtor account) to a beneficiary account (the creditor) that can be invoked from the Participants' various channels or touchpoints within their ecosystem. Some of these touchpoints may be Internet Banking, Mobile Banking, Branches, Kiosks and etc
The Originating Participant initiates a payment instruction that pushes a credit to the Receiving Participant. The instruction must be sent one at a time to RPP (in case of Bulk Credit Transfers)
Successful End-to-End Credit Transfer Flow
Step | Sender | Receiver | Process |
---|---|---|---|
1 | Customer | OFI | Customer verifies the beneficiary account details and confirms on the payment |
2 | OFI | RPP | OFI performs the following:
|
3 | RPP | RFI | RPP performs the following:If any of the Message Validations fails:
|
CONDITIONAL ACCOUNT ENQUIRY | |||
4 | RFI | RPP | RFI performs the following:If any of the Message Validations fails:
|
5 | RPP | OFI | RPP performs the following:If any of the Message Validations fails:
|
6 | OFI | Customer | OFI performs the following:If all validations are successful:
|
CREDIT TRANSFER | |||
7 | RFI | RPP | RFI performs the following:If any of the Message Validations fails:
When a REPEAT request is received by the RFI from RPP:
|
8 | RPP | OFI | RPP performs the following:If any of the Message Validations fails:
If the signature received from RFI could not be verified:
|
9 | OFI | Customer | OFI performs the following:If all validations are successful:
|
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:
| If retry is configured, OFI shall:
|
OFI Failed to Receive Response from RPP
Condition | Actions | Alternatives |
---|---|---|
OFI sent a request to RPP, and RPP did receive the request. However, RPP response did not reach to OFI As no response is received from RPP after x period of time, OFI eventually timeout | RPP shall:
| If retry is configured, OFI shall:
|
RFI Failed to Receive Request from RPP
Condition | Actions | Alternatives |
---|---|---|
RPP sent a request to RFI. However, RFI did not receive the request from RPP As no response is received from RFI after x period of time, RPP eventually timeout | RPP shall:
| If retry is configured, RPP shall:
|
RPP Failed to Receive Response from RFI
Condition | Actions | Alternatives |
---|---|---|
RPP sent a request to RFI, and RFI did receive the request. However, RFI response did not reach to RPP As no response is received from RFI after x period of time, RPP eventually timeout | RPP shall:
| If retry is configured, RPP shall:
|
Exception Conditions
Rejected by RPP
Below are some of the conditions that the request may be rejected
No | Condition | Description | Actions |
---|---|---|---|
1 | Message Validation Error | An invalid message was sent to RPP. Some of the possible causes are:
| RPP will not send the request to RFI. A REJECT response will be returned to OFI Notes: A copy of the request message in FULL will be returned in the REJECT response in <AddtlData> field. This can be used by the sender to investigate the issue with the message |
2 | Business Validation Error | Some of the possible causes are:
| RPP will not send the request to RFI. A NEGATIVE response will be returned to OFI |
3 | Liquidity Position Threshold Exceeded – Red | The maximum Liquidity Position Threshold of the OFI has been exceeded | RPP will not send the request to RFI. A NEGATIVE response will be returned to OFI Notes: Participant needs to update their liquidity position with Bank Negara Malaysia before RPP will resume accepting new incoming transactions |
4 | Proxy Validation Error | RPP could not resolve the proxy to a valid account number | If there is no discrepancy between the request and NAD Proxy information, proceed with the Pay by Proxy request to the RFI If the Proxy Resolution Enquiry returns unsuccessful or there is any discrepancy between the request and the NAD Proxy information, send a negative response to the OFI |
Rejected by RFI
Below are some of the conditions that the request may be rejected
No | Condition | Description | Actions |
---|---|---|---|
1 | Message Validation Error | An invalid message was sent to RPP. Some of the possible causes are:
| RFI will not process the request. A REJECT response will be returned to RPP Notes: A copy of the request message in FULL will be returned in the REJECT response in <AddtlData> field. This can be used by the sender to investigate the issue with the message |
2 | Business Validation Error | Some of the possible causes are:
| RFI will not process the request. A NEGATIVE response will be returned to RPP |
3 | Beneficiary Account Validation Error | Some of the possible causes are:
| RFI will reject the request. A NEGATIVE response will be returned to RPP |
Timeout
Below are some of the conditions that a timeout could occur
No | Condition | Description | Actions |
---|---|---|---|
1 | RPP failed to receive any incoming request from OFI | Request was sent by OFI but RPP failed to receive the request | Account Enquiry
For Credit Transfer, if the maximum number of retries has been exceeded, OFI shall display an ACCEPTED message to the Customer and confirms the payment status via Back Office portal. If request is not successful, then manual processing/refund shall be performed |
2 | OFI failed to receive response from RPP | RPP has responded to the OFI but OFI failed to receive the response | Account Enquiry
For Credit Transfer, if the maximum number of retries has been exceeded, OFI shall display an ACCEPTED message to the Customer and confirms the payment status via Back Office portal. If request is not successful, then manual processing/refund shall be performed |
3 | RFI failed to receive request from RPP | Request was sent by RPP but RFI failed to receive the request | RPP will respond to OFI with ACCEPTED (timeout reason) and stores the request to SAF for retry purpose (if applicable) OFI shall display an appropriate error message to the Customer Notes: RFI shall not reject request originates from SAF |
4 | RPP failed to receive response from RFI | RFI has responded to RPP but RPP failed to receive the response | RPP will respond to OFI with ACCEPTED (timeout reason) and stores the request to SAF for retry purpose (if applicable) OFI shall display an appropriate error message to the Customer Notes:
|
Inflight Exceptions
Below are some of the conditions that an inflight exception could occur
No | Condition | Description | Actions |
---|---|---|---|
1 | OFI timed-out and sends a REPEAT request while RFI is processing the transaction | Request was sent by OFI but RFI has taken a longer time to process the transaction so OFI timed-out | RPP will place the REPEAT request in queue. During processing, RPP will respond with the original response to OFI |
2 | OFI timed-out and sends a REPEAT request while the response from RPP is in transit to OFI | RPP has responded to the OFI but OFI timed out first and sent a REPEAT before the response from RPP is received | RPP will place the REPEAT request in queue. During processing, RPP will respond with the original response to OFI |
3 | OFI initiated 2 transactions (1 Original and 1 REPEAT) one after the other – OFI will terminate the first session before initiating the REPEAT session | OFI initiated a Credit Transfer and a REPEAT of the same Credit Transfer transaction | Depends on at which point the REPEAT request has been received by RPP:
|
Message Schema
Account Enquiry
Below illustrates the message schema to be used for each transaction leg. For actual schema and message version, please refer to the API specifications instead
No | Condition | Scenario | Sender | Receiver | Message Schema Out: From Sender In: To Receiver |
---|---|---|---|---|---|
1 | Success Account Enquiry | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 | |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
2 | Message Validation Failure 1 | Request from OFI:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | OFI | Out: admi.002.001.01 In: admi.002.001.01 | |||
3 | Message Validation Failure 2 | Request from RPP:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: admi.002.001.01 In: admi.002.001.01 | |||
RPP | OFI | Out: admi.002.001.01 In: admi.002.001.01 | |||
4 | Message Validation Failure 3 | Response from RFI:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In:pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
5 | Message Validation Failure 4 | Response from RPP:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
6 | Business Validation Failure |
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: NA | |||
RFI | RPP | Out: pacs.002.001.08 In: NA | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
7 | Beneficiary Account Validation Failure | RFI returns a negative response due to account related validation failure like Invalid Account, Account Closed, Account On hold, Account Blacklisted and etc | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
8 | Timeout 1 | RPP did not receive request | OFI | RPP | Out: pacs.008.001.06 In: NA |
RPP | RFI | Out: NA In: NA | |||
RFI | RPP | Out: NA In: NA | |||
RPP | OFI | Out: NA In: NA | |||
9 | Timeout 2 | RFI did not receive request | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: NA | |||
RFI | RPP | Out: NA In: NA | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
10 | Timeout 3 | RPP did not receive response | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: NA | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
11 | Timeout 4 | OFI did not receive response | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: NA |
Credit Transfer
No | Condition | Scenario | Sender | Receiver | Message Schema Out: From Sender In: To Receiver |
---|---|---|---|---|---|
1 | Success Account Enquiry | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 | |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
2 | Message Validation Failure 1 | Request from OFI:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | OFI | Out: admi.002.001.01 In: admi.002.001.01 | |||
3 | Message Validation Failure 2 | Request from RPP:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: admi.002.001.01 In: admi.002.001.01 | |||
RPP | OFI | Out: admi.002.001.01 In: admi.002.001.01 | |||
4 | Message Validation Failure 3 | Response from RFI:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In:pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
5 | Message Validation Failure 4 | Response from RPP:
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
6 | Business Validation Failure |
| OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: NA | |||
RFI | RPP | Out: pacs.002.001.08 In: NA | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
7 | Beneficiary Account Validation Failure | RFI returns a negative response due to account related validation failure like Invalid Account, Account Closed, Account On hold, Account Blacklisted and etc | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
8 | Timeout 1 | RPP did not receive request | OFI | RPP | Out: pacs.008.001.06 In: NA |
RPP | RFI | Out: NA In: NA | |||
RFI | RPP | Out: NA In: NA | |||
RPP | OFI | Out: NA In: NA | |||
9 | Timeout 2 | RFI did not receive request | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: NA | |||
RFI | RPP | Out: NA In: NA | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
10 | Timeout 3 | RPP did not receive response | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: NA | |||
RPP | OFI | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
11 | Timeout 4 | OFI did not receive response | OFI | RPP | Out: pacs.008.001.06 In: pacs.008.001.06 |
RPP | RFI | Out: pacs.008.001.06 In: pacs.008.001.06 | |||
RFI | RPP | Out: pacs.002.001.08 In: pacs.002.001.08 | |||
RPP | OFI | Out: pacs.002.001.08 In: NA |