Payment-method icon

ACH Direct Debit for API only

Add ACH Direct Debit to your API-only integration.

You can add ACH Direct Debit to your existing integration. The following instructions show only what you must add to your integration specifically for ACH Direct Debit.

If an instruction on this page corresponds with a step in the main integration guide, it includes a link to corresponding step of the main integration guide.

Requirements

Requirement Description
Integration type Make sure that you have an existing API-only integration.
This page includes only instructions to add ACH Direct Debit to your existing integration.
Setup steps Before you begin, add ACH Direct Debit in your Customer Area.

Get ACH Direct Debit as an available payment method

When you make the /paymentMethods call to get available payment methods, specify the following so that ACH Direct Debit is included in the response.

Parameter Values
countryCode US, PR
amount.currency USD

Build your payment form

We provide the logo for ACH Direct Debit that you can download.

When a customer chooses to pay with ACH Direct Debit, collect the following payment details in your payment form and use these to get a mandate from the customer:

Payment details Example
Bank account number The US bank account number from which the payment will be debited.

Format: numeric.
Minimum length: 4
Maximum length: 17

Example: 01234567890123
Bank routing number The 9-digit ACH routing number of the account.
Alert your customers that some banks have different routing numbers for different transfers. Customers should not provide their wire transfer routing number.

Do not remove any leading zeros. Adyen performs validation to ensure the routing number is genuine.

Example: 123456789
Bank account type checking or savings
Account owner's name "John Smith"
Account owner's address A valid US address (optional field).

Bank account type

Customers can use both checking accounts and savings accounts to make ACH payments. If you do not provide the bankAccountType in your payment request, this defaults to checking account. In cases where the account type defaulted to checking account while the customer provided the account number of a savings account, this mismatch will lead to a chargeback.

To avoid chargebacks, we recommend collecting the bank account type from the customer, and providing it in your payment request.

Add additional parameters to your /payments request

When you make a payment, add the following parameters:

Parameter Required Description
paymentMethod.type -white_check_mark- ach
paymentMethod.bankAccountNumber
or
paymentMethod.encryptedBankAccountNumber
-white_check_mark- The customer's bank account number.
paymentMethod.bankAccountType The type of bank account. Allowed values: checking, savings.
paymentMethod.bankLocationId
or
paymentMethod.encryptedBankLocationId
-white_check_mark- The ACH routing number of the account.
paymentMethod.ownerName -white_check_mark- The name on the bank account.
billingAddress Only required for v6.3.0 and earlier.
The postal address of the shopper. Recommended to increase conversion rates.
additionalData.ach.secCode The SEC code to use for the payment. If not specified, the default SEC code of the merchant account is used. Possible values: CCD for business-to-business transactions, or PPD for consumer transactions.

Test and go live

You can test ACH Direct Debit payments as well as chargebacks.

Test the payment flow

Before making live ACH Direct Debit payments, use the following account details to test your integration.

ownerName bankAccountNumber bankLocationId
(routing number)
billingAddress
(account owner's address)
Any name Any correctly formatted account number.
Example: 1234567890
011000138 or 121000358 Any correctly formatted US address.

Test the chargeback flow

You can test the chargeback flow by making test payments with an ownerName value that consists of chargeback: followed by an ACH return reason code. For example, chargeback:R01. The other account details to use are the same as when testing payments.

For instructions, see Test a chargeback scenario.

See also