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

  • 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.
  • Obtain the shopper's permission to debit their account:
    You must obtain authorization and the digital signature (e-sign is accepted) or some other authentication from the shopper to debit a consumer account. The following information must be obtained from the shopper:
    • Whether the auth is for single entry, recurring or subsequent under a standing authorization
    • Amount of entry or method of determining the amount
    • Receiver’s name (merchant)
    • Account to be debited
    • Date of authorization
    • Instructions for how to revoke, including the time and manner for the shopper to revoke. If it's a single debit auth, the shopper must afford the merchant reasonable opportunity to act on the revocation.
    • While it is not mandated, you may use this sample form as a guide.
  • You must preserve each shopper’s authorization for 2 years and provide to BlueSnap upon request.
  • You must provide each shopper with an electronic or hard copy of the signed authorization for all debit entries to the shopper’s account
    • Sample language to provide to each shopper electronically for one-time authorization:
      This email confirms you have authorized [merchant name] to debit your bank account for any amount owed for your recent purchase or services or goods from us through our website and subject to our terms and conditions.
    • Sample language to provide to each shopper electronically for recurring transactions authorization:
      This email confirms you have authorized [merchant name] to store your bank account information and debit your bank account for recurring or periodic transactions from us through our website and subject to our terms and conditions. You may amend or cancel this authorization at any time by providing notice to us within 30 (thirty) days.
    • For authorizations to debit business accounts, you can use any authorization form to indicate your right to debit the business account.
  • BlueSnap imposes an obligation for those not using our Hosted Page to certify that the appropriate compliant authorization is requested, received, and retained.

Visit the Nacha site to learn more about your ACH obligations.

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.