Last Updated: 24 September 2025 | Change Log
A direct debit for US based merchants.
Automated Clearing House (ACH), often referred to as eCheck, allows your customers to pay by transferring funds directly from their bank account.
Make yourself familiar with our API principles to ensure a resilient integration.
Product overview
Processing of ACH transactions happens overnight (or the next available working day at weekends and holidays). The handling bank issues regular reports outlining the successful and failed payments. Once the payment is successful, you can release the goods and services to the customer.
Payment type | Countries | Currencies | Recurring | Refunds | Partial refunds | Reversal | Partial reversals | Chargebacks |
---|---|---|---|---|---|---|---|---|
Direct Debit | US | USD | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
Chargebacks and refunds can occur, and are managed directly at acquirer level.
Get started using our API reference and set your headers.
POST
https://try.access.worldpay.com/apmPayments
- Try
https://try.access.worldpay.com/apmPayments
- Live
https://access.worldpay.com/apmPayments
- Payload
- curl
- Python
- Java
- Node.js
- Go
- PHP
- Ruby
- C#
{ "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "method": "ach", "narrative": { "line1": "MindPalace" }, "value": { "amount": 750, "currency": "USD" }, "paymentInstrument": { "type": "direct", "accountType": "checking", "accountNumber": "01234567890123456", "routingNumber": "012345678", "checkNumber": "012345678901234", "companyName": "Worldpay", "billingAddress": { "address1": "8500 Govenors Hill Drive", "address2": "Symmes Township", "postalCode": "45249", "city": "Ohio", "state": "US-OH", "countryCode": "US" } }, "customer": { "firstName": "John", "lastName": "Johnson", "customerId": "43424", "email": "john@example.com" } } }
Used to route the request in Access Worldpay, created as part of on-boarding.
Object that contains the payment type and details.
Type of payment method
- ach
- alipay_cn
- alipay_hk
- bancontact
- blik
- eft
- euteller
- ideal
- klarna
- konbini
- multibanco
- mybank
- open_banking
- oxxo
- paypal
- paysafecard
- pix
- przelewy
- sepa
- safetypay
- trustly
- wechatpay
The value of the payment.
The amount in the lowest denomination of the currency e.g. pennies for GBP, cents for USD.
The supported ISO 4217 currency codes.
The description shown on your customer's bank statement for the payment.
The type of instrument.
Account type.
Account number of direct debit account.
Routing number of direct debit account.
Check number of the direct debit account.
Company name if a corporate account.
City.
The supported ISO 3166-1 alpha-2 country codes.
Postal code.
State code of the billing address in ISO 3166-2 format.
Your customer's first name.
Your customer's last name.
Your unique reference for the customer so that the 'pay faster next time' function can be used during checkout. This allows the shoppers chosen bank to be stored for their next payment.
The customer's e-mail address.
- an HTTP code 201
- a
paymentId
which is unique to the payment. Store this "id" to be able to manage the payment later - a url to redirect your customer to the APM provider to complete the payment
- a link to query the payment status
- an object which will give flow information such as
method
(e.g.ach
) and type (direct
) - a
commandId
generated by us identifying a single merchant interaction (e.g.cmdYNdIHBPJwbkjLiykzTx0
)
{
"paymentInstrument": {
"method": "ach",
"type": "direct"
},
"paymentId": "eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdDZM8QaH19DiFbmMAchPSTyxQUry+EjhI+4Av0FZgKybTQW8Eq5Lj6LFzcEh8YV9gKLyAJXKJwZGztDqfCZz9C54i7Qm6PznXY+lb8gjX08QbPuM7eN9CDfUDc8S4J3uauHV:lzKfpwhCpCj20XtN:AkTEXfvJEm8PKFuVlX10AbTZIsCMVbuMS1sIqrgbendo:b1Rfx8XquR8u:dBYr5a70wYkewsxOvrYXmLip3FvyJdzRzXf3LyUgHUqZh:ulvr2BwGjsfY6y32HN+osTE4dworCDzhGpsvEwJ:GRwLUNfeKBzVqK6WhJGqM+s8XpCA==",
"lastEvent": "authorized",
"_links": {
"self": {
"href": "https://try.access.worldpay.com/apmPayments/eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdDZM8QaH19DiFbmMAchPSTyxQUry+EjhI+4Av0FZgKybTQW8Eq5Lj6LFzcEh8YV9gKLyAJXKJwZGztDqfCZz9C54i7Qm6PznXY+lb8gjX08QbPuM7eN9CDfUDc8S4J3uauHV:lzKfpwhCpCj20XtN:AkTEXfvJEm8PKFuVlX10AbTZIsCMVbuMS1sIqrgbendo:b1Rfx8XquR8u:dBYr5a70wYkewsxOvrYXmLip3FvyJdzRzXf3LyUgHUqZh:ulvr2BwGjsfY6y32HN+osTE4dworCDzhGpsvEwJ:GRwLUNfeKBzVqK6WhJGqM+s8XpCA=="
}
},
"_actions": {},
"redirect": "",
"commandId": "cmdSQBwMoFu3i2bNWmLGZLid0"
}
Check out our API reference for the full error code schema.
Next steps