ACH Direct Debit

A US domestic wire transfer.

Prerequisite:

  • Before using ACH Direct Debit SSL (ACH), you need to be setup. For more information, contact your Relationship Manager or Implementation Manager.
  • You need to have a US domestic bank account.

Integrate

The payment method you must submit is <ACH_DIRECT_DEBIT-SSL> with child element <echeckSale>.

<echeckSale> contains:

ElementM/OFormatDescription
<bankAccountType>MPossible Values:
  • Checking
  • Savings
  • Corporate
  • Corp Savings
The type of direct debit account used in the transaction.
<accountNumberMN(17)Account Number of direct debit account.
<routingNumber>MN(8)Routing Number of direct debit account.
<checkNumber>ON(15)Check number of the direct debit account.
<companyName>OString(40)Company name if a corporate account.
<customIdentifier>OAN(15)This can be used as a billing descriptor on the bank statements.
ElementM/ODescription
<billingAddress>
<firstName>OptionalBilling contact first name.
<lastName>OptionalBilling contact last name.
<address1>MandatoryBilling contact address line 1.
<address2>OptionalBilling contact address line 2.
<address>OptionalBilling contact address line 3.
<postalCode>MandatoryBilling contact ZIP / postal code.
<city>MandatoryBilling contact city.
<state>OptionalBilling contact state code, two-character long ISO code required for North America.
<countryCode>MandatoryBilling contact ISO Country Code
Example:US
For details, seeISO Country Codes.

Full XML example:

Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="YOUR_MERCHANTC_ODE">
<submit>
  <order orderCode="YOUR_ORDER_CODE">
   <description>test order</description>
   <amount value="1499" currencyCode="USD" exponent="2"/>
   <orderContent>
    <![CDATA[]]>
   </orderContent>
   <paymentDetails>
    <ACH_DIRECT_DEBIT-SSL>
     <echeckSale>
      <billingAddress>
       <address>
        <firstName>John</firstName>
        <lastName>Johnson</lastName>
        <address1>8500 Govenors Hill Drive</address1>
        <address2>Symmes Township</address2>
        <postalCode>45249</postalCode>
        <city>Ohio</city>
        <countryCode>US</countryCode>
       </address>
      </billingAddress>
      <customIdentifier>YOUR_IDENTIFIER</customIdentifier>
      <bankAccountType>Checking</bankAccountType>
      <accountNumber>5186005800001012</accountNumber>
      <routingNumber>000010101</routingNumber>
      <checkNumber>1104</checkNumber>
     </echeckSale>
    </ACH_DIRECT_DEBIT-SSL>
    <session shopperIPAddress="127.0.0.1" id="ssn185162629"/>
   </paymentDetails>
   <shopper>
    <shopperEmailAddress>sp@worldpay.com</shopperEmailAddress>
    <browser>
     <acceptHeader>text/html</acceptHeader>
     <userAgentHeader>Mozilla/5.0 ...</userAgentHeader>
    </browser>
   </shopper>
  </order>
</submit>
</paymentService>

Response

Example Response

Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN"
                "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
    <reply>
        <orderStatus orderCode="YOUR_ORDER_CODE">
            <payment>
                <paymentMethod>ACH_DIRECT_DEBIT-SSL</paymentMethod>
                <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit"/>
                <lastEvent>AUTHORISED</lastEvent>
                <balance accountType="IN_PROCESS_AUTHORISED">
                    <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit"/>
                </balance>
            </orderStatus>
        </reply>
    </paymentService>

Void a transaction

Submit avoid requestto reverse a transaction. If the transactions is not voidable, we will convert the request and refund it instead.

Errors

Error CodeDescriptionError origin
5Invalid AccountThe <routingNumber> or <accountNumber> supplied is invalid.
5Element echeckSale: element <x> exceeds maximum allowed length of xYou have exceeded the character length of the value length validation.
5Gateway errorThe value supplied in <bankAccountType> is invalid.