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.
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.
ACH is not one product. The difference between paying $0.75 and $1.50 is a single field on the request — so route by urgency, not by whichever rail your processor happened to wire up.
Payroll corrections, urgent vendor payments, anything where a day of float costs more than 75 cents.
Scheduled payroll, routine AP runs, owner distributions — the default for money that has a known date.
High-volume recurring collections, subscription pulls, rent and tuition, bulk disbursement.
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.
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.
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.
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.
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.
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.
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"
}'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'.
The most common return. Retriable; NACHA permits up to two retries of a failed debit.
Not retriable. Stop the schedule and request a new payment method.
Usually a data-entry error at authorization. Re-verify the account.
The customer told their bank to stop. Retrying is a compliance problem, not a collections one — we block it.
Treated as a dispute, not a soft failure. Surfaced immediately with the original authorization record attached.
The CCD equivalent of a dispute. Same handling.
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.
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.
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.
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.
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.
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.
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.
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.
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.