We've Launched a New Documentation Website (Beta Launch)
The documentation for DuitNow is now available on our newly launched documentation platform. This is an initial beta rollout of our new documentation site, designed to become the long-term home for all documentation moving forward.
You'll find the familiar content you're used to—now hosted on a new platform that will progressively receive updates and enhancements.
We encourage you to start accessing DuitNow materials there to explore the new experience and ensure you're viewing the latest documentation updates. If you have any feedback, please reach out to us.
Visit the New Documentation WebsiteEnquire Payment Status
Retrieves the status of the payment that has previously been created via checkout. Parse in the unique checkoutId and PayNet will return the corresponding payment status.
v1.0.0
This version endpoint will still be available to support for existing participants.
v2.0.0
This version is designed to provide more granular control and future-proofing when new payment types introduced.
- Introduce
paymentMethodas part of request URL:- 01 - One Time Payment
- 02 - Saved Payment Method
- Support AutoDebit Enquiry.
- Optimise response message by removing
messageId.
Acquirer should perform retrieve payment status after 60 mins before updating the final status for the transaction.
- v1.0.0
- v2.0.0 - Latest
Process Flow

| Step | Sender | Receiver | Process |
|---|---|---|---|
| 1 | Acquirer | API Gateway | Acquirer initiates an enquiry via checkoutId for the status of the transaction. |
| 2 | API Gateway | Acquirer | API Gateway will locate the transaction status and response back to acquirer. |
Request
GET /v1/bw/rtp?checkoutId=a7e2ed2a-b088-4495-8cf4-88da08f644f2
This API has a rate limit, therefore can only be called once every 30 seconds.
| checkoutId | String | Max length: 36 | Required | |||
| The unique external identifier (uuid v4) provided by the acquirer to PayNet when initiating a payment intent. | ||||||
Response
Data Object | ||||||
| messageId | String | Max length: 35 | Required | |||
| Unique message identification from RPP. This can be used to reconcile with RPP BackOffice or Reports. | ||||||
| endToEndId | String | Max length: 35 | Required | |||
| Unique message identification from RPP. This can be used to reconcile with RPP BackOffice or Reports. | ||||||
| transactionStatus | String | Max length: 35 | Required | |||
| Transaction status: RECEIVED – Pending CLEARED – Successful Credit REJECTED – Rejection from Debiting Agent PENDAUTH – Pending authorization from Debiting Agent | ||||||
| issuer | String | Max length: 100 | Required | |||
| Name of payer’s issuing bank / wallet. | ||||||
| paymentMethod | String | Max length: 2 | Required | |||
| Payer selected payment method: 01 - DuitNow Online Banking / Wallets | ||||||
End Data Object | ||||||
| message | String | Max length: 1024 | Required | |||
| Please refer to the list of reason codes. | ||||||
Sample Response:
{
"data": {
"messageId": "20240119M0000201864OBW00000004",
"endToEndId": "20240119M0000201861OBW00000004",
"transactionStatus": "RECEIVED",
"issuer": "Affin Bank",
"paymentMethod": "01"
},
"message": "U000"
}
Process Flow

| Step | Sender | Receiver | Process |
|---|---|---|---|
| 1 | Acquirer | API Gateway | Acquirer initiates an enquiry via checkoutId for the status of the transaction. |
| 2 | API Gateway | Acquirer | API Gateway will locate the transaction status and response back to acquirer. |
Request
GET /v2/bw/checkout-status?paymentMethod=01&checkoutId=a7e2ed2a-b088-4495-8cf4-88da08f644f2
This API has a rate limit, therefore can only be called once every 30 seconds for each transaction.
| paymentMethod | String | Max length: 2 | Required | |||
| The payment method of the transaction/ payment intent. 01 - One-time payment 02 - Save payment method | ||||||
| checkoutId | String | Max length: 36 | Required | |||
| The unique external identifier (uuid v4) provided by the acquirer to PayNet when initiating a payment intent. | ||||||
Response
Data Object | ||||||
| endToEndId | String | Max length: 35 | Required | |||
| Unique message identification from RPP. This can be used to reconcile with RPP BackOffice or Reports. | ||||||
| transactionStatus | String | Max length: 35 | Required | |||
| Transaction status: RECEIVED – Pending CLEARED – Successful Credit REJECTED – Rejection from Debiting Agent PENDAUTH – Pending authorization from Debiting Agent | ||||||
| issuer | String | Max length: 100 | Required | |||
| Name of payer’s issuing bank / wallet. | ||||||
| paymentMethod | String | Max length: 2 | Required | |||
| Payer selected payment method: 01 - DuitNow Online Banking / Wallets 02 - Save payment method | ||||||
End Data Object | ||||||
| message | String | Max length: 1024 | Required | |||
| Refer to the reason codes in the appendix. | ||||||
Sample Response:
{
"data": {
"endToEndId": "20240119M0000201861OBW00000004",
"transactionStatus": "RECEIVED",
"issuer": "Affin Bank",
"paymentMethod": "01"
},
"message": "U000"
}