Guides

BRL to MXN payout through USDC: how the cross rate is priced

How a BRL to MXN payout through USDC is priced: two quotes, the implied cross rate, a worked example, and what the gap between the legs can cost.

Caio Barbosa

Founder & CO-CEO

Forbes Under 30. One of the leading voices in Fintech & Crypto in Brazil. Writes weekly about stablecoins, payments, and the future of financial infrastructure in Latin America.

Cover image for Lumx blog article: BRL to MXN payout through USDC: how the cross rate is priced
Cover image for Lumx blog article: BRL to MXN payout through USDC: how the cross rate is priced

A BRL to MXN payout through USDC is two conversions with two prices: reais become USDC, then USDC becomes pesos, and the rate your recipient effectively gets is the second quote divided by the first, minus what each leg charges. That implied cross rate is the only number worth comparing with a bank's direct offer, because each leg on its own looks small.

The failure shows up at month-end: the payout landed, the bank quote looked fine, and reconciliation cannot say which leg cost what.

A Brazilian company that collects over Pix (Brazil's instant payment system, run by the Central Bank) and pays a supplier or a team over SPEI (Mexico's interbank transfer system, run by Banxico) runs this corridor. This guide prices one such payout step by step. The general anatomy of spread, rail fee and network cost is in how stablecoin API pricing works, and this post stays on one pair of currencies.

How do two quotes make one BRL to MXN rate?

Each leg is a stablecoin corridor of its own: BRL to USDC on the way in, USDC to MXN on the way out. Leg 1 is quoted in reais per USDC. Leg 2 is quoted in pesos per USDC. Divide the second by the first and the dollars cancel: pesos per USDC over reais per USDC is pesos per real.

Do that twice. The base rates give the reference cross, the cross before fees. It is not an independent mid-market rate, so any spread already inside the base rates stays in it. The final rates, after fees, give the cross your recipient actually lives with. The distance between the two crosses is what the fees of both legs take. Whatever the market does while you hold dollars between the legs is a separate effect, covered below.

Why the dollar sits in the middle

The Bank for International Settlements' 2025 Triennial Survey found FX trading at $9.6 trillion per day in April 2025, with the US dollar on one side of 89% of all trades (BIS media release, September 30, 2025). The BIS figure shows the dollar is on one side of most FX trades, which is why this post models the cross through USDC. It does not tell you how any given bank prices BRL to MXN. The stablecoin route puts the dollar leg on the page as a quote you can read, which is why you can subtract it.

The dollar here is USDC, a stablecoin redeemable one to one for US dollars (what USDC is). It waits in the wallet between the two legs, so the gap is a dollar exposure.

What each quote returns

A locked quote from the Lumx API carries more than a rate. In the sample response in the exchange rates documentation (checked October 29, 2026), the fields that matter for a cross are:

  • The base exchange rate and the base target amount, which is the conversion before fees.

  • The final target amount and the final exchange rate, which is what you actually receive.

  • An expiry time, because a locked quote stops being valid.

The difference between the base and the final target amount is what the quote costs. Lock windows come in three sizes, and the window is a price.

Lock durations on a Lumx exchange rate, per the exchange rates documentation.

Quote

Window

Extra fee for the lock

Amount you can fix

Floating

None

No

Source amount

Locked, 30 seconds

30s

No

Source or target amount

Locked, 1 or 5 minutes

1m or 5m

Yes, covering volatility

Source or target amount

What does a BRL to MXN payout cost? A worked example

The figures below are arithmetic, not a price list. Leg 1 uses the sample response printed in the exchange rates documentation, where R$ 59,255.50 buys a base amount of 10,000.00 USDC at a base rate of 5.9255 (rounded to four decimals in the sample) and a final amount of 9,978.00 USDC at a final rate of 5.9386. Leg 2 uses assumed round numbers chosen for the sum: a base rate of 18.00 pesos per USDC and a final rate of 17.96 with its fees already inside. The sample request in the documentation is a 1-minute lock, so its 22.00 USDC includes the lock fee for volatility that a 30-second lock would not carry. Replace both legs with your own quotes before putting any of this in a budget.

One payout, two quotes: sample leg 1, assumed leg 2.


Leg 1: BRL to USDC over Pix

Leg 2: USDC to MXN over SPEI

Amount in

R$ 59,255.50

9,978.00 USDC

Base rate

5.9255 BRL per USDC

18.00 MXN per USDC (assumed)

Fees (base minus final)

22.00 USDC

Inside the final rate (assumed)

Final rate

5.9386 BRL per USDC

17.96 MXN per USDC (assumed)

Amount out

9,978.00 USDC

MX$ 179,204.88

  1. At the base rate, leg 1 would give 10,000.00 USDC. The difference between base and final target amount, 22.00 USDC, which in this 1-minute-lock sample covers the quote's fees, means 9,978.00 USDC reach the wallet. The final rate is that outcome restated: 59,255.50 / 9,978.00 = 5.9386.

  2. Leg 2 turns 9,978.00 USDC into 9,978.00 x 17.96 = MX$ 179,204.88.

  3. The all-in cross rate is 179,204.88 / 59,255.50 = 3.0243 pesos per real.

  4. The cross before fees is 18.00 / 5.9255 = 3.0377 pesos per real.

  5. The fees cost 1 - 3.0243 / 3.0377, about 0.44%, roughly 0.22% per leg in this sample (22.00 of 10,000.00 USDC on leg 1, 17.96 against 18.00 on leg 2). In pesos: 10,000 USDC at 18.00 is MX$ 180,000.00, and the recipient gets MX$ 795.12 less.

The 0.44% says nothing about what any provider charges. What carries over is the method. To test a bank's direct offer, ask for its all-in pesos per real on the same amount and minute and compare it with step 3.

The gap between the two legs

When leg 1 completes, you hold 9,978.00 USDC and no peso price yet. If the peso strengthens against the dollar before leg 2 is priced, the same dollars buy fewer pesos. The table puts three moves against the example above, modeled as the MXN per USDC rate falling by that percentage.

Pesos lost if the MXN per USDC rate falls between the legs, on 9,978.00 USDC at a final rate of 17.96.

MXN per USDC rate falls by

Pesos delivered

Pesos lost

0.5%

MX$ 178,308.86

MX$ 896.02

1%

MX$ 177,412.83

MX$ 1,792.05

2%

MX$ 175,620.78

MX$ 3,584.10

How long the gap lasts decides how much of this you carry. Pix runs 24/7/365 per the documentation, and SPEI is listed 24/7/365 too, so on these rails the window is the time between the Pix landing and the second quote, not a bank's opening hours. The same page also lists Banxico's días inhábiles bancarios as a calendar for SPEI, so check the date before assuming instant settlement on a Mexican bank holiday. In the example, both legs together cost MX$ 795.12. A half-percent move in the gap costs MX$ 896.02, more than everything the legs charged. The move can also go your way, but a treasury that cannot absorb either outcome should shrink the gap.

I would keep leg 2 an assumed 18.00 on purpose. A live-looking rate gets pasted into a budget by the next person who reads the post, and a round number cannot be mistaken for a price. I would ask any provider for the same treatment: quote both legs on your amount, subtract the base cross from the final cross, and compare that sum, not either leg.

Three ways to shrink the gap

  • Quote leg 2 when leg 1 lands. Listen for the on-ramp success webhook, request a 30-second locked quote for the peso leg, which carries no lock fee, and submit the off-ramp with that quote's id. The exposure shrinks to the time between the Pix landing and the second quote. If the window lapses, request a fresh quote.

  • Pay from a balance. A wallet keeps its USDC between operations, so you can pay the peso side first and let Pix collections refill it. The exposure becomes the float you hold in dollars, a treasury decision covered in converting BRL to USDC for treasury.

  • Fix the peso amount. Locked quotes accept a target amount, so the supplier receives exactly MX$ 180,000.00. This does not remove the exposure, it moves it: if the peso strengthens before you quote, you need more USDC than leg 1 delivered, and the shortfall is yours.

On the collection side, a locked on-ramp expires with its quote, so a 30-second lock gives the payer 30 seconds to pay, while a floating Pix on-ramp stays open for one day, per the transactions documentation.

When a stablecoin cross is the wrong tool

  • A one-off conversion with no repeating flow. If you only need pesos once, a bank's FX desk with an all-in pesos-per-real quote is simpler than building two legs and a wallet.

  • Funds that are not yours to move. Paying your own supplier from your own wallet is the supported case. Pooling buyers' or other third parties' money and paying out on their behalf is not, per the nested payments rules, so a platform doing that needs a different design.

  • A small payout where flat fees dominate. A partner fee can be set as a flat amount instead of basis points, and a flat amount weighs most when the payout is small. Run the five steps on your smallest payout, not your average one.

What this post does not cover on the Brazilian side

A Brazilian payer will ask how the flow is classified before anything else. Per our Brazil regulation guide, a Pix collection that settles in USDC falls under the virtual asset framework of Law 14.478/2022, with payments and transfers in virtual assets defined as an activity in Article 76A of BCB Resolution 277/2022, introduced by Resolution 521 of November 10, 2025. It does not run inside the eFX cycle, so Resolution 561/2026 of April 30, 2026 does not change it. This post does not cover IOF or other tax treatment, or any purpose information a given payout may require; take those to your own tax and compliance advisers.

What does a Pix to SPEI payout look like on Lumx?

Lumx is stablecoin payments infrastructure for businesses that move money between Latin America and the rest of the world: one API to collect, hold, convert, and pay out in BRL, MXN, COP, USD, EUR, and GBP or in USDC and USDT, over local rails such as PIX, SPEI, PSE, Bre-B, ACH, FEDWIRE, SEPA, and Faster Payments, with SWIFT and on-behalf-of payments and collections (POBO and COBO) in USD, EUR, and GBP, plus named virtual accounts, custodial wallets, and KYB/KYC built in.

Both legs run on rails Lumx operates today: BRL collected over Pix and MXN paid over SPEI, both in the Lumx coverage table the docs publish (read October 29, 2026). Pix and SPEI are listed as 24/7/365 processing targets in the rail table in the documentation. The USDC in the middle sits in the paying company's custodial wallet, on the project's default network or the one named on the request.

The corridor is two transactions, each with its own quote. A BRL account in the paying company's own name receives the Pix, the on-ramp turns it into USDC, and the off-ramp sends USDC to a destination registered with the supplier's CLABE (Mexican interbank account number) and a holder relationship such as SUPPLIER or EMPLOYEE. Leg 1 is requested as a locked on-ramp quote, and the payer pays inside the lock window. Leg 2 is quoted when you pay. This is the flow described in global payments, with Mexico as the second end.

Failures come back as codes. A lapsed lock returns EXCHANGE_RATE_EXPIRED, and an off-ramp larger than the wallet returns INSUFFICIENT_BALANCE. On-ramp and off-ramp count against separate limits, and a standard business customer's per-transaction limit is $50,000 on each, per the transaction limits page. A transaction held for review shows as an RFI (request for information, a compliance hold that asks for a document before it clears), which compliance clears with the paying company by email or Slack, and webhooks report the hold and every status change on both legs.

The rates for this pair are not one fixed number, because the tier depends on volume. The model is a monthly platform fee plus usage-based fees, with no setup fee. What the Mexican side of the corridor has to satisfy, in terms of the receiving company and the regulator, is in Mexico's stablecoin rules from the CNBV (Mexico's banking and securities regulator), and the reverse leg, paying Brazil from a USDC balance, is in sending USDC to Brazilian banks.

To run this on your own amounts, ask for both locked quotes in the sandbox described in the exchange rates documentation or talk to us about a pilot.

Methodology and sources

Product behavior comes from the Lumx documentation pages on exchange rates, transactions, coverage, payment rail cut-off times, transaction limits, and wallets, all read on October 29, 2026. The market statistics come from the BIS Triennial Survey media release of September 30, 2025, read the same day.

Leg 1 of the worked example is the sample response in the exchange rates documentation. Leg 2 and every peso figure derived from it use assumed round rates and are marked as such. No live Lumx quote and no market rate was pulled for this post. The Brazilian regulatory citations come from our Brazil regulation guide, not from a Central Bank or Planalto text served when this post was checked, so they are not linked. The sensitivity table is plain multiplication on the example's output, modeling a fall in the MXN per USDC rate.

Verified on October 29, 2026. Operational context, not legal, tax, or investment advice.

Cover photo: Bergstrand Consultancy on Unsplash.

  • Can I convert BRL to MXN through USDC?

    Yes. Collect reais over Pix into USDC, then pay pesos over SPEI from the USDC balance. Each leg gets its own quote, and the two combine into an implied BRL to MXN cross rate, which is the number to compare with a direct conversion from a bank or broker.

  • How do I calculate the BRL to MXN rate from two quotes?

    Divide the pesos you delivered by the reais you paid. Equivalently, divide the final peso rate per USDC by the final real rate per USDC. Do the same with the two base rates, then compare the two results.

  • What is the risk between the two legs?

    Dollar exposure. After the reais convert, you hold USDC until the peso leg is priced, and if the peso strengthens in that gap the same USDC buys fewer pesos. Quoting the peso leg as soon as the first leg completes, or paying from a balance, shrinks the gap. Fixing the peso amount makes the supplier's side exact but leaves the dollar difference with you.

  • How long does a Lumx locked quote last?

    A locked quote can be held for 30 seconds, 1 minute or 5 minutes. The 30-second lock carries no fee, and the longer ones include a fee that covers volatility. If the lock expires first, the quote id is no longer valid and you request a new one.

  • Does Lumx charge a setup fee for the BRL to MXN corridor?

    No. Lumx charges no setup fee, and the standard agreement carries a monthly minimum that a ramp-up period waives in the first months. Every locked quote shows its base and final amounts, so you can read a payout's cost before you submit it.

Stay up to date with what Lumx is developing.

Sign up to receive them by email.

Share on socials:

brl-to-mxn-payout-through-usdc-pricing

A

brl-to-mxn-payout-through-usdc-pricing

BRL to MXN payout through USDC: how the cross rate is priced

Copy link

Copied!

brl-to-mxn-payout-through-usdc-pricing

TALK TO OUR TEAM

Ready to transform your business with stablecoins?

Discover how our infrastructure can seamlessly integrate stablecoins into your financial operations quickly, securely, and efficiently.

Guides

In this page

©2026. All rights reserved.

Lumx US OP LLC ("Lumx") is a financial technology and payments infrastructure company. Lumx US OP LLC is a Money Service Business (MSB) registered with the Financial Crimes Enforcement Network (FinCEN) (MSB #31000316459619). Lumx is not a state-licensed money transmitter and does not, in its own capacity, engage in the provision of regulated money transmission services. All such regulated activities are conducted exclusively through, and under the licenses of, duly authorized financial-institution partners.


Lumx is not a bank, financial institution, payment institution, or custodian of client funds. Certain services made available through the Platform may be provided by duly authorized and regulated third-party partners, in accordance with applicable laws and regulations.

Please refer to Lumx’s Terms of Use and Privacy Notice for further information regarding the conditions governing the use of the Platform and the processing of your personal data.