Call the Refunds API (or use the Dashboard) against the original Pix payment up to 90 days after the original payment date.
Check payment_method_options.pix.amount_includes_iof on the original PaymentIntent ('never' = customer paid the 3.5% IOF markup, 'always' = you absorbed it) so the refund reflects the same allocation.
If you're a direct API integrator (not using Checkout/Elements), display Stripe's suggested IOF disclosure language in English or Brazilian Portuguese before confirming the original payment — Checkout/Elements handle this automatically, direct API integrations don't.
Expect the refund to post to your account and show within a few minutes, but confirm final settlement since Ebanx (Stripe's Pix processing partner) executes the underlying bank return.
For Pix disputes — limited to fraud or account-takeover claims the buyer raises with their own bank — note you can't challenge them; if Stripe's partner accepts the dispute, funds are removed from your account automatically.
Known gotchas
IOF is a Brazilian foreign-exchange tax currently set at 3.5% of the transaction value on cross-border Pix payments handled by non-Brazil-domiciled Stripe accounts; this rate is set by Brazilian authorities and can change, so check current docs before hardcoding it.
Standard Pix refunds aren't supported once the 90-day window from the original payment date has passed.
Certain business categories — crypto businesses, insurance companies, telehealth/medicine vendors, and non-profits/charities — are prohibited from using Pix on Stripe entirely, which blocks both the payment and refund flow.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?