ACH (Bank Account)
ACH payments pull funds directly from a US bank account using the account number and routing number. Unlike card payments, ACH does not require tokenization β bank details are included directly in the API request.
Note: ACH payments are always captured immediately. Pre-authorization is not supported for ACH.
Example Request
curl -X POST https://{FQDN}/v2/payment \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
-H 'Content-Type: application/json' \
-d '{
"externalPaymentId": "b7e4c2a1-9f3d-4e8a-a5c6-2d1f0e9b8a73",
"ipAddress": "203.0.113.42",
"paymentType": "PULL",
"capture": true,
"amount": {
"total": 201.99,
"currency": "USD"
},
"sender": {
"firstName": "John",
"lastName": "Smith",
"address": {
"countryCode": "USA",
"stateCode": "NY",
"city": "New York",
"line1": "123 Main Street",
"zipCode": "10001"
},
"paymentMethod": {
"type": "BANK_DEPOSIT",
"countryCode": "USA",
"bankCode": "*****0021",
"accountNumber": "*************6789",
"routingNumber": "*****0021",
"accountType": "CHECKING",
"accountTokenId": "f2a6d8c4-1e3b-4a59-b7d0-5c8e9f1a2b34"
}
}
}'
Payment Method Fields
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "BANK_DEPOSIT" |
accountNumber | string | Yes | Bank account number (6β20 digits) |
routingNumber | string | Yes | ABA routing number (9 digits) |
accountType | string | Yes | Account type (see below) |
Account Types
| Value | Description |
|---|---|
CHECKING | Personal checking account |
SAVINGS | Personal savings account |
BUSINESS_CHECKING | Business checking account |
BUSINESS_SAVINGS | Business savings account |
Response
ACH payments are processed asynchronously. A 200 with status: "PENDING" means the gateway accepted the payment, not that the funds have settled. Poll GET /v2/payment/{externalId} or wait for the webhook for the final outcome β approved: false on a PENDING payment is not a decline:
{
"amount": 201.99,
"status": "PENDING",
"created": "2026-10-11 02:52:20",
"message": "Payment Pending",
"approved": false,
"currency": "USD",
"paymentId": "3c9a1e57-6b2d-4f80-9e14-a7d5c3b2f601",
"responseCode": "01",
"parentPaymentId": "3c9a1e57-6b2d-4f80-9e14-a7d5c3b2f601",
"externalPaymentId": "b7e4c2a1-9f3d-4e8a-a5c6-2d1f0e9b8a73"
}
Key Differences from Card Payments
| Feature | Card | ACH |
|---|---|---|
| Tokenization required | Yes Yes | No No |
| Pre-authorization | Yes Supported | No Not supported |
| Capture/Void lifecycle | Yes Full lifecycle | No Auto-captured |
| 3D Secure | Yes Possible | No Not applicable |
| Refund | Yes Supported | Yes Supported |
| Settlement speed | Same day β 2 days | 1β3 business days |
