Menu

Pay with ACH

API v1
Last updated November 2020

Authorize an ACH payment and initiate a settlement request with one call.

Take a sale

POST your request to the direct:sale action link.

Sale example request

POST https://try.access.worldpay.com/payments/alternative/direct/sale

ACH sale request body:

Copied!
{
    "transactionReference": "unique-transactionReference",
    "merchant": {
        "entity": "an-entity"
    },
    "instruction": {
        "narrative": {
            "line1": "trading name"
        },
        "paymentInstrument": {
            "type": "bankAccountUS",
            "accountType": "checking|savings|corporate|corporateSavings",
            "accountNumber": "01234567890123456",
            "routingNumber": "01234567",
            "checkNumber": "012345678901234",
            "companyName": "for corporate accounts only",
            "billingAddress": {
                "firstName": "John",
                "lastName": "Johnson",
                "address1": "8500 Govenors Hill Drive",
                "address2": "Symmes Township",
                "address3": "",
                "postalCode": "45249",
                "city": "Ohio",
                "state": "OH",
                "countryCode": "US"
            }
        },
        "value": {
            "currency": "USD",
            "amount": 250
        }
    }
}

Parameter descriptions

ParameterRequiredDescription
transactionReferenceThe unique transaction reference for this sale. Up to 15 characters, digits only.
merchant.entityUsed to route the sale request in Access Worldpay, created as part of on-boarding.
instructionThe object that contains all the payment information related to the sale request.
instruction.narrative.line1This field is visible in the customer's bank statement.
instruction.paymentInstrumentAn object that contains bank account details.
paymentInstrument.typeThe type of payment instrument, must be "bankAccountUS" for ACH.
paymentInstrument.accountTypePossible values: checking, savings, corporate, corporateSavings.
paymentInstrument.accountNumberAccount number of direct debit account.
paymentInstrument.routingNumberRouting number of direct debit account.
paymentInstrument.checkNumberCheck number of the direct debit account.
paymentInstrument.companyNameCompany name if a corporate account.
paymentInstrument.billingAddressAn object containing the billing address information.
paymentInstrument.billingAddress.firstNameAn identifier for the firstName being used.
paymentInstrument.billingAddress.lastNameAn identifier for the lastName being used.
paymentInstrument.billingAddress.address1An identifier for the address1 being used. If included you must send at least:
paymentInstrument.billingAddress.address2An identifier for the address2 being used.
paymentInstrument.billingAddress.address3An identifier for the address3 being used.
paymentInstrument.billingAddress.postalCodeAn identifier for the postalCode being used.
paymentInstrument.billingAddress.cityAn identifier for the city being used.
paymentInstrument.billingAddress.stateAn identifier for the state being used.
paymentInstrument.billingAddress.countryCodeAn identifier for the countryCode being used.
instruction.valueAn object that contains the value of the sale.
instruction.value.currencyAn identifier for the currency being used.
instruction.value.amountAn identifier for the amount being used.

Sale response

Successful payment

You receive:

  • an HTTP code 201
  • an "outcome": "sentForSettlement"
  • links toreverseortrackyour payment

Refused payment

You receive:

  • an HTTP code 201
  • an "outcome": "refused"
Copied!
{
    "outcome": "sentForSettlement",
    "_links": {
        "direct:events": {
            "href": "https://try.access.worldpay.com/payments/alternative/direct/events/linkData"
        },
        "direct:reversal": {
            "href": "https://try.access.worldpay.com/payments/alternative/direct/reversals/linkData"
        },
        "curies": [{
            "name": "direct",
            "href": "https://try.access.worldpay.com/rels/payments/alternative/direct/{rels}",
            "templated": true
        }]
    }
}
{
    "outcome": "refused",
    "_links": {
        "direct:events": {
            "href": "https://try.access.worldpay.com/payments/alternative/direct/events/{linkData}"
        },
        "curies": [{
            "name": "direct",
            "href": "https://try.access.worldpay.com/rels/payments/alternative/direct/{rel}",
            "templated": true
        }]
    }
}

Note: In case of an error, you can get further information in ourerror reference.

Next steps


Manage your payment