Endpoint
Overview
Use this endpoint to process ACH payments directly from a customer’s bank account. This method does not require creating a customer account or storing payment method tokens.ACH payments typically take 3-5 business days to settle. Funds are not immediately available.
Authentication
| Header | Value | Required |
|---|---|---|
x-api-key | Your API key from onboarding | Yes |
Authorization | Bearer {appToken} | Yes |
appId | Your application ID | Yes |
Content-Type | application/json | Yes |
Request Body
Container for API data
UUID for idempotency. If provided, must be in valid UUID format. Optional but recommended for preventing duplicate transactions.
Must be
"payments"Container for payment attributes
Must be
"ACH" for ACH paymentsThe merchant account identifier
Optional JSON string containing additional metadata like email, IP addresses, or custom data
Must be
"WEB" for internet-initiated ACH transactionsBank account information
Transaction details
Example Request
Response
Success Response (201 Created)
Contains URLs related to the resource
Container for response data
Example Response
Code Examples
Error Responses
Common Error Scenarios
Invalid routing number
Invalid routing number
Error: 400 Bad RequestSolution: Verify the routing number is a valid 9-digit ABA routing number. The test environment requires real routing numbers.
Invalid account type
Invalid account type
Error: 400 Bad RequestSolution: Ensure accountType is either “checking” or “savings” (lowercase).
Missing required fields
Missing required fields
Error: 400 Bad RequestSolution: Verify all required fields are present: paymentType, merchantId, StandardEntryClassCode, bank object, and transaction object.
Payment processing failed
Payment processing failed
Error: 422 Unprocessable EntitySolution: The payment was rejected by the bank. Common reasons include insufficient funds, closed account, or invalid account information.
Important Notes
Real Routing Numbers Required: Even in the test environment, you must use valid bank routing numbers. Invalid routing numbers will be rejected.
Settlement Time: ACH payments take 3-5 business days to settle. The payment will appear as “pending” during this time.
Idempotency: Use the optional
requestId field with a UUID to prevent duplicate payments if your request is accidentally submitted multiple times.Best Practices
- Validate Bank Information: Verify routing and account numbers before submitting to reduce failed payments
- Store Payment IDs: Save the returned payment ID for status checking and reconciliation
- Handle Async Nature: ACH is asynchronous - implement webhooks or polling to track payment status
- Collect Customer Consent: Ensure you have proper authorization to debit the customer’s account
- Use miscData Field: Store additional context like customer email, IP addresses for fraud prevention and customer support
Next Steps
Get Payment Status
Check the status of your ACH payment
Refund Payment
Learn how to refund an ACH payment

