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 WebsiteInitiate AutoDebit Batch Files Processing
This documentation provides a conceptual overview of the upcoming AutoDebit Batch Files Processing feature. The technical API specifications and testing environment are currently being finalized. While the full API documentation and testing environment are not yet available, you can view the high-level framework below to begin your internal planning.
Process Flow

The DuitNow Pay Autodebit Batch feature supports the batch-file submission of multiple autodebit requests. It provides a scalable solution for acquirer handling recurring payments or subscription-based transactions, streamlining high-volume processing.
| Step | Sender | Receiver | Process |
|---|---|---|---|
| 1 | Acquirer / SI | API Gateway | Acquirer requests a temporary AutoDebit Batch Key via API. |
| 2 | API Gateway | Acquirer / SI | DuitNow Pay will return an AutoDebit Batch Key dedicated for participants and the key only valid for 24 hours. |
| 3 | Acquirer / SI | API Gateway | Acquirer will use the AutoDebit Batch Key and initiate file upload request based on the SDK code sample shared. To ensure the file is securely uploaded, participants will required to create a digital signature file
|
| 4 | API Gateway | API Gateway | DuitNow Pay API Gateway will validate the information inclusive of the file format and content inside the file. |
| 5 | API Gateway | Acquirer / SI | DuitNow Pay API Gateway will response back to Acquirer/ SI via webhook only if the uploaded file contains error. If the file validated success there will be no notifications. |
| 6 | API Gateway | Acquirer / SI | DuitNow Pay API Gateway will send a Webhook: Update AutoDebit Batch Status to the Acquirer/ SI to inform on the successful processed of the AutoDebit Batch files. Note:
|
| 7 | Acquirer / SI | API Gateway | Acquirer to use the AutoDebit Batch Key and initiate file download request based on the SDK code sample shared. |
| 8 | Acquirer / SI | Merchant | Acquirer/ SI upon receiving the AutoDebit Batch status update and validated the response file, shall also update the information back to the merchant using their own specifications. |
Batch File Definitions
Request File
Acquirers must comply with the required validation rules for request file specified below.
| No | Description | File Naming | Format | Frequency |
|---|---|---|---|---|
| 1 | Request File
| BICFI_MID_PID_yyyyMMdd_hhmmss_nnn.txt
Example: MYBIC8XX_M0012345_P00000234_20250127_063000_001.txt | Txt | Daily - Before 12am Upload the file daily before 12am, only files contain today’s date will be processed, files with future or past dates will be rejected. |
Response File
Below are clarifications of the file name the acquirer will see when you perform an enquiry or after the file is validated or processed
{
"checkoutId": "a7e2ed2a-b088-4495-8cf4-88da08f644f2",
"consentId": "M00002010012700006",
"amount": "10.00",
"merchantReferenceId": "REF0001234556"
}
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. | ||||||
| transactionStatus | String | Max length: 35 | Required | |||
| Transaction status: CLEARED - Successful Request REJECTED - Rejection from RPP or Debiting Agent | ||||||
| issuer | String | Max length: 100 | Required | |||
| Name of payer’s issuing bank / wallet. | ||||||
End Data Object | ||||||
| message | String | Max length: 1024 | Required | |||
| Please refer to the list of reason codes or issuer rejection codes. | ||||||
Sample Response:
{
"data": {
"messageId": "20240117M0000201220OBW00000025",
"transactionStatus": "CLEARED",
"issuer": "Affin Bank"
},
"message": "U000"
}