ACH/ECP
ACH (Automated Clearing House), sometimes referred to as electronic check processing, e-Check, or ECP, is an alternative to credit card payments. It is an online payment method where money is electronically withdrawn from your shopper’s bank account and then deposited into the merchant’s own bank account.
ACH/ECP transactions are monitored by our built-in fraud prevention capabilities, just like credit card transactions. This payment method is supported for US transactions.
Benefits
- Boost your sales by reaching additional shoppers who do not use credit cards or other payment methods.
- Eliminate the need for paper checks and instead enable customers to provide their payment info online.
- Store shopper account information for easier repeat purchases.
- Enjoy transaction costs that are typically lower than credit card transactions.
- Reduce issues with failed payments due to failed or invalid cards, since checking accounts do not have an expiration date, and your shoppers rarely switch banks.
- Solution for B2B transactions and other payments for high-cost items where a credit card limit could be exceeded.
- Account validation ensures your shopper's bank account exists and is in good standing before we send the transaction for processing.
Settlement Timing
An ACH transaction must undergo an approval process before it is settled. The approval timeline is determined by the settlement timing and the cutoff time.
- Settlement timing is the length of time from when an ACH transaction is initiated to when it is approved. BlueSnap's standard settlement type is T+3, which means the settlement timing is the day that the transaction is initiated plus three business days.
- The cutoff time is a deadline that determines whether BlueSnap submits the transaction to the bank on the current or next business day. BlueSnap's cutoff time is 6PM PST.
For example, if your shopper initiates a transaction at 5PM PST on Monday, then BlueSnap submits the payment to the shopper's bank on Monday. Because the settlement timing is T+3, the transaction is approved by Thursday. If your shopper initiates a transaction at 7PM PST on Monday, then BlueSnap does not submit the transaction to the shopper's bank until the following business day (Tuesday). The T+3 settlement timing means that the transaction is approved by Friday.
Account Validation and Processing Flow
These are the main steps involved in processing ACH transactions:
-
The merchant receives the shopper’s authorization for the ACH entry by entering their bank information and authorizing the debit on the checkout page.
-
When the shopper clicks Next, the transaction is placed and BlueSnap verifies that the shopper's bank account and routing numbers are valid.
- If the bank account is valid, BlueSnap creates an invoice in PENDING status, sends the transaction to the shopper's bank for processing, and sends a Charge Pending webhook.
- If the bank account is invalid or is not in good standing, an error message is displayed to your shopper and the transaction is not sent for processing.
-
Within 3 days, the bank will notify BlueSnap if the payment was rejected. If BlueSnap does not receive the notification within this timeframe, the invoice will be approved.
- If the transaction is approved, the shopper's account is debited for the transaction amount and BlueSnap sends a Charge webhook. We recommend delivering your product only after you receive the approval.
- If the transaction is rejected, the shopper's account is not debited and BlueSnap sends a Decline webhook. Payments can be rejected for a variety of reasons, including insufficient funds. To resolve a payment rejection, you can provide an alternative payment method and resubmit the charge.
-
BlueSnap updates the invoice status to reflect whether it was approved (SUCCESS) or rejected (FAIL).
-
The shopper has 60 days to dispute the debit on their account. If this occurs, BlueSnap will remove the funds from your account and send a Refund webhook, and the invoice status will change to REFUNDED. Please note that some banks might allow a longer timeframe for reversals.
Note: BlueSnap Declines
We have improved our validation, making it stricter and more comprehensive. With these validations in place, there is less of a chance of rejection from the banks. You might get higher decline rates from BlueSnap, but keep in mind that these declines act as protection from a rejection fee, since the transaction likely would have been declined by the bank.
BlueSnap Checkout and API Integrations
ACH/ECP transactions are supported in all of BlueSnap's integrations.
To process ACH transactions, make sure that you enable this payment method as described in Enabling Payment Methods.
If you are using BlueSnap Checkout, the ACH payment option automatically appears to shoppers in the US once it has been enabled.
If you are using BlueSnap's API, refer to the API Guide for ACH.
Subscriptions
BlueSnap supports subscriptions with ACH. Please note that subscriptions with ACH do not support the following:
- Plans with a billing frequency of daily or weekly
- Trial periods
- Automated retries in BlueSnap's Subscription engine
- On-demand $0 transactions
Refunds
Refunds can be processed only after your shopper's account has been debited and the invoice status has changed to approved. Please note that if you request a refund while the invoice is pending (before your shopper's account has been debited), you will receive an error message informing you the transaction has not yet been settled.
If a refund is requested after your shopper's account has been debited, BlueSnap will remove the funds from your account and the invoice status will update to refunded.
You can issue a refund through the Merchant Portal or the Payment API. For details, see Issuing a Refund.
Sandbox Testing
You may use the following bank credentials to test various scenarios.
Simulate format validation error
Account number:123456789
Routing number:123456789
Simulate declined transaction*
Account number:123456789
Routing number:987654321
Simulate approved transaction*
Account number:223344556
Routing number:998877665
*After the initial transaction request, the status changes within 15 minutes.
Return Codes
Important
To comply with NACHA regulations, starting on June 21, 2026 the system will deactivate the ACH accounts of transactions that result in R02, R03, R04, R05, R07, R10, or R29 return codes and cancel any subscriptions associated with that account.
If you receive a webhook message that contains any of those return codes:
- The shopper will need to resolve the issue with their bank before attempting a new transaction.
- The shopper will not be able to use the same ACH account for future transactions without re-entering their account details.
- Any active subscriptions linked to this ACH account will be canceled or otherwise prevented from further billing attempts.
- If the shopper initiates a new transaction using the same account and routing number, it will be treated as a new account.
A transaction may be returned or reversed by a bank for various reasons. The following is a list of ACH return codes, or reasons for reversal. These codes will be indicated in the reason field (such as cancelReason, declineReason, or reversalReason) of relevant webhooks for refunds, chargebacks, cancellations, and declines.
| Code | Name | Action |
|---|---|---|
R01 | Insufficient Funds | Retry no more than two times as a new transaction within 30 days of the original authorization date. |
R02 | Account Closed | Do not retry. The system will deactivate this ACH account. Contact the customer to resolve the issue with their bank before creating a new transaction and re-entering their account information. |
R03 | No Account/Unable to Locate Account (Account number does not correspond to the individual identified in the entry) | Do not retry. The system will deactivate this ACH account. Contact the customer to resolve the issue with their bank before creating a new transaction and re-entering their account information. |
R04 | Invalid Account Number | Do not retry. The system will deactivate this ACH account. Contact the customer to resolve the issue with their bank before creating a new transaction and re-entering their account information. |
R05 | Unauthorized Debit Entry | Do not retry. The system will deactivate this ACH account. Contact the customer to resolve the issue with their bank before creating a new transaction and re-entering their account information. |
R06 | Returned per ODFI’s (originator) Request | Do not retry. Contact the customer to resolve the issue. |
R07 | Authorization Revoked by Customer | Do not retry. The system will deactivate this ACH account. Contact the customer to resolve the issue with their bank before creating a new transaction and re-entering their account information. |
R08 | Payment Stopped | Requires customer's authorization to retry. |
R09 | Uncollected Funds | Retry no more than two times as a new transaction within 30 days of the original authorization date. |
R10 | Originator is Not Known to Receiver/Originator is Not Authorized to Debit Receiver’s Account | The system will deactivate this ACH account. Contact the customer to resolve the issue with their bank before creating a new transaction and re-entering their account information. |
R11 | Entry Not in Accordance with the Terms of the Authorization | Contact the customer to correct the information and submit a new entry without needing a new authorization. |
R12 | Branch Sold | Do not retry. Contact the customer for another form of payment or different bank account information. |
R13 | Invalid ACH Routing Number | Do not retry. Contact the customer to confirm their routing number. |
R14 | Representative Payee Deceased or Unable to Continue in that Capacity | Do not retry. |
R15 | Beneficiary of Account Holder Deceased | Do not retry. |
R16 | Account Frozen | Account must be unfrozen before retrying. Otherwise, use another form of payment or different bank account information. |
R20 | Non-Transaction Account | Do not retry. Contact the customer for another form of payment or different bank account information. |
R28 | Routing Number Check Digital Error | Do not retry. Contact the customer to confirm their routing number. |
R29 | Corporate Customer Advises Not Authorized | Do not retry. The system will deactivate this ACH account. Contact the customer to resolve the issue with their bank before creating a new transaction and re-entering their account information. |
R31 | Permissible Return Entry | Do not retry. Contact the customer for another form of payment or different bank account information. |
R34 | Limited Participation DFI | Do not retry. Contact the customer for another form of payment or different bank account information. |
Updated 9 days ago
