Build a Send to Brazil by Pix feature: Pix key entry, recipient check, live quote screen, payout, webhooks, receipts, and the mistakes that cause failures.
To add a "Send to Brazil by Pix" feature, your app collects the recipient's Pix key, your backend saves it as a Pix bank account, requests a live quote, shows the BRL amount, and executes a payout. BlindPay handles the conversion and the Pix delivery through one API, and webhooks tell you when the reais land.
This guide is about the product feature inside a neobank: the screens, the states, and the messages. For the payout mechanics from a business wallet, see how to send USDC to a bank account in Brazil. For where this feature sits in the whole build, start with how to build a neobank.
Key takeaways
Pix is Brazil's instant payment scheme, created by the central bank. According to Banco Central do Brasil, it lets people, companies, and government entities send or receive transfers in a few seconds at any time, including non-business days.
That sets the bar. A Brazilian recipient compares your transfer to the Pix they get from friends every day. If your feature takes two days, it feels broken, even if it is cheaper than a wire.
You need a verified sender, a recipient's Pix details, and a funding source for the payout.
| Requirement | Who provides it | Where it lives in BlindPay |
|---|---|---|
| Terms of service acceptance | Your user, on a hosted page | tos_id passed when creating the customer |
| KYC on the sender | Your user | Customer object, status approved |
| Pix key and recipient name | Your user, about the recipient | Bank account of type pix |
| Bank and branch details (no key) | Your user, about the recipient | Bank account of type pix_safe or ted |
| Funds to send | Your treasury or the user's balance | USDC or USDT in the funding wallet |
The onboarding guide for neobanks covers the KYC side. The bank accounts docs list the exact fields per rail.
Six steps, from the sender's first tap to the receipt.
pix bank account for the customer.Idempotency-Key header (idempotency docs). A retry after a timeout then returns the same payout instead of a second one.payout.new, payout.update, and payout.complete (webhook events). Update the transfer row, send a push notification, and email a receipt.Validate early and show who the money goes to before the user commits.
Everything the user needs to say yes, and nothing they need to calculate.
| Field | Example (illustrative) | Why it matters |
|---|---|---|
| Recipient | Ana Souza | Catches a wrong key |
| Arrives as | R$ 2,710.00 | The number the recipient will see |
| You send | US$ 500.00 | The number leaving the user's balance |
| Fee | US$ 4.50 | Shown separately, never buried in the rate |
| Rate | 1 USD = 5.47 BRL | Lets users compare |
| Price locked for | 4:32 | The quote expiry, counting down |
| Arrives | Usually within minutes | Sets expectations |
The numbers above are invented. In production, every one of them comes from the quote response. Some users check your rate against the central bank's PTAX reference, which Banco Central do Brasil publishes as the average of four daily dealer consultations. A quote includes spread and fees, so it won't match PTAX exactly. Show both the rate and the fee so the comparison is fair. The quote screen and fee disclosure guide covers the layout in more detail.
Illustrative example. Maria lives in Miami and uses a neobank app. She sends money to her sister Ana in Belo Horizonte.
payout.new webhook arrives, then payout.complete.Total time on Maria's side: under a minute. That is the experience Pix users expect.
Show the status the payout reports, explain it in plain words, and give one next step.
processing: "Sending. Usually takes a few minutes."on_hold: "We're checking this transfer. We'll update you." Compliance reviews can happen on any rail.completed: "Arrived." Show the receipt.failed or refunded: "This transfer didn't go through. Your money is back." Then offer to fix the Pix key.On Pix and other non-USD local rails, if BlindPay can't deliver a payout after the stablecoins are collected, it refunds them automatically to the quote's refund wallet, or to the sending wallet when none is set. Your ledger should then return the amount to the user's balance. The payout statuses explainer covers each state.
Pix also has a special return mechanism for fraud cases, run by the recipient's and payer's banks. The central bank's guide to Pix returns and the MED sets the rules, including an 80-day window from the original transaction to open a recovery.
Run every branch on a development instance before real money moves.
failed payout, and 77700 to force a refunded one. Check the messages users see.BlindPay gives a neobank one API for Pix payouts. Your backend creates the customer after terms of service and KYC, adds the recipient as a pix bank account (or pix_safe and ted when the user has bank details instead of a key), requests a quote that locks the rate and fees for 5 minutes, and executes the payout. BlindPay converts USDC or USDT from the funding wallet into BRL and pays over Pix, which BlindPay lists as instant.
You don't pre-fund a Brazilian account or open a local entity to send. Webhooks, signed with Svix headers, report each status change. If you charge your own fee per transfer, partner fees add it to the quote so users see one price. The same flow then extends to SPEI and other rails, as covered in which payout rails a neobank should launch with.
Sketch the three screens (recipient, confirm, receipt), then wire them to a development instance with the payout quickstart. Send one test transfer that completes, one that fails, and one that is refunded before you show it to users.
Always cheaper? No intermediaries? Recipient needs a wallet? 10 common claims about cross-border stablecoin payments, checked against the Fed and the BIS.
Seven places blockchain payments beat bank rails: contractor payroll, remittances, B2B suppliers, marketplaces, 24/7 treasury, bill pay, and PSP payouts.
The dates that turned stablecoins from a trading tool into cross-border payment rails: USDC, Pix, MiCA, the GENIUS Act, ISO 20022, and Visa settlement.