Create a Batch Direct Debit Collection
Create a batch of multiple direct debit collections. "Direct Debit Payment" in the API path refers to a direct debit collection transaction where funds are collected from the debtor account.
When you create a batch direct debit payment in test mode, it will automatically succeed after a short while with the status COMPLETED. Every direct debit payment within the batch will subsequently succeed with the status SUCCEEDED.
You can simulate various failure scenarios in test mode by setting the customerReference field of a direct debit payment within the batch to the following values:
FAIL: The affected direct debit payment will fail with the statusFAILED. This does not affect the batch direct debit payment and other direct debit payments within it.FAIL-BATCH: The batch direct debit payment will fail with the statusFAILED, and every direct debit payment within it will fail with the statusFAILED.
Authorization
authorization Set Your Secret API Key
In: header
Header Parameters
A unique value, eg. a UUID.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Three-letter ISO 4217 currency code in full uppercase.
1 <= lengthThe date the collections should be executed.
dateA list of direct debits to perform as part of this batch. The payments array must be homogeneous: do not mix directDebitAuthorizationId and directDebitAuthorizationInformation in the same request. Use directDebitAuthorizationId if the Direct Debit Authorization (DDA) was created via Acme's Direct Debit Authorization API, and directDebitAuthorizationInformation if you are using an existing DDA not created with Acme (e.g., registered through paper-based Giro or a bank portal).
Type of the collections: GIRO or FAST.
1 <= lengthResponse Body
*/*
application/json
application/json
curl -X POST "https://example.com/v1/direct-debit-payment-batches" \
-H "Content-Type: application/json" \
-d '{
"currency": "string",
"paymentDate": "2019-08-24",
"type": "string"
}'A GIRO batch where every collection references a Direct Debit Authorization created through Acme (directDebitAuthorizationId). Everything starts in PROCESSING while Acme builds the bank file.
{
"id": "bddp_0J7Q8A2M8V5X1",
"type": "GIRO",
"paymentDate": "2026-09-10",
"currency": "SGD",
"payments": [
{
"id": "dpymt_0J7Q8C7T3W9R2",
"amount": 4200,
"currency": "SGD",
"customerReference": "SUB-2026-09-001",
"receiver": {
"bankAccountNumber": "0052312891"
},
"status": "PROCESSING",
"createdAt": "2026-09-09T05:02:03.417284Z",
"updatedAt": "2026-09-09T05:02:03.417284Z",
"directDebitAuthorizationId": "dda_0J7Q6A3M8V5X1"
},
{
"id": "dpymt_0J7Q8F1K6D8N5",
"amount": 9900,
"currency": "SGD",
"customerReference": "SUB-2026-09-002",
"receiver": {
"bankAccountNumber": "0052312891"
},
"status": "PROCESSING",
"createdAt": "2026-09-09T05:02:03.463910Z",
"updatedAt": "2026-09-09T05:02:03.463910Z",
"directDebitAuthorizationId": "dda_0J7Q6B4N9W6Y2"
}
],
"status": "PROCESSING",
"createdAt": "2026-09-09T05:02:03.401556Z",
"updatedAt": "2026-09-09T05:02:03.512090Z"
}