Search

Are you looking for test card numbers?

Would you like to contact support?

Payment-method icon

ACH Direct Debit

Learn how to accept ACH Direct Debit payments.

ACH Direct Debit is a payment method used in the United States as an alternative to credit and debit cards.

Payment Type Payment flow Recurring Refunds Partial Refunds Captures Partial Captures Chargebacks
Direct Debit Direct Yes Yes Yes Yes Yes Yes

You can accept ACH Direct Debit payments with:

Integrate with Checkout SDKs

Our Checkout SDKs support one-off ACH payments without any additional configuration. If you want to make recurring ACH payments, you will need to make these with an API call.

To know whether an ACH Direct Debit payment has been successfully processed, you will also need to set up notifications.

Integrate with API

In this section, we show the API integration steps for ACH.

Before you begin this section, make sure you read and understand our API Integration guide.

Step 1: Collect required shopper details

When a shopper chooses to pay with ACH Direct Debit, collect the following payment details in your payment form:

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 ABA routing transit number of the account.

Do not remove any leading zeros.

Example: 123456789
Adyen performs validation to ensure the routing number is genuine.
Account Owner's Name "John Smith"
Account Owner's Address A valid US address.

Use these values to make the payment.

Step 2: Make a payment

Make a /payments API call, providing:

  • reference: Your unique reference for this payment.
  • amount
  • paymentMethod:

    • type: ach
    • bankAccount

      • bankAccountNumber: The bank account number.
      • bankLocationId: The bank routing number of the account.
      • ownerName: The name on the bank account.
    • billingAddress:

      • houseNumberOrName: Account owner's house number.
      • street: Account owner's street.
      • city: Account owner's city.
      • stateOrProvince: Account owner's state.
      • postalCode: Account owner's postal code.
      • countryCode: US
{
   "merchantAccount":"YourMerchantAccount",
   "amount":{
      "currency":"USD",
      "value":"1000"
   },
   "reference":"ACH test",
   "paymentMethod":{
      "type":"ach",
      "bankAccount":{
         "bankAccountNumber":"1234567890",
         "bankLocationId":"121000358",
         "countryCode":"US",
         "ownerName":"John Smith"
      }
   },
   "billingAddress":{
      "houseNumberOrName":"50",
      "street":"Test Street",
      "city":"Amsterdam",
      "stateOrProvince":"NY",
      "postalCode":"12010",
      "country":"US"
   }
}

If the payment was successfully received the response contains an Authorised resultCode and a pspReference, which is our unique identifier for this payment. To know whether the payment was successful, track the status of the payment using Notifications.

{
    "pspReference":"881535534794261C",
    "resultCode":"Authorised"
}

It may take up to 5 business days to receive confirmation of whether an ACH Direct Debit payment resulted in success or failure.

Step 3: Present payment result

Use the resultCode you received from the /payments endpoint to present the shopper with the result of the payment via your website or app.

ACH Direct Debit notifications

Our notifications are webhooks informing you of important events related to your account. Accepting notifications is required for ACH Direct Debit. When an ACH Direct Debit payment has been received, it will be several business days before the payment is processed.

To inform you of the outcome of the payment, we send you a notification with:

  • eventCode: AUTHORISATION.
  • pspReference: Adyen's unique reference associated with the payment request.
  • success: Indicates the outcome of the payment. Possible values:

    • true: The payment was authorised.
    • false: The payment failed.

AUTHORISATION is just one of the events that trigger a notification. Refer to Notification webhooks to accept notifications and learn about their structure and content.

Reversed payments

If there was a problem with settlement, the funds are reversed. This can happen when, for example:

  • The account number is invalid.
  • The account has insufficient funds.
  • The account has been closed.

We will notify you of the reversal with an ACH Direct Debit chargeback notification.

Your Settlement Detail Report will show a credit and a corresponding debit.

Chargebacks

If a shopper for some reason wants the funds from a payment returned, they can ask their bank for a refund. This is referred to as a chargeback.

You cannot defend against ACH Direct Debit chargebacks. These will always result in the payment being reversed.

Shoppers can reverse an ACH payment up to 60 days after settlement for one of the following reasons:

  • They did not formally agree to the charge, or if such an agreement has been revoked.
  • The charge is processed on a date earlier than agreed.
  • The amount of the charge is different than agreed.

This is different from credit card transactions where a customer can initiate a chargeback by claiming that a product or service was not what they expected.

We will send you a chargeback notification to inform you when an ACH Direct Debit payment results in a chargeback.

For more information on the chargeback process, refer to Dispute management.

Chargeback notification

You'll receive a chargeback notification when:

A chargeback notification contains:

  • eventCodeCHARGEBACK.
  • reason: Reason for the chargeback.
  • successtrue.

Here is an example of a notification indicating an ACH Direct Debit chargeback:

{
  "live": "false",
  "notificationItems": [
    {
      "NotificationRequestItem": {
        "additionalData": {
          "modificationMerchantReferences": ""
        },
        "amount": {
          "currency": "USD",
          "value": 1000
        },
        "eventCode": "CHARGEBACK",
        "eventDate": "2019-03-20T15:40:27+01:00",
        "merchantAccountCode": "YourMerchantAccount",
        "merchantReference": "YourMerchantReference",
        "originalReference": "161552590902659C",
        "paymentMethod": "ach",
        "pspReference": "181552594831625C",
        "reason": "Chargeback",
        "success": "true"
      }
    }
  ]
}

Testing your integration

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

Account Owner's Name Bank account number Bank routing number Account Owner's Address
Any name Any correctly formatted account number. Example: 123456789 011000138 or 121000358 Any correctly formatted US address.

See also