---
title: "Who carries FX risk in a stablecoin payout? A step-by-step map, and why quotes expire"
seoTitle: "Who carries FX risk in a stablecoin payout?"
description: "You carry FX risk until you lock a quote, the provider carries it inside the window, and it comes back to you on a refund. Step-by-step map and math."
date: "2026-09-29"
updated: "2026-09-29"
category: "payments"
author: "BlindPay Team"
faq:
  - q: "Who carries the exchange rate risk in a stablecoin payout?"
    a: "It moves. The sender carries it until a quote is locked. The provider carries it from the quote until the recipient is paid, as long as the payout executes before the quote expires. If the quote lapses or the payout is refunded in stablecoins, the sender carries it again, because the next quote is priced at the new market rate."
  - q: "Why do stablecoin payout quotes expire?"
    a: "Because a binding quote is a free option for the sender. If the market moves against the provider during the window, the sender executes; if it moves the other way, the sender can let the quote lapse and ask again. The provider prices that option into the spread, so the window is kept short. At BlindPay most quotes last 5 minutes."
  - q: "What happens to the exchange rate if my payout fails?"
    a: "The conversion does not settle, so the quoted rate no longer applies. At BlindPay, a payout that cannot be delivered after the stablecoins are collected is refunded in stablecoins, not in local currency. If you still owe the recipient, you request a new quote and pay at the current rate, so any market move since the first quote is yours."
  - q: "Can I get a longer quote window?"
    a: "Some providers sell longer locks, and the price shows up as a wider spread, because the provider carries the market move for longer. For most payout flows the cheaper design is to request the quote right before the user confirms, read expires_at from the response, and re-quote automatically when the window closes. For dates weeks away, a forward contract is the tool built for that job."
  - q: "What is last look in FX?"
    a: "Last look is a practice where the party that quoted a price gets a final chance to accept or reject your trade request against that price. The FX Global Code requires firms that use it to disclose how. If a provider can reject or reprice your execution, part of the risk inside the quote window sits with you, not with the provider."
---

In a stablecoin payout, FX risk moves between parties. The sender carries it until a quote is locked. The provider carries it from the quote until the recipient is paid, as long as the payout executes inside the window. If the payout is refunded in stablecoins, the risk is the sender's again. Quotes expire because that middle stretch costs the provider money.

Knowing who holds the risk at each step tells you where a bad rate can come from, and which design choices actually reduce it.

**Key takeaways**

- Before a quote, the exchange rate is your problem. After a binding quote, it is the provider's, until the window closes.
- A quote is a free option for the sender. The provider prices it into the spread, which is why windows are minutes, not hours.
- Illustrative math: at 1% daily volatility, a 5-minute window carries about 6 bps of one-standard-deviation move, a 1-hour window about 20 bps.
- A refund comes back in stablecoins. Re-sending means a new quote at the new rate, so the market move since the first quote lands on you.
- Last look and "rate at execution" settlement quietly move the window risk back to the sender. Ask about both.

## What is FX risk in a cross-border payout?

FX risk is the chance that the exchange rate moves between the moment you decide an amount and the moment money lands. Whoever's amount changes when the rate moves is the party carrying it.

The market behind that rate never sleeps on weekdays. The BIS 2025 Triennial Survey put global FX trading at [$9.6 trillion per day in April 2025](https://www.bis.org/press/p250930.htm), with the US dollar on one side of 89% of trades. Prices update continuously, so any gap between pricing and delivery is exposure.

There are two kinds of FX risk in a payout. Market risk is the rate moving. Settlement risk is one side of a trade being delivered while the other is not: the BIS estimated that [$2.2 trillion of daily FX turnover was still exposed to settlement risk](https://www.bis.org/publ/qtrpdf/r_qt2212i.htm) in April 2022. This article is about market risk. [Herstatt risk explained](/resources/more/herstatt-risk-fx-settlement-risk) covers the settlement side.

## Who carries the risk at each step of a payout?

The table follows a USDC to BRL payout over Pix from the moment you owe money to the moment the recipient holds reais.

| Step | What happens | Who carries FX risk | Why |
| --- | --- | --- | --- |
| 1. Before a quote | You hold USDC and owe an amount in BRL | Sender | No rate is fixed, so the USDC cost of your BRL bill moves |
| 2. Quote created | The provider returns a rate, fees, and `expires_at` | Provider | A binding quote fixes `receiver_amount` |
| 3. Executed in the window | Stablecoins are pulled, conversion starts | Provider | The payout runs against the locked quote |
| 4. Fiat on the rail | Pix delivers in minutes, other rails take longer | Provider | The recipient amount was fixed at step 2 |
| 5. Quote lapses unused | Nothing moves | Sender | The next quote is priced at the new market rate |
| 6. Payout refunded | Stablecoins come back to a wallet | Sender | You are back at step 1 |
| 7. Recipient paid | Reais sit in a Brazilian account | Recipient | Their local currency is now their exposure |

Steps 2 to 4 are the only stretch where the provider holds the risk. Everything a provider does to price, shorten, or hedge that stretch shows up in your rate.

## Why do quotes expire?

Because a binding quote is a free option for the sender. During the window, the sender watches the market for free. If the rate moves against the provider, the sender executes. If it moves the sender's way, the sender can let the quote die and ask for a better one.

The provider cannot refuse the bad side of that bet, so it charges for it inside the spread. The longer the window, the larger the possible move, and the more the option is worth.

A common rule of thumb scales volatility with the square root of time: the typical move over a window is about daily volatility x √(window / 1 day).

**Illustrative example.** Assume a currency pair with 1.0% daily volatility and a $50,000 payout.

| Window | Calculation | Typical move | On $50,000 |
| --- | --- | --- | --- |
| 10 seconds | 1.0% x √(10 / 86,400) = 1.0% x 0.0108 | about 1.1 bps | about $5 |
| 5 minutes | 1.0% x √(5 / 1,440) = 1.0% x 0.0589 | about 5.9 bps | about $29 |
| 1 hour | 1.0% x √(60 / 1,440) = 1.0% x 0.2041 | about 20.4 bps | about $102 |

A one-hour window carries roughly 3.5 times the move of a five-minute window. The provider either widens the spread to cover it or stops binding the quote. Either way, the sender pays.

## Why are some quote windows shorter than others?

Because the risk is different. BlindPay's payin, payout, and transfer quotes last 5 minutes by default, per the [cut-off times reference](/docs/kb/cut-off-times). Two exceptions follow the risk:

- **OTC payin quotes expire in 10 seconds.** They price large BRL deposits into USDT, with a minimum of $5,000 USD equivalent, so the size at stake is larger and the window is shorter.
- **SEPA payout quotes can be shorter than 5 minutes.** The euro rail has its own deadline, and the quote cannot promise delivery beyond it.

Transfer quotes are the odd one out: there is no currency conversion, so the window locks the amount and destination rather than a rate.

The practical rule: read `expires_at` from every [payout quote](/docs/payout-quotes) response, and note it is in epoch milliseconds. Never hardcode a window.

## What happens to FX risk when a payout fails?

It comes back to you. At BlindPay, if a payout cannot be delivered after the stablecoins are collected, BlindPay refunds them to the quote's refund wallet, or to the sending wallet when none is set. On Pix and other non-USD local rails the refund is automatic, while USD payouts and payouts whose review times out are refunded after an operator review.

The refund is in stablecoins, so the refund itself carries no FX loss. The loss shows up when you re-send. If the recipient still needs R$53,700 and the rate has moved from 5.37 to 5.32 BRL per USDC since the first quote, the second payout costs 10,093.98 USDC instead of 10,000 (illustrative: 53,700 / 5.32 = 10,093.98). That 93.98 USDC is the market move you carried after the refund.

[Stablecoin payout statuses](/resources/more/stablecoin-payout-statuses-explained) explains how `failed` and `refunded` differ.

## Who carries the risk on the on-ramp side?

The same logic runs in reverse. A payin quote locks the fiat amount the payer sends and the stablecoin amount the wallet receives. You create the payin from it within 5 minutes, and then the payer sends the money.

What changes is the wait for the deposit. For a standard Pix payin, BlindPay waits up to 30 minutes before marking it `failed`, with a reconciliation check first, according to the [payins reference](/docs/payins). OTC Pix payins wait until 23:59 Brasília time instead. If an OTC deposit never arrives, a flat $100.00 penalty is added to the quote's billing fee.

That penalty is risk allocation written down: a large price was held for a deposit that never came, and the party who did not send pays for it.

## Does last look shift the risk back to you?

It can. The [FX Global Code](https://www.globalfxc.org/fx_global_code.htm), the conduct code for wholesale FX, defines last look in Principle 17 as a final opportunity for the quoting firm to accept or reject a trade request against its quoted price, and requires firms that use it to disclose how.

A provider with last look, or one that settles at "the rate at execution", has handed the window risk back to you without changing the screen. The BIS Markets Committee made a related point about FX execution algorithms: they [shift execution risk from dealers to users](https://www.bis.org/publ/mktc13.htm).

So ask every provider two questions. Is the quote binding if I execute before expiry? Can you reject or reprice after I execute? At BlindPay, a payout can only execute against a valid, unexpired quote, and the quote's `receiver_amount` is what the bank account receives.

## How should you design a payout flow around this?

Keep the risky stretches short and visible.

- **Quote at the last responsible moment.** Request the quote when the confirmation screen loads, not when the user starts the flow.
- **Re-quote automatically.** When `expires_at` passes, fetch a new quote and highlight the change only if the amount moved.
- **Log every re-quote.** The gap between an expired quote and its replacement is a direct read of how much risk you carried. [FX slippage and live quotes](/resources/more/stablecoin-fx-slippage-live-quotes) shows how to log quoted vs settled rates.
- **Use the right tool for long gaps.** A quote covers minutes. A BRL invoice due in 60 days is a different exposure; see [live quotes vs forward contracts](/resources/more/live-quote-vs-forward-contract-vs-fixed-rate).
- **Treat a refund as a new trade.** Re-quote before re-sending, and tell the recipient the amount may change.

The vocabulary used here (binding quote, window, spread, re-quote) is defined in the [on/off-ramp liquidity glossary](/resources/more/onramp-offramp-liquidity-glossary). For how liquidity sources shape the quote you get, see [onchain liquidity vs off-ramp liquidity](/resources/more/onchain-liquidity-vs-offramp-liquidity).

*How we know: BlindPay facts come from the [payout quotes](/docs/payout-quotes), [payins](/docs/payins), and [cut-off times](/docs/kb/cut-off-times) documentation. Market figures come from the BIS and the FX Global Code, linked above.*

## What to do next

Create one payout quote for your main corridor from the [payout quotes docs](/docs/payout-quotes), note its `expires_at`, and request a second quote five minutes later. The difference between the two is the risk you would have carried without a binding quote.

*This article is general information, not legal, tax, or financial advice.*
