Last updated: 01 October 2025 | Change log
Authorize an ACH payment and initiate a settlement request with one call.
Note
Reversal is only possible within the first twenty-four hours after settlement.
POST your request to the direct:sale action link.
POST https://try.access.worldpay.com/payments/alternative/direct/sale
{
    "transactionReference": "unique-transactionReference",
    "merchant": {
        "entity": "default"
    },
    "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 | Required | Description | 
|---|---|---|
transactionReference | ✅ | The unique transaction reference for this sale. Up to 15 characters, digits only. | 
merchant.entity | ✅ | Used to route the sale request in Access Worldpay, created as part of on-boarding. | 
instruction | ✅ | The object that contains all the payment information related to the sale request. | 
instruction.narrative.line1 | ✅ | This field is visible in the customer's bank statement. | 
instruction.paymentInstrument | ✅ | An object that contains bank account details. | 
paymentInstrument.type | ✅ | The type of payment instrument, must be "bankAccountUS" for ACH. | 
paymentInstrument.accountType | ✅ | Possible values: checking, savings, corporate, corporateSavings. | 
paymentInstrument.accountNumber | ✅ | Account number of direct debit account. | 
paymentInstrument.routingNumber | ✅ | Routing number of direct debit account. | 
paymentInstrument.checkNumber | ❌ | Check number of the direct debit account. | 
paymentInstrument.companyName | ❌ | Company name if a corporate account. | 
paymentInstrument.billingAddress | ❌ | An object containing the billing address information. | 
paymentInstrument.billingAddress.firstName | ❌ | An identifier for the firstName being used. | 
paymentInstrument.billingAddress.lastName | ❌ | An identifier for the lastName being used. | 
paymentInstrument.billingAddress.address1 | ❌ | An identifier for the address1 being used.  If included you must send at least:
  | 
paymentInstrument.billingAddress.address2 | ❌ | An identifier for the address2 being used. | 
paymentInstrument.billingAddress.address3 | ❌ | An identifier for the address3 being used. | 
paymentInstrument.billingAddress.postalCode | ✅ | An identifier for the postalCode being used. | 
paymentInstrument.billingAddress.city | ✅ | An identifier for the city being used. | 
paymentInstrument.billingAddress.state | ❌ | An identifier for the state being used. | 
paymentInstrument.billingAddress.countryCode | ✅ | An identifier for the countryCode being used. | 
instruction.value | ❌ | An object that contains the value of the sale. | 
instruction.value.currency | ❌ | An identifier for the currency being used. | 
instruction.value.amount | ❌ | An identifier for the amount being used. | 
Best practice
Access Worldpay returns a WP-CorrelationId in the headers of service responses. We highly recommend you log this. The WP-CorrelationId is used by us to examine individual service requests.
You receive:
You receive:
- an HTTP code 
201 - an 
"outcome": "refused" 
Note
In case of an error, you can get further information in our error reference.
Next steps