Last Updated: 13 November 2024 | Change Log
Pay with ACH
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:
{ "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 descriptions
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. |
Sale response
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.
Successful payment
You receive:
Refused payment
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