Track an off-ramp payout from transaction hash to bank: the reference each rail gives you (Pix E2E ID, SPEI key, ACH trace, UETR) and status copy.
To track an off-ramp payout, follow the stablecoin leg by its transaction hash and the fiat leg by the reference its rail assigns: the end-to-end ID on Pix, the clave de rastreo on SPEI, the trace number on ACH, the IMAD on Fedwire, the UETR on SWIFT, or the end-to-end ID on SEPA. The provider's status shows which stage the payout is in.
Most "where is my money" tickets get solved by handing over the right reference. Here's which one, and when.
On hold is a review, not an error, and completed means the money reached the rail, not that the recipient checked their app.Seven stages, and a recipient-facing message for each. The statuses are BlindPay's, from the payouts reference. Other providers use similar names.
| Stage | What's happening | Provider status and event | What to tell the recipient |
|---|---|---|---|
| Quote accepted | Rate and fees locked for a few minutes | Quote created | "Your payment of R$5,000.00 is confirmed at this rate." |
| Stablecoins collected | Funds pulled from the sender's wallet | processing, payout.new | "We've received the funds and started your transfer." |
| Compliance review | Payout held for screening or documents | on_hold, payout.update | "Your payment is being reviewed. No action needed unless we contact you." |
| Converting | Stablecoins converted to local currency | processing | "We're converting your payment to reais." |
| Sent to the bank | Payment submitted to Pix, SPEI, ACH, SEPA, or SWIFT | processing, payout.update | "Your payment is on its way to your bank. Expected: within minutes." |
| Settled | Payment reached the receiving bank | completed, payout.complete | "Paid. Reference: E2E ID E1234..." |
| Returned | Stablecoins sent back instead of converting | refunded, payout.complete | "The bank couldn't accept this payment. Please check your account details." |
Two statuses need care. A failed payout fires payout.update, not payout.complete, and at BlindPay it doesn't refund automatically. And on_hold isn't a failure, so never show it in red. The payout statuses explainer covers which statuses are final and why.
Each BlindPay payout also carries tracking objects (tracking_transaction, tracking_liquidity, tracking_payment, tracking_complete) whose step moves through processing, on_hold, pending_review, and completed. They're what lets you split "converting" from "sent to the bank" in your own UI.
| Rail | Reference | Format | Where it's checked |
|---|---|---|---|
| Blockchain | Transaction hash | Hex or base58 string, per chain | Block explorer: Etherscan, Polygonscan, Basescan, Arbiscan, Solscan, Tronscan, StellarExpert |
| Pix (Brazil) | End-to-end ID (E2E ID) | 32 alphanumeric characters | Recipient's bank app or statement |
| SPEI (Mexico) | Clave de rastreo | Up to 30 alphanumeric characters | Banxico's CEP lookup |
| ACH (US) | Trace number | 15 digits, assigned by the originating bank | Recipient's bank |
| Fedwire (US) | IMAD | Input Message Accountability Data | Recipient's bank |
| SWIFT | UETR | 36-character unique identifier | Any bank in the chain, through Swift gpi tracking |
| SEPA | End-to-end ID | Up to 35 characters, set by the sender | Recipient's bank |
A few notes from the field.
Pix. The E2E ID identifies the payment across the whole Pix system. If something goes wrong, it's also what the recipient's bank needs for a devolução (refund). The Central Bank's MED guide sets the rules for fraud-related returns, including an 80-day window from the original payment.
SPEI. The clave de rastreo is the most useful reference in Latin America, because anyone can check it. SPEI runs 24/7, so payouts settle at any hour.
SWIFT. Cross-border SWIFT payments moved to ISO 20022 messages when the coexistence period with the old MT format ended in November 2025, and the UETR carries over. With it, the recipient's bank can see which correspondent is holding the payment and why. BlindPay's SWIFT (POBO/COBO) payouts carry UETR tracking and MT103 confirmations, which recipients' finance teams and auditors already know how to read (how POBO/COBO works).
Mexico is the one rail where the sender can verify settlement without the recipient's bank.
The CEP is built from the receiving bank's information, which is why recipients and auditors accept it. It's the best answer to "I didn't get it" on a SPEI payout.
Statuses and webhooks for every payout, plus the rail references that the rail provides. Per the POBO/COBO guide, these arrive on GET /payouts/{id} and on the payout.complete webhook:
| Rail | provider_uetr | provider_imad | provider_reference | provider_clearing_system |
|---|---|---|---|---|
| International SWIFT | Yes | No | No | SWIFT |
| Domestic wire | Yes | Yes | Sometimes | FED or CHIPS |
| ACH | No | No | Sometimes | ACH |
provider_uetr stays null while the payment is in flight and fills in once the wire is confirmed. provider_reference is a bank-side booking reference, not the formal ACH trace number, so don't hand it to a bank as one.
SWIFT payouts add one more object. They start on_hold until compliance documents are approved, and tracking_documents reports progress from waiting_documents to compliance_reviewing (SWIFT statuses). Documents must be submitted within 30 days of payout creation.
Work from the status, in this order.
processing longer than the rail's normal time. Check which tracking object is still open. A stuck tracking_payment with a business-day rail usually means a cut-off was missed. The settlement times by rail give the normal window.on_hold. Tell the recipient it's under review. Don't retry. Answer any request for information within hours, since an unanswered one can end in a refund (on-hold transactions).completed, recipient says no. Send the rail reference. The recipient's bank finds the payment with it, then credits it or explains the delay.refunded. The stablecoins went back to the funding source. Fix the bank details, usually a name or account number problem, and send a new payout with a new quote.failed. At BlindPay this doesn't refund automatically. Open a ticket with support instead of waiting.Keep every reference in your own ledger next to the payout ID. Finance asks for them months later, during reconciliation. The webhooks and reconciliation guide shows how to store events so they don't get processed twice.
Short, specific, and per rail.
The payout mistakes guide lists the errors that cause most returns in the first place.
BlindPay reports every payout through statuses, tracking objects, and webhooks, from the moment the stablecoins are collected to the moment local currency lands. SWIFT and domestic wire payouts carry the UETR, wires carry the IMAD, and SWIFT compliance progress shows up in tracking_documents. Start with the payouts reference, then wire payout.update and payout.complete into your status page.
This article is for general information only and is not legal, tax, or financial advice.
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.
Seven stablecoin payment platforms compared for US fintechs in 2026: what makes an API production-ready, how each provider handles compliance, settlement speed against ACH, and how to run the evaluation.
How to choose a stablecoin payment provider in 2026: the four provider types, a comparison of 10 options, and the questions that decide the fit.