ACH payment processing

ACH payment processing,
priced at $0.75 flat.

Collect and disburse over the ACH network at same-day, next-day, or standard speed through one REST API. Fixed fee per transaction, custody you control between collection and payout, and every return delivered as a typed, signed event with its NACHA reason code intact.

What is ACH payment processing?

ACH payment processing moves money directly between US bank accounts over the Automated Clearing House network, the batched system that carries payroll, vendor payments, and recurring bill collection. Because entries are batched rather than settled individually, ACH costs a flat few cents to a few dollars regardless of amount — which is why a $50,000 invoice paid by ACH costs $0.75 here and roughly $1,450 on a 2.9% card rate.

Inbound collection
$0.75 flat
Standard payout
$0.75 flat
Same-day payout
$1.50 flat
Settlement
Same day, next day, or 1–3 business days
Same-day network limit
$1,000,000 per transfer
Returns
$25.00 per return, network penalty at cost
Lifecycle

What actually happens to an ACH entry.

Most ACH problems are lifecycle problems — an authorization that does not cover a recurring pull, a return that arrives three days after you shipped, a settlement you cannot tie back to an invoice. Each stage below hands you the artifact that prevents the next failure.

01

Authorize the account

Link a bank account instantly via credentials, or verify by micro-deposit. You capture the customer's NACHA authorization — one-time or recurring — and we store the proof against the payment method.

02

Submit the entry

One POST creates the transfer. You pick the speed (standard, same-day) and the direction (debit to collect, credit to pay). We assign the correct SEC code from the transaction category — PPD for consumers, CCD for businesses, WEB for internet-authorized.

03

Funds land in custody

Collected funds settle into a custody wallet you control rather than sweeping straight to a destination. That window is what lets you net, split, hold, or reverse before the money is gone.

04

Settlement and returns arrive as events

Settlement, ACH returns, and NSF notifications are pushed to your endpoint, HMAC-SHA256 signed, carrying the network return code (R01 insufficient funds, R02 account closed, and so on) so your dunning logic can branch on the real reason.

The integration

One POST collects $4,800.

No NACHA file format, no SFTP drop, no batch window to schedule around. Your own invoice number rides along as correlation_id and comes back untouched on the settlement event, so reconciliation is a join rather than a project.

Total cost of that transaction: $0.75. On a 2.9% + 30¢ card rate it would be $139.50.

collect.sh
curl -X POST https://api.getpaystack.com/v1/payments \
  -H "Authorization: Bearer $PAYSTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount_cents": 480000,
    "direction": "debit",
    "rail": "ach",
    "speed": "standard",
    "source_payment_method_id": "pm_9f2c...",
    "correlation_id": "INV-2026-04182"
  }'
Returns

The return codes you will actually see.

An ACH return is not a generic failure. The network tells you exactly why, and the right response differs sharply per code — retrying an R07 is a compliance violation, while retrying an R01 is routine collections. Paystack passes the raw code through instead of flattening everything to 'declined'.

R01 — Insufficient funds

The most common return. Retriable; NACHA permits up to two retries of a failed debit.

R02 — Account closed

Not retriable. Stop the schedule and request a new payment method.

R03 — No account / unable to locate

Usually a data-entry error at authorization. Re-verify the account.

R07 — Authorization revoked

The customer told their bank to stop. Retrying is a compliance problem, not a collections one — we block it.

R10 / R11 — Customer disputes the entry

Treated as a dispute, not a soft failure. Surfaced immediately with the original authorization record attached.

R29 — Corporate customer advises not authorized

The CCD equivalent of a dispute. Same handling.

FAQ

ACH payment processing: common questions

How much does ACH payment processing cost?

Paystack charges $0.75 flat per inbound ACH transaction (a collection or debit) and $0.75 flat per standard outbound ACH transfer. Same-day ACH is $1.50 flat. These are fixed fees, not percentages, so a $50,000 ACH payment costs the same as a $50 one. A fixed $250/month platform fee applies on top and is never discounted by volume.

How long does an ACH payment take to settle?

It depends on the speed you request. Same-day ACH settles the same business day when submitted before the window cutoff. Next-day ACH settles the next business day. Standard ACH settles in one to three business days. ACH does not process on weekends or Federal Reserve holidays, so a Friday submission at standard speed typically settles Monday or Tuesday.

What is the difference between ACH and a wire transfer?

ACH is a batched network: entries are grouped and settled in scheduled windows, which is why it costs cents rather than tens of dollars. Wires settle individually and irrevocably in near real time, typically for $25–$50. ACH entries can be returned for up to 60 calendar days for a consumer dispute; wires generally cannot be reversed at all. For recurring or high-volume payments, ACH is almost always the right rail.

Is there a limit on ACH transaction size?

Standard ACH has no network-imposed per-transfer ceiling, though originating banks apply their own limits. Same-day ACH is capped by NACHA at $1,000,000 per transfer. Paystack applies your configured per-workspace and per-agent caps on top of the network limits.

Can an ACH payment be reversed?

A consumer can dispute an unauthorized debit for up to 60 calendar days, and the entry is returned. Separately, Paystack collects into a custody wallet rather than sweeping funds straight through, so a payment you have not yet released can be cancelled before it leaves — which is a different and much faster remedy than a network return.

What authorization do I need to debit a customer bank account?

NACHA requires the account holder to authorize the debit before you originate it, and requires you to retain proof. Recurring debits need explicit recurring authorization naming the amount or how it will be determined, and the timing. Paystack captures and stores the authorization against the payment method, and rejects a recurring pull whose authorization only covers a single payment.

Do I need my own bank relationship to process ACH?

No. Paystack originates through its sponsoring bank partners, so you are not negotiating an origination agreement or building NACHA file transmission. You call a REST endpoint; the file mechanics, batching, and window submissions are handled for you.

How do I handle a failed ACH payment?

Returns arrive as signed webhook events carrying the NACHA return code. Retriable codes such as R01 (insufficient funds) can be re-presented — NACHA permits up to two retries. Non-retriable codes such as R02 (account closed) and R07 (authorization revoked) should stop the schedule. Paystack charges $25.00 per return and passes the network penalty through with no markup.

Next step

Send us last month’s processing statement.

We will map it line for line against flat ACH pricing and tell you what the delta actually is — including the invoices where staying on cards is the right call.