CollectionsDirect DebitBatch Collections

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 status FAILED. 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 status FAILED, and every direct debit payment within it will fail with the status FAILED.
POST
/v1/direct-debit-payment-batches

Authorization

authorization
AuthorizationBearer <token>

Set Your Secret API Key

In: header

Header Parameters

Idempotency-Key?string

A unique value, eg. a UUID.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

currency*string

Three-letter ISO 4217 currency code in full uppercase.

Length1 <= length
paymentDate*string

The date the collections should be executed.

Formatdate
payments?array<DirectDebitPaymentBatchRequestInlinedPayment>

A 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*string

Type of the collections: GIRO or FAST.

Length1 <= length

Response 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"
}