ACH Direct Debit

ACH (Automated Clearing House) direct debit is a popular form of payment and a cost-effective alternative to credit and debit cards in the United States.

Currency: USD.

Settlement time: Depending on a shopper's bank account, settlement time varies between 2-3 days.

ACH payments over Adyen HPP follow the payment flow outlined in this document. You can customize appearance of these pages and specify available payment methods using skins.

  1. On the payment selection page, a shopper should choose the ACH Direct Debit method.

  2. A shopper enters payment details, such as bank account information and the billing address.

  3. Clicks pay.

After the payment is successfully completed, a shopper is redirected to the result page.

Custom payment flow

If you have a shopper's billing information, you may skip initial payment pages and redirect a shopper directly to the confirmation page.  If you already have a shopper's bank account and billing address information, we recommend that you skip the details page and immediately proceed to the payment page. In this case a shopper will only need to review the payment details and click Pay, which provides better user experience and reduces the number of incomplete payment transactions.

To implement this custom payment flow:

Post a payment request directly to the https://test.adyen.com/hpp/skipDetails.shtml endpoint with the following parameters.

http://test.adyen.com/hpp/skipDetails.shtml?ach.ownerName=Andrews&ach.bankCountryCode=US&ach.bankAccountNumber=1234567890&ach.bankLocationId=011000138&ach.billingAddress.street=Bakkerstraat&ach.billingAddress.houseNumberOrName=137&ach.billingAddress.postalCode=12010&ach.billingAddress.city=Amsterdam&ach.billingAddress.stateOrProvince=NY&ach.billingAddress.country=US&ach.acceptDirectDebit=true&sig={YOUR SIGNATURE}&merchantReference=TMRef1234&brandCode=ach&paymentAmount=8650&currencyCode=USD&shipBeforeDate=2016-08-30&skinCode=aF563qQs&merchantAccount=TestMerchant&sessionValidity=2016-08-24T14%3A22%3A22Z

For the complete list of parameters required for this call, refer to the ACH payment fields.

Make an authorisation request for a one-off ACH payment. Initiate payment requests to either a Test or Live endpoint depending on your current integration status. For more information, refer to API reference.

For JSON, make this call to the  https://pal-test.adyen.com/pal/servlet/Payment/v30/authorise test endpoint.

{
   "amount": {
      "currency": "USD",
      "value": "1000"
   },
   "merchantAccount": "TestMerchant",
   "reference": "MRef001-117",
   "shopperReference": "test1111",
   "bankAccount": {
      "countryCode": "US",
      "ownerName": "Andrews",
      "bankLocationId": "011000138",
      "bankAccountNumber": "1234567890",
      "bankName": "Bank of America",
      "bic": "BOFAUS3N"
   },
   "billingAddress": {
      "country": "US",
      "street": "Test",
      "houseNumberOrName": "137",
      "city": "Amsterdam",
      "postalCode": "12010",
      "stateOrProvince": "NY"
   }
}

In a case of successful authorisation, you will get the following payment response:

{
    "additionalData": {
        "achdirectdebit.dateOfSignature": "2016-08-16",
        "achdirectdebit.mandateId": "9914713364543277",
        "achdirectdebit.sequenceType": "OneOff"
    },
    "pspReference": "9914713364543277",
    "resultCode": "Authorised"
}

For SOAP, make this call to the https://pal-test.adyen.com/pal/servlet/Payment/v30 test endpoint.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soap:Body>
        <ns1:authorise xmlns:ns1="http://payment.services.adyen.com" xmlns:ns2="http://common.services.adyen.com">
            <ns1:paymentRequest>
                <ns1:amount>
                    <currency>USD</currency>
                    <ns2:value>1000</ns2:value>
                </ns1:amount>
                <ns1:merchantAccount>TestMerchant</ns1:merchantAccount>
                <ns1:reference>MRef001-117</ns1:reference>
                <ns1:shopperReference>test1111</ns1:shopperReference>
                <ns1:bankAccount>
                    <countryCode>US</countryCode>
                    <ownerName>Andrews</ownerName>
                    <bankLocationId>011000138</bankLocationId>
                    <bankAccountNumber>1234567890</bankAccountNumber>
                    <bankName>Bank of America</bankName>
                    <bic>BOFAUS3N</bic>
                </ns1:bankAccount>
                <ns1:billingAddress>
                    <country>US</country>
                    <ns2:street>Test</ns2:street>
                    <ns2:houseNumberOrName>137</ns2:houseNumberOrName>
                    <ns2:city>Amsterdam</ns2:city>
                    <ns2:postalCode>12010</ns2:postalCode>
                    <ns2:stateOrProvince>NY</ns2:stateOrProvince>
                </ns1:billingAddress>
            </ns1:paymentRequest>
        </ns1:authorise>
    </soap:Body>
</soap:Envelope>

In a case of successful authorisation, you will get the following payment response:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:ns1="http://payment.services.adyen.com" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
      <ns1:authoriseResponse>
         <ns1:paymentResult>
            <ns1:additionalData>
               <ns1:entry>
                  <ns1:key xsi:type="xsd:string">achdirectdebit.dateOfSignature</ns1:key>
                  <ns1:value xsi:type="xsd:string">2016-08-16</ns1:value>
               </ns1:entry>
               <ns1:entry>
                  <ns1:key xsi:type="xsd:string">achdirectdebit.mandateId</ns1:key>
                  <ns1:value xsi:type="xsd:string">9914713344211235</ns1:value>
               </ns1:entry>
               <ns1:entry>
                  <ns1:key xsi:type="xsd:string">achdirectdebit.sequenceType</ns1:key>
                  <ns1:value xsi:type="xsd:string">OneOff</ns1:value>
               </ns1:entry>
            </ns1:additionalData>
            <ns1:pspReference>9914713344211235</ns1:pspReference>
            <ns1:resultCode>Authorised</ns1:resultCode>
         </ns1:paymentResult>
      </ns1:authoriseResponse>
   </soap:Body>
</soap:Envelope>

For FORM requests, make this call to the https://pal-test.adyen.com/pal/servlet/Payment/v30/authorise test endpoint.

amount.currency=USD&amount.value=1500&merchantAccount=TestMerchant&reference=MRef001-117&shopperReference=test1111&bankAccount.countryCode=US&bankAccount.ownerName=Andrews&bankAccount.bankLocationId=011000138&bankAccount.bankAccountNumber=1234567890&bankAccount.bankName="Bank of America"&bankAccount.bic=BOFAUS3N&billingAddress.country=US&billingAddress.street=Test&billingAddress.houseNumberOrName=137&billingAddress.city=Amsterdam&billingAddress.postalCode=12010&billingAddress.stateOrProvince=NY

In a case of successful authorisation, you get the following payment response:

additionalData.achdirectdebit.dateOfSignature=2016-08-16&additionalData.achdirectdebit.mandateId=9914713520469052&additionalData.achdirectdebit.sequenceType=OneOff&pspReference=9914713520469052&resultCode=Authorised

Chargeback

In a case of an ACH chargeback, it is not possible for a merchant to defend against a dispute. Shoppers can reverse an ACH payment after settlement for one of the following reasons:

  • If a charge is not authorized by the account holder or the authorization is revoked. In this case, a shopper has up to 60 days from the specified date of payment to report the transaction to their bank and request a reversal.
  • If a charge is processed on a date earlier than authorized.
  • If a charge is settled for an amount different than authorized.

To initiate an ACH chargeback, an account holder provides notice to the bank in writing or the electronic equivalent that one of the above three conditions exists. This is different from credit card transactions where a customer can initiate a chargeback by claiming that the product or service received was not what they expected.

Questions

Can't find something you are looking for? Look at our FAQ for answers or send an email to support.