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": "ach-order-001",
"ipAddress": "203.0.113.42",
"paymentType": "PULL",
"capture": true,
"amount": {
"total": 19.99,
"currency": "USD"
},
"sender": {
"firstName": "John",
"lastName": "Smith",
"address": {
"countryCode": "US",
"stateCode": "NY",
"city": "New York",
"line1": "123 Main Street",
"line2": "Apt 25B",
"zipCode": "10001"
},
"paymentMethod": {
"type": "BANK_DEPOSIT",
"accountNumber": "123456789",
"routingNumber": "021000021",
"accountType": "CHECKING"
}
}
}'
Payment Method Fields
| Field | Type | Required | Description |
|---|---|---|---|
type | string | ✅ | "BANK_DEPOSIT" |
accountNumber | string | ✅ | Bank account number (6–20 digits) |
routingNumber | string | ✅ | ABA routing number (9 digits) |
accountType | string | ✅ | 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 return the same response structure as card payments. Since capture is true, the status will be CAPTURED on success:
{
"status": 200,
"data": {
"paymentId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"parentPaymentId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"externalPaymentId": "ach-order-001",
"amount": 19.99,
"created": "2025-03-31 10:15:30",
"approved": true,
"message": "Payment Approved",
"status": "CAPTURED",
"captured": true,
"voided": false,
"responseCode": "00"
}
}
Key Differences from Card Payments
| Feature | Card | ACH |
|---|---|---|
| Tokenization required | ✅ Yes | ❌ No |
| Pre-authorization | ✅ Supported | ❌ Not supported |
| Capture/Void lifecycle | ✅ Full lifecycle | ❌ Auto-captured |
| 3D Secure | ✅ Possible | ❌ Not applicable |
| Refund | ✅ Supported | ✅ Supported |
| Settlement speed | Same day – 2 days | 1–3 business days |
