Create a Direct Debit Authorization
POST/direct-debit-authorizations
Acme will fail the Direct Debit Authorization if we do not receive an authorization response within 20 minutes
after creation for RETAIL
payer segment, and 48 hours for CORPORATE
payer segment. The status
field will
be set to FAILED
, with failureReason
set to PAYER_AUTHORIZATION_TIMEOUT
. This can happen if the payer did
not complete the authorization flow on their bank's website.
Request
Header Parameters
A unique value, eg. a UUID.
- application/json
Body
- Bank of China: BKCHSGSGXXX
- DBS Bank: DBSSSGSGXXX
- HSBC Bank: HSBCSGS2XXX
- Industrial & Commercial Bank of China: ICBKSGSGXXX
- Maybank: MBBESGS2XXX
- Oversea-Chinese Banking Corporation: OCBCSGSGXXX
- Standard Chartered Bank: SCBLSG22XXX
- United Overseas Bank: UOVBSGSGXXX
- Bank of China: BKCHSGSGXXX
- DBS Bank: DBSSSGSGXXX
- Maybank: MBBESGS2XXX
- Oversea-Chinese Banking Corporation: OCBCSGSGXXX
- United Overseas Bank: UOVBSGSGXXX
Possible values: Value must match regular expression ^[a-zA-Z0-9\-]{1,35}$
Bill reference number for your payer. Must be at most 35 characters. Only alphanumeric characters and dashes are accepted. This must be unique for each new Direct Debit Authorization that you create.
Your payer's bank SWIFT/BIC code.
The banks that support eGIRO for RETAIL
payer segment are:
The banks that support eGIRO for CORPORATE
payer segment are:
Possible values: [RETAIL
, CORPORATE
]
Your payer's segment: RETAIL or CORPORATE.
A positive integer value in specified currency's smallest unit. E.g. SGD $10 will be represented as 1000 (in cents).
Some banks allow payers to set deduction limits when they are approving the Direct Debit Authorizations. If the payer sets a deduction limit that is lower than maxAmount, Acme will fail this Direct Debit Authorization. Otherwise maxAmount will be updated with the deduction limit set by the payer.
Deprecated: use precheckMinAmount instead.
Possible values: [SGD
]
Three-letter ISO 4217 currency code in full uppercase. Must be a supported currency. Currently supports SGD.
Deprecated: use precheckCurrency instead.
A positive integer value in specified currency's smallest unit. E.g. SGD $10 will be represented as 1000 (in cents).
Some banks allow payers to set deduction limits when they are approving Direct Debit Authorizations. If the payer sets a deduction limit that is lower than precheckMinAmount, Acme will fail this Direct Debit Authorization. Use this to prevent your payers from approving Direct Debit Authorizations with deduction limits that are too low.
A positive integer value in specified currency's smallest unit. E.g. SGD $10 will be represented as 1000 (in cents).
If you attempt to create a Direct Debit Payment (for this Direct Debit Authorization) with an amount greater than precheckMaxAmount, Acme will reject the Direct Debit Payment request. Use this as a guardrail to prevent yourself from overcharging your payers.
If the payer sets a deduction limit that is lower than precheckMaxAmount, precheckMaxAmount will be updated to the lower deduction limit.
If precheckMaxAmount is not set, it will be updated to the deduction limit set by the payer. If the payer does not set a deduction limit, and the payer's bank does not set a default deduction limit, Acme will set precheckMaxAmount to SGD $200,000.00.
Possible values: [SGD
]
Three-letter ISO 4217 currency code in full uppercase. Must be a supported currency. Currently supports SGD. This is required if either precheckMinAmount or precheckMaxAmount is set.
If the payer sets an expiry date earlier than this end date with their bank during authorization, Acme will fail this authorization.
Payer will be redirected to this URL after they have authorized the Direct Debit Authorisation at their bank's website.
Responses
- 200
OK
Response Headers
Acme-Mode
string
Has the value LIVE if the data exists in live production mode or the value TEST if the data exists in test sandbox mode.
- application/json
- Schema
- Example (from schema)
Schema
PAYER_AUTHORIZATION_FAILED
: Payer has failed to authorize the Direct Debit Authorization.PAYER_AUTHORIZATION_TIMEOUT
: Acme did not receive an authorization response in time. Acme will wait up to 20 minutes forRETAIL
payer segment Direct Debit Authorizations, and up to 48 hours forCORPORATE
payer segment Direct Debit Authorizations.PAYER_SPECIFIED_LOWER_MAX_AMOUNT
: Payer has authorized the Direct Debit Authorization with a lower maximum amount than what is required.PAYER_SPECIFIED_EARLIER_END_DATE
: Payer has authorized the Direct Debit Authorization with an earlier end date than what is required.REQUIRES_AUTHORIZATION
: Requires the payer to perform authorization with their bank.PROCESSING
: A creation callback was received from the payer's bank. Normally, a DDA will transition very quickly fromPROCESSING
toSUBMITTED
.SUBMITTED
: A DDA creation request was sent to the Industry Aggregator and is awaiting the final callback.SUCCEEDED
: The DDA has been created successfully with the bank and is ready to be used for creating Direct Debit Payments.FAILED
: The DDA creation failed. You should create a new DDA if you wish to try again.CANCELED
: The DDA has been canceled by the payer.
Possible values: Value must match regular expression ^[a-zA-Z0-9\-]{1,35}$
Bill reference number for your payer. Must be at most 35 characters. Only alphanumeric characters and dashes are accepted. This must be unique for each new Direct Debit Authorization that you create.
Payer's bank SWIFT/BIC code
Your payer's segment: RETAIL or CORPORATE.
Payer's name
Payer's bank account number. This field is only set after the payer has approved the Direct Debit Authorization.
Hash value of the payer's identification number stored in the payer's bank system.
Possible values: [NRIC
, FIN
, PASSPORT
, UEN
]
Payer's identification type stored in the payer's bank system.
If status is FAILED, this provides additional information about the failure.
Payer will be redirected to this URL after they have authorized the Direct Debit Authorisation at their bank's website.
Payer will be redirected to this URL after they have cancelled the Direct Debit Authorisation at their bank's website. This is only present when DDA is being cancelled.
Possible values: [REQUIRES_AUTHORIZATION
, PROCESSING
, SUBMITTED
, SUCCEEDED
, FAILED
, CANCELED
]
Possible values: [SGD
]
Three-letter ISO 4217 currency code in full uppercase.
Possible values: [SGD
]
Three-letter ISO 4217 currency code in full uppercase.
Redirect payer to this URL for logging into their bank to perform authorization. This is only present when the DDA status is REQUIRES_AUTHORIZATION.
Redirect payer to this URL for logging into their bank to perform cancellation. This is only present when you request for cancellation.
{
"id": "dda_0H3BQV117M511",
"billReferenceNumber": "A0012334455",
"payerSwiftBic": "DBSSSGSGXXX",
"payerSegment": "RETAIL",
"payerName": "Richard Hendricks",
"payerBankAccountNumber": "0052312891",
"payerIdHash": "a3f0d8331c9d860aa685df22501d80ef33aa15fa53df87017a5caeb226cc6e2a",
"payerIdType": "NRIC",
"failureReason": "string",
"returnUrl": "https://example.com/return",
"cancelReturnUrl": "https://example.com/return",
"status": "REQUIRES_AUTHORIZATION",
"startDate": "2023-04-24",
"maxAmount": 42000,
"maxAmountCurrency": "SGD",
"precheckMinAmount": 42000,
"precheckMaxAmount": 100000,
"precheckCurrency": "SGD",
"endDate": "2042-04-24",
"authorizeUrl": "https://redirect.tryacme.com/dda",
"cancelUrl": "https://redirect.tryacme.com/dda",
"createdAt": "2023-04-24T00:00:00.000000Z",
"updatedAt": "2023-04-24T00:00:00.000000Z"
}