What a payout to Brazil or Mexico needs from the recipient: Pix key types, CPF and CNPJ formats, the 18-digit CLABE, and the checks that stop a bad payout.
To pay someone in Brazil, you need their full name and a Pix key: a CPF, CNPJ, mobile number, email, or random key. Without a key, you need their CPF or CNPJ plus the bank code, branch, and account number. To pay someone in Mexico, you need their name and an 18-digit CLABE. Validate every identifier when you save it, before the first payout.
That's the whole list. Most failed payouts to Latin America don't fail because of the stablecoin. They fail on one digit.
A name and one of three sets of details, depending on the rail.
| Rail | What you collect | When to use it |
|---|---|---|
| Pix by key | Account holder's name, Pix key | The default. Instant, 24/7 |
| Pix by bank details | Name, CPF or CNPJ, bank ISPB code, branch, account number with check digit, account type | The recipient has no Pix key, or you want to pay one specific account |
| TED | Name, CPF or CNPJ, bank COMPE code, branch, account number with check digit, account type | Older bank transfer rail. Settles the same banking day if sent before the cut-off |
Pix is Brazil's instant payment system, run by the Banco Central do Brasil since November 2020. It settles in seconds and runs 24/7, including weekends and holidays. TED doesn't. A TED sent after the end of the Brazilian banking day waits for the next one, which can push it past a weekend.
| Key type | Format | Belongs to |
|---|---|---|
| CPF | 11 digits, written 000.000.000-00 | An individual |
| CNPJ | 14 characters, written 00.000.000/0000-00 | A company |
| Mobile number | +55, area code, number | Whoever registered it |
| A regular email address | Whoever registered it | |
| Random key | A long code the bank generates | Whoever registered it, with no personal data exposed |
Under the Central Bank's rules, an individual can register up to 5 keys per account and a company up to 20. Each key points to one account at a time.
Keys move. A recipient can delete a key or port it to a different bank, so a phone key that paid the right account in March can point somewhere else in September. When a recipient says they changed banks, ask for the key again.
When a person pays a Pix key in a banking app, the app shows the recipient's name and part of their tax number before they confirm. An automated payout has no one looking at that screen. Collect the account holder's legal name up front and treat a mismatch as a reason to stop, not a reason to retry.
A CPF has 11 digits. The last two are check digits calculated from the first nine, so a random typo fails validation.
A CNPJ has 14 characters: an 8-character root that identifies the company, a 4-character number for the establishment (0001 is the head office), and 2 check digits.
One change matters for anyone writing validation code. Since July 31, 2026, Receita Federal issues new CNPJs that can contain letters as well as numbers. They keep 14 characters and numeric check digits, and existing numeric CNPJs don't change. A form that only accepts ^\d{14}$ will reject a valid company registered this year.
When the recipient doesn't have a key, or when a supplier's invoice lists a bank account instead. Pix can still pay by account details. You need the recipient's CPF or CNPJ, the bank's code, the branch, and the account number.
Two bank codes exist in Brazil, and they're easy to mix up. The ISPB is an 8-digit code that identifies an institution in the Central Bank's systems, and it's what Pix uses. The COMPE code is the 3-digit bank number people know from checkbooks and TED transfers. Account numbers usually end in a check digit after a hyphen, like 12345-6. Leave it off and the payment has nowhere to go.
A name and a CLABE, in almost every case.
| Destination | What you collect | Notes |
|---|---|---|
| CLABE | Account holder's name, 18-digit CLABE | The default for SPEI |
| Debit card | Account holder's name, card number, bank institution code | Useful for recipients who only know their card |
| Phone number | Account holder's name, phone number, bank institution code | Only if the account is linked to the number |
SPEI is Mexico's interbank payment system, run by Banco de México since 2004. It settles in seconds and runs 24/7, so a payout on a Sunday night lands like one on a Tuesday morning.
| Positions | Digits | Meaning |
|---|---|---|
| 1 to 3 | 3 | Bank code |
| 4 to 6 | 3 | City (plaza) code |
| 7 to 17 | 11 | Account number |
| 18 | 1 | Check digit |
The check digit is what makes a CLABE safe to type. To verify one:
It takes a few lines of code and catches every single-digit typo and most swapped pairs. The first three digits also tell you the bank, so you can show "BBVA México" or "Banorte" next to the field and let the recipient spot a wrong account before you do.
Not for SPEI routing. The RFC is Mexico's tax ID, 13 characters for individuals and 12 for companies, and the CURP is an 18-character personal registry code. Neither moves the money. Collect the RFC if your finance team needs it for tax records or supplier invoices.
It's possible and slower, and it needs more data. A USD payout over SWIFT to a Brazilian or Mexican beneficiary needs the beneficiary's full address, the bank's SWIFT code and address, the account number, and on BlindPay the beneficiary's local tax ID and phone number. SWIFT payouts have a 100 USD minimum and can take up to 5 business days.
Local rails ask for less and settle faster. Unless the recipient specifically wants dollars in a dollar account, pay in reais over Pix or pesos over SPEI. USDC to MXN routes and USDC to BRL routes compare the options for each currency.
Each one turns into a returned or failed payout days later if nobody catches it in the form. Common stablecoin payout mistakes covers the stablecoin-side errors that sit next to these.
Each recipient is a bank account on a customer. BlindPay validates the data on creation (format, length, and country rules) the same way on development and production instances, so a bad CLABE fails in testing, not on payday.
You don't have to hardcode any of this. GET /available/bank-details?rail=... returns each rail's fields with validation patterns and bank picklists, and it's public, so your recipient form can check what BlindPay checks. Third-party accounts are supported through the recipient relationship field: an employee, a contractor, a supplier. The full field list is in bank accounts, and the rails by country are in payment methods.
Pix and SPEI payouts at BlindPay are instant. How to send USDC to a bank account in Brazil walks through a full payout, and how to off-ramp USDT in Latin America covers the stablecoin side for each country.
Build your recipient form from the bank-details endpoint, add the CLABE and CPF check digits client-side, and accept alphanumeric CNPJs. Then send your first Pix and SPEI payouts on a free development instance with the payout quickstart, or check today's rate on the USDC to BRL and USDC to MXN pages. For how the whole flow fits together, start with stablecoin payments explained.
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.