This solution is available only in the United States.
ACH payments are electronic bank payments that enable merchants to accept funds directly from customers’ bank accounts. This guide explains how to initiate ACH payments, process refunds, and handle ACH returns using our API.
Before starting the steps in this guide, you must do the following:
To initiate an ACH payment (sale), you need to make an API call with the merchant’s bank account details:
Bank.code – The bank routing number (identifier for the banking institutions). Validated in real time in both our Sandbox and Production environments.Bank_transfer.account_number – The customer’s checking account number. Not validated in real time. To reduce the likelihood of ACH returns, you may want to implement a duplicate entry for the customer’s bank account number.You can issue a full or partial refund on an ACH transaction by referencing the original transaction ID. Refunds are processed in US dollars (USD) and follow the standard ACH settlement timeline.
When refunding an ACH transaction, we’ll try to reverse the transaction if possible. If the transaction is reversed, the TRN_id returned will be the same as the primary transaction. If the transaction is refunded, you’ll receive a new TRN_id.
After you initiate an ACH sale, we attempt to pull funds from the provided bank account. We assume a successful transaction and fund the merchant. However, the merchant may receive a subsequent ACH return.
An ACH return can be triggered by incorrect checking account information, insufficient funds, or canceled payments by the customer. In the event of an ACH return, the return amount is pulled from the merchant’s Funds Management Account (FMA).
You’ll be notified of the ACH return via webhook or if you pull the merchant’s ACH return reports. We recommend that you monitor transaction status regularly and handle returned transactions according to your business processes.
To get a deeper understanding of payment methods, we recommend that you use our provided integration references. For the full detailed API specification, see the API Explorer.
See the full API specification for moving funds.
See the full API specification for creating transactions.
Add server-side or client-side code to your integration.
This solution is available for testing in our free Sandbox environment for registered users of this developer portal. Use our resources below to start testing different scenarios.
View, import, or fork our API collection in Postman.
Test different transaction outcomes with simulated cards or banks.
View successful responses, HTTP status codes, action response data, and errors.
Below are recommended next steps for your partner integration.