Learn how to process ACH/ECP payments with the BlueSnap APIs.
For more information on topics like subscriptions and refunds, visit our support guides.

ACH (Automated Clearing House), sometimes referred to as electronic check processing, e-Check, or ECP, is an alternative to credit card payments. It is a payment method where money is electronically withdrawn from the shopper’s bank account and then deposited into the merchant’s own bank account. This payment method is supported for US transactions.

BlueSnap's Secured Payment Collector allows you to securely collect your shopper's sensitive banking details for ACH payments. This feature consists of discrete input fields that give you complete control over the look and feel of your checkout form while giving customers the seamless experience of staying on your website. Visit the guide for complete implementation details.


  • 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 your shoppers' account information for easier repeat purchases, including multiple ACH accounts for a single shopper.
  • Enjoy transaction costs that are typically lower than credit card transactions.
  • Reduce issues with failed payments due to failed or invalid cards, because 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 that might exceed a credit card limit.
  • Account validation ensures the shopper's bank account exists and is in good standing before we send the transaction for processing.

ACH Transaction Processing

  1. When the transaction is placed, 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 IPN.
    • If the bank account is not valid or is not in good standing, BlueSnap returns a 10001 error in the API and does not send the transaction for processing.
  2. 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 IPN.
    • If the transaction is rejected, the shopper's account is not debited and BlueSnap sends a Decline IPN.
  3. The invoice status will update to reflect whether it was approved or rejected.

Note: We recommend delivering your product only after you receive the approval.

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 IPN, and the invoice status will update to refunded. Please note that some banks might allow a longer timeframe for reversals.


Resolving payment rejections

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.

API Integrations

ACH/ECP transactions are supported in BlueSnap's Payment API and Extended API.

For the Payment API, see:

For the Extended Payment API, see:


ACH requirements

1. Enable the ECP payment method in your account.
To process ACH/ECP transactions, first, enable this payment method in your account. In the Merchant Portal, go to Checkout Page > Payment Methods and select Show in the menu next to the ECP payment method. Click Submit to save your change.

2. Obtain the shopper's permission to debit their account.
For each ACH/ECP transaction, you must obtain permission from the shopper to debit their account, for example by showing a checkbox with the following wording on your checkout page:
    "I authorize this Electronic Check (ACH/ECP) transaction and agree to this debit of my account."

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.