ACH, wires, RTP, and FedNow: what each payment rail means for your product
The four US rails differ in timing, finality, and failure modes, and those differences show up directly in your ledger, your UX, and your fraud controls.
Most fintech roadmaps eventually include a line like "add instant payments." It sounds like a feature. In practice, each US payment rail brings its own rules about when money moves, whether it can come back, and what goes wrong, and those rules ripple through your ledger, your operations team, and your customer experience.
Here's how we think about the four rails when designing banking software.
ACH: cheap, batched, and reversible
ACH moves money in batches rather than one payment at a time. Standard ACH settles in a business day or two, and Same Day ACH adds several settlement windows during the business day. It supports both pushes (credits) and pulls (debits), which is why payroll, bill pay, and account funding run on it.
The catch is that ACH is not final when it posts. Most returns arrive within two banking days, but a consumer can dispute an unauthorized debit for up to 60 calendar days. Your product has to treat "posted" and "safe to spend" as different states.
What this means for the build:
- Model pending, posted, settled, and returned as distinct ledger states, not a single status flag.
- Handle return codes and Notifications of Change (NOCs) as first-class events with their own queue.
- Reconcile at the file level so operations can see exactly which batch a problem came from.
- Respect cut-off times and bank holidays in the UI, so customers know when funds will actually land.
Wires: final, high-value, business hours
Domestic wires settle individually and are final once sent. That makes them the rail of choice for large, time-sensitive transfers like real estate closings, treasury moves, and B2B settlements. It also makes them a favorite target for fraud, because there is no return window to save you.
What this means for the build:
- Put screening and approvals before the send. Once it's gone, it's gone.
- Use dual control (maker / checker) for high-value or first-time beneficiaries.
- Show operating-hour cut-offs clearly. A wire initiated after the cut-off is a support ticket waiting to happen.
RTP and FedNow: instant, final, always on
RTP (operated by The Clearing House) and FedNow (operated by the Federal Reserve) both settle individual payments in seconds, 24/7/365, with immediate finality. Both are credit-push only: the payer's institution sends the money, and the network can't pull funds from an account. Both support request-for-payment messages, which let a biller ask a customer to push a payment.
Instant rails change the operating model more than any other:
- Fraud controls must run in real time. There's no overnight batch review and no return to fall back on.
- Operations never closes. Exceptions at 2 a.m. on a Sunday need automated handling or an on-call path.
- Liquidity becomes a live concern. Settlement accounts have to be funded around the clock.
- Not every bank is reachable. Participation is growing but isn't universal, so your product needs graceful fallbacks to ACH.
One operational view across all of them
The mistake we see most often is building each rail as its own silo: a wire screen here, an ACH file viewer there. Operations teams end up swivel-chairing between tools, and nobody has a single answer to "where is this customer's money right now?"
When we built the core banking dashboard at Braid, the goal was the opposite. One payment lifecycle, one transaction detail view with screening status and a full audit timeline, and rail-specific processing views (ACH files, wire queues, settlement runs) underneath it.
Pick rails based on what your customers need, then design your ledger and operations around the strictest rail you support.
A quick decision guide
- Payroll, bill pay, recurring debits: ACH, with Same Day ACH where speed matters.
- Large, one-off, time-critical transfers: wires, with strong pre-send controls.
- Consumer-facing "instant" experiences and 24/7 payouts: RTP and FedNow, with real-time fraud screening and ACH fallback.
If you're adding a new rail to an existing product, start with the ledger states and the exception queue rather than the send button. That's where the real work is.