DuitNow Online Banking/Wallets allow customer to make payment to Merchant from their preferred bank or wallet.
From Merchant portal or mobile apps, customer will choose their preferred bank or wallet. Customer will then get redirect to the bank or wallet they choose, approve the transaction, get redirect back to Merchant and the transaction is completed.
The figure below explains in detail the end-to-end process of DuitNow Online Banking/Wallets.
If RPP received the request and processed it, but RPP's response failed to return to Merchant at Step 3, then the transaction is logged. If RPP never received the request, no action on RPP side
Merchant:
Merchant may send the request again by sending a new request
2, 3
Rejection
RPP:
RPP receives the request and rejected it due to validation error e.g. Merchant is not authorized to request List of Banks
If RPP received the request and processed it, but RPP's response failed to send to Merchant at Step 3, then the Request-to-Pay transaction is logged with PENDING status, but is orphaned in the table, as it cannot be referenced
If RPP never received the request, no action on RPP side
Merchant:
Merchant shall not send a repeat or duplicate request
Merchant can send an enquiry to check the status of the Request-to-Pay
Merchant shall send a new request to re-initiate the transaction
2, 3
Rejection
RPP:
RPP logs reject, returns reject status to Merchant. If RPP responds with reject after storing a pending Request-to-Pay record in table, the record will be orphaned, no reference to it will be sent back to Merchant in the rejection response
Timeout (Debiting Agent gets no response from RPP)
RPP:
If RPP received the request and processed it, but RPP's response failed to return to Debiting Agent at Step 2, then the transaction is logged, and the PENDING Request-to-Pay status may be updated to RETRIEVED
If RPP never received the request, no action on RPP side
Debiting Agent:
Debiting Agent may re-request after a timeout. RPP shall return the transaction info if the transaction status still in PENDING or RETRIEVED state
1, 2
Rejection
RPP:
RPP may reject based on parameter validation, in this case the PENDING status Request-to-Pay record remains at status PENDING
Timeout (Debiting Agent gets no response from RPP)
RPP:
RPP may or may not have updated the RETRIEVED status of Request-to-Pay to COMPLETED
Debiting Agent:
Request may be sent again by Debiting Agent but may be rejected if Request-to-Pay status had been updated by previous timed-out request
2, 3
Rejection
RPP:
If field validation error, RPP sends an error message to Debiting Agent (at Step 3) with details of field validation failure, and the request message is logged in the reject log
If Session/Business Rule validation failure or other error within session: Transaction is logged, and RPP sends response with rejection status/reason code to Debiting Agent
Debiting Agent:
Debiting Agent has rejection information so can process accordingly
Timeout (Debiting Agent gets no response from RPP)
RPP:
RPP may or may not have updated the RETRIEVED status of the Request-to-Pay to COMPLETED
Debiting Agent:
Debiting Agent has already debited the debtor before attempting the send of Credit Request. Debiting Agent may also perform a status enquiry to get the transaction status. If no result is returned, then the request may be sent again by Debiting Agent
2, 3
Rejection
RPP:
If field validation error, RPP sends an error message to Debiting Agent (at Step 3) with details of field validation failure, and the request message is logged in the reject log
If Session/Business Rule validation failure or other error within session: Transaction is logged, and RPP sends response with rejection status/reason code to Debiting Agent. Payment status notification (Not Approved) is sent to Merchant
Debiting Agent:
Debiting Agent has already debited the debtor before attempting the send of Credit Request. Debiting Agent has rejection information so can process accordingly
4, 5
Timeout (RPP gets no response from Merchant/Biller)
RPP:
Sent by SAF, SAF will continue to re-send while timeout occurs on send attempts
Merchant/Biller:
-
4, 5
Rejection
RPP:
Sent by SAF, SAF will log the reject response received at 5 in SAF log and consider the request as sent
Merchant/Biller:
-
Merchant Initiated Cancellation (After Step 8, before step 14)
After Step 8, a Merchant may initiate a Cancellation Request of the Request-to-Pay in the Redirect Flow. However, this request must be initiated before Step 14 where the customer would have already approved the transaction.
Step
Sender
Receiver
Process
1
Merchant
RPP
Merchant will perform the following:
Sends a Cancellation Request to RPP
Starts the timer
2
RPP
Merchant
RPP performs the following
Message Logging
Message Validation
Message Format Validation
Digital Signature Validation
Business Validation
Timeout Validation
Transaction Type Validation
Date Expiry Check
Check Request-to-Pay Staging Status
If any Message Validation fails, RPP will
Send a REJECT response to Merchant
If any Business Validation fails, RPP will
Send a NEGATIVE response to Merchant
If all validations are successful, RPP will
Inform DA to update the PDAU (Pending Authorisation) status to CANC (Cancel) and transaction updated to failed
Change status of Request-to-Pay in staging table to CANC (Cancel)
Merchant shall not send a repeat request after a timeout
Merchant can perform enquiry to check the status of the Request-to-Pay in the staging table
Merchant can send a new request
1, 2
Rejection
RPP:
If field validation error, RPP sends an error message to Merchant at Step 2, with details of field validation failure, and the request message is logged in the reject log
If Session/Business Rule validation failure or other error within session: Transaction is logged, and RPP sends response with rejection status/reason code to Merchant at Step 2
Merchant/Biller:
Merchant has rejection information so can process accordingly