I ran a test to answer my own question regarding Stripe "global" transactions in Brazil:
- if your Stripe US account charges a Brazilian client, in BRL, by Credit Card, they'll end up paying IOF (3.5%) Spread (~4%) on top of the processed amount
there's no way to absorb that fee for CC txns (stripe seems to be testing something for Pix though)
- so in order to reduce complaints you can auto-inject a coupon code of ~8% on the create checkout session, and try to explain the customer there'll be a slight variation on the final price
even if you set the product price to BRL, the customer's bank will still charge them extra
that's because Stripe actually runs a USD transaction, using the so-called Dynamic Currency Conversion, that auto-converts by the client's bank to BRL
technically, Stripe is taking a foreign transaction (US-domiciled) and converting the currency at the point of sale to the cardholder's local currency (BRL)
- stripe's intent: show the customer exactly what they will pay in their home currency
- the reality: the underlying settlement between Visa/Mastercard and the Brazilian bank is still flagged as "cross-border"
so Brazilian banks (issuers like Nubank, Itaú, Bradesco) see a transaction coming from a US Merchant ID (Stripe US)...
and even though the currency code is BRL, the "domicile" of the transaction is International
and because the settlement happens outside of Brazil, the bank treats it as a foreign purchase
- so the bank applies the Spread (their exchange rate markup, usually ~4-6%) and the government applies the IOF (Tax on Financial Operations), 3.5%
in some cases, this leads to "Dupla Conversão" (Double Conversion):
stripe converts BRL to USD to send the transaction request through the network (or sets the amount in BRL but the network processes it cross-border)
then Brazilian Bank receives the request.. and because it's an international merchant, they may convert the BRL amount back into USD (at a bad rate) and back into BRL (at their selling rate) IOF, or simply tack on the fees to the BRL face value
i know, it's a mess
that being said, if you really want to sell to Brazilian users, better find a payments company with Brazilian domicile that can transact in BRL
(and hopefully using a gateway that offers installments, which is a must in Brazil)
PS: any suggestions of payment processors to sell in - proper - BRL?
can Stripe US accounts sell in Brazil (in BRL)?
or only stripe BR-based merchants can do that?
if yes, is there an extra IOF charge to the buyer or the merchant?
how about non-international BR credit cards, can they transact in BRL for a US stripe merchant? or that kind of operation requires international cc to work?
cant find these answers on
@stripe docs