On-ramp timing by funding rail: Pix, SPEI, Transfers 3.0, and PSE land in minutes, US ACH and wire can take days. Where the clock starts and what stops it.
A stablecoin on-ramp takes as long as the payer's bank rail takes to deliver, plus a short conversion step. On BlindPay, Pix, SPEI, Transfers 3.0, and PSE deposits typically settle within minutes. US ACH and wire payins have an arrival window of up to 5 business days. The quote itself only lasts 5 minutes.
This is the on-ramp mirror of how long a stablecoin payout takes. Same question, opposite direction, and the slow part sits in a different place.
Key takeaways
Four steps, and only one of them is slow. BlindPay's payins docs describe the flow as quote, payin, deposit detection, settlement.
Steps 1, 2, and 4 are measured in seconds to minutes. Step 3 is measured in whatever the payer's rail allows, plus however long the payer takes to press send.
Here are BlindPay's documented windows for payin arrival. The first column comes from the payins reference, the second from the cut-off times reference.
| Funding rail | Currency | Typical arrival (payins docs) | Payin arrival (cut-off reference) | Fails without a deposit after |
|---|---|---|---|---|
| Pix | BRL | Within minutes | Up to 5 minutes | 30 minutes |
| SPEI | MXN | Within minutes | Up to 10 minutes | 30 minutes |
| Transfers 3.0 | ARS | Within minutes | Up to 10 minutes | 30 minutes |
| PSE | COP | Within minutes | Up to 10 minutes | 30 minutes |
| TED | BRL | Up to 7 days | Same or next banking day | n/a |
| ACH | USD | Up to 5 business days | 1-3 business days (network) | n/a |
| Wire | USD | Up to 5 business days | Same business day (network) | n/a |
Two notes on reading it. The cut-off reference says its ACH and wire numbers describe the networks in general, not BlindPay's end-to-end ETA, which adds BlindPay's own processing. And TED's 7-day window exists to cover a Friday cut-off with reconciliation the following week.
The local rails are fast because the rails themselves are fast. Banco de México says a SPEI payment should not take more than 30 seconds after approval, and Argentina's central bank describes Transfers 3.0 as transfers credited online in a maximum of 15 seconds. Pix runs around the clock in Brazil.
US bank rails work in batches and business days. The Federal Reserve's FedACH processing schedule runs on fixed transmission deadlines and settlement times, and BlindPay's cut-off reference lists a 9:00 PM ET ACH cut-off and a 3:00 PM ET domestic wire cut-off. Miss it and the transfer waits for the next business day.
Illustrative example. Two customers start an on-ramp at 6:00 PM local time on a Monday.
| Step | Customer A: R$5,000 over Pix | Customer B: $5,000 over ACH |
|---|---|---|
| Quote and payin created | 6:00 PM | 6:00 PM |
| Payer sends | 6:02 PM | 6:30 PM (after the domestic wire cut-off, before the ACH cut-off) |
| Deposit arrives | Within minutes, say 6:05 PM | Network estimate 1-3 business days, say Wednesday |
| USDC delivered | Minutes later, say 6:07 PM | After arrival and BlindPay processing |
| Total | About 7 minutes | Up to 5 business days per BlindPay's window |
Same amount, same minute, a gap of days. The difference is not the stablecoin leg. It is the bank leg that feeds it.
Customer B has an extra option. If the payer misses the 9:00 PM ET ACH cut-off, the arithmetic shifts by one more business day: Monday 9:01 PM behaves like Tuesday morning.
When the fiat lands. Not when you request the quote, and not when you create the payin.
That matters for your UX copy. "USDC in 5 minutes" is true for a Pix payer who pays immediately. It is false for a Pix payer who opens the code, gets distracted, and pays 25 minutes later. The rail was fast. The human was not.
It also matters for the 5-minute quote window. The quote is about locking numbers, not about delivery. You create the payin inside those 5 minutes; the deposit can come after. Where the exchange rate gets fixed walks through exactly when the rate stops moving on each side.
OTC Pix quotes are the exception. They expire in 10 seconds, and BlindPay waits for the deposit until 23:59 BRT the same day instead of a rolling 30-minute window. If that deposit never arrives, the docs add a flat $100.00 penalty to the quote's billing fee.
Four things, in rough order of how often they bite.
payer_rules, or a US transfer without the memo code, can't be matched cleanly. Why on-ramp deposits fail lists the patterns.on_hold for manual review. The cut-off reference says holds can take up to 30 days to resolve.There's also a funding option in private beta since September 18, 2026: ACH pull, where BlindPay debits a bank account the customer connected through Plaid instead of waiting for a manual transfer. It removes the "payer forgot to send" delay on the US side, and the quote adds a flat $1.00 fee for it.
Promise per rail, not per product. A single "funds arrive in minutes" line is guaranteed to be wrong for someone.
A pattern that works:
Drive every status change from webhooks. payin.new fires when the payin is created, payin.update fires when its status or tracking data changes, and payin.complete fires when the stablecoins reach the destination wallet. The payin moves through processing, then completed, failed, or refunded, with on_hold possible along the way. How to integrate a crypto on-ramp API has the full webhook handling.
If you're choosing which rails to offer in the first place, how to on-ramp BRL, MXN, ARS, and COP covers each local rail in detail, and how to read an FX quote explains the rate the payer sees before they pay.
Barely. Once BlindPay has the fiat, it converts and sends the stablecoin on the destination wallet's network. That's one on-chain transaction.
The docs add one practical detail: if the delivery transaction gets replaced during a gas spike, BlindPay resolves the transaction that actually landed. The hash you see in tracking_complete can differ from the one you first saw broadcast. Treat status as the source of truth, not a specific hash.
What about the USDC itself? Where on-ramp USDC comes from covers why the stablecoin side is rarely the bottleneck.
Create a payin quote on a development instance for each rail you plan to offer, then write one line of arrival copy per rail using the windows in the payins docs. Swap the sandbox's 30-second auto-complete for real numbers before launch.
Seven places blockchain payments beat bank rails: contractor payroll, remittances, B2B suppliers, marketplaces, 24/7 treasury, bill pay, and PSP payouts.
Push means the payer sends an ACH transfer. Pull means you debit a connected account. How each funds a USD to USDC on-ramp, the fees, and the return risk.
AP2, ACP, and x402 each verify that an AI agent had permission to spend. Here is what every protocol covers, who backs it, and the reconciliation gap none of them close.