Charging to receive an exact amount is not "add the fee on top"
This is the single most common reason people search for a Stripe fee calculator, and it is the thing most of them get wrong. You need $500 in your balance. Stripe takes 2.9% plus $0.30. So you charge $500 plus 2.9% plus 30 cents — $514.80 — and $500 lands? No. $499.57 lands.
The reason is that the fee is charged on the amount you actually charge, not on the amount you wanted. Raising the charge to cover the fee raises the fee. It is a small circular problem, and the way out of it is algebra rather than a second pass:
charge = (net + fixed fee) ÷ (1 − rate)
For $500 net at 2.9% + $0.30 that is (500 + 0.30) ÷ 0.971 = $515.24.
Charge that and $500.00 lands, to the cent. The naïve version leaves you short by a
predictable amount — net × rate² + fixed × rate — which is 43 cents here and
85 cents on a $1,000 net. The error is always in the same direction, and it is always
against you.
Forty-three cents does not sound like a reason to build a tool. Ten thousand invoices does. And the error grows with the square of the rate: on an international card with currency conversion, where the combined percentage can reach 6%, the naïve method leaves about $3.62 behind on every $1,000 of net.
Stripe's percentage is a stack, not a number
The headline rate is the floor. Several separate percentages apply to the same charge and add together before the fixed fee is applied once at the end:
- The base card rate. What Stripe publishes for a standard domestic card in your account's country. It varies enormously by market — around 2.9% + $0.30 in the US, roughly 1.5% + €0.25 for European cards inside the EEA, and about 3.99% + R$0.39 in Brazil.
- International cards. If the card was issued outside your account's country, a surcharge applies on top of the base rate. This is decided by the card, not by the customer's shipping address or the language of your checkout, so you cannot see it coming from the order alone.
- Currency conversion. If you charge in one currency and settle in another, conversion is priced as an additional percentage. Charging in the customer's local currency to improve conversion is a real growth tactic with a real cost attached, and the two decisions should be made together.
- Stripe Billing. Subscriptions and invoices carry a percentage of billed volume on top of processing. It is easy to forget because it does not appear in the payment-page pricing most people read.
- Connect. Marketplaces and platforms pay a volume fee on payouts to connected accounts, which is separate again from what the connected account pays to process the card.
A subscription charged to an international card in a foreign currency through a Connect platform is paying four of these at once. The calculator lists each layer as its own line, because "6.35%" is a number you can argue with only if you can see where it came from.
The fixed fee is what makes small charges brutal
Percentages are scale-neutral; the flat per-transaction fee is not. It is the same 30 cents on a $3 charge and on a $3,000 one, which means the effective rate you pay is a curve, not a line.
| Charge | Fee at 2.9% + $0.30 | Effective rate |
|---|---|---|
| $3 | $0.39 | 12.90% |
| $10 | $0.59 | 5.90% |
| $50 | $1.75 | 3.50% |
| $500 | $14.80 | 2.96% |
| $5,000 | $145.30 | 2.91% |
A business selling $3 items is not paying 2.9%. It is paying nearly 13%, and no amount of negotiating the percentage will fix that — the fixed fee is the problem. This is the arithmetic behind minimum order values, credit bundles, and annual plans that cost less per month than monthly ones: each of them is a way of making the flat fee land fewer times.
It also explains why fixed-fee and percentage-only payment methods behave so differently. Brazil's boleto is a flat charge with no percentage at all, so it gets cheaper in relative terms as the ticket rises. Pix is a percentage with no fixed fee, so it stays proportional all the way down. Neither is universally cheaper — the crossover point depends entirely on your average order value, and the calculator will show you where it sits.
A refund is not a rewind
Until 2019 Stripe returned the processing fee when you refunded a payment. It no longer does. You send the customer 100% of what they paid, and the fee Stripe already took stays taken.
The practical consequence is that a refund costs you the entire fee of a sale you no longer have. A $200 order refunded at 2.9% + $0.30 leaves you $6.10 down with nothing to show for it. A store running a 5% refund rate on $100,000 of monthly volume is burning roughly $150 a month on fees for transactions that were reversed — before counting return shipping, restocking, or the labour.
There is one lever worth knowing: a payment that is cancelled before capture costs nothing, and a very early refund may be processed by the card network as a reversal rather than a refund. If your business refunds a meaningful share of orders soon after they are placed, separating authorisation from capture — holding the funds and only capturing when you ship — turns some of those refunds into free cancellations.
Disputes cost you even when you win
A chargeback is not a refund with extra paperwork. When a cardholder disputes a payment, the issuer reverses it immediately and Stripe debits both the payment amount and a dispute fee from your balance. Then you find out.
The part that surprises people is what happens if you fight and win. Stripe's documentation states plainly that, unless your contract says otherwise, the fee for receiving a dispute is never returned. Winning gets the sale amount back. It does not get the fee back. (A second fee charged for submitting evidence is returned on a win — but the first one is not.)
So the honest way to model a dispute is as two bad outcomes of different sizes rather than a win and a loss:
- You win: you keep the net, minus the dispute fee.
- You lose: the money goes back, the original processing fee still is not returned, and the dispute fee stands. Your balance is down by the fee plus the dispute fee, and the product is gone too.
Where the fee is large relative to your average order — a $15 fee on a $20 product, or R$55 on a R$40 one — a single lost dispute wipes out the margin on several clean sales. The calculator shows how many, which is usually the number that changes someone's mind about whether fraud screening is worth the friction it adds.
Passing the fee to the customer usually costs more than it saves
Once people see the gross-up formula, the next instinct is to add it to every invoice. That works cleanly for B2B invoicing where the amount is negotiated anyway. It works badly almost everywhere else, for three reasons worth stating before you build it.
First, surcharging card payments is regulated, and the rules differ by country, card network and card type. Debit surcharges in particular are restricted in many markets. Second, a fee added at checkout is the single most reliable way to lose a cart: a late-appearing charge reads as a bait-and-switch even when it is three dollars. Third, if the surcharge itself is part of the amount charged, it is also subject to the fee — you are grossing up the gross-up, which is the same circular problem one level down.
The alternative most businesses land on is quieter: raise the headline price by the effective rate and stop itemising it. Same money, no checkout surprise, no regulatory surface area. Use the gross-up number to decide what the price should be, not to add a line to the receipt.
Why every rate here is an editable field
Stripe reprices. Not often, but per country and per product, and without asking. A calculator with the rate compiled into it does not break when that happens — it keeps answering confidently with last year's number, and nothing on screen tells you it is stale. That failure mode is worse than an error, because an error is visible.
So the rates here are inputs. The country and method presets fill them in with typical published values as a starting point, and you overwrite them with what your own pricing page or invoice says — which is the only rate that is definitely true for your account, your volume and your negotiated terms. High-volume accounts, non-profits and businesses on interchange-plus pricing all have numbers that no preset can guess.
Treat the presets as a reasonable default and the invoice as the source of truth. The tool stays right after Stripe changes something, without depending on us to notice.
Everything stays in your browser
Every figure is calculated locally as arithmetic. Nothing is uploaded, nothing is logged, and there is no account. That matters more than it does on a unit converter, because what you type here is your pricing, your margins and your dispute exposure — the numbers you would not paste into a form belonging to someone you have never heard of.
Frequently asked questions
What do I charge to receive exactly $100 with Stripe?
With a 2.9% + $0.30 rate, you charge $103.30, not $102.90. The formula is (net + fixed fee) ÷ (1 − rate), which here is (100 + 0.30) ÷ 0.971 = $103.2956. Adding 2.9% on top of $100 and then the 30 cents gives $103.20, and that charge nets you $99.91 — nine cents short. The gap looks trivial on one invoice and is exactly the kind of error that compounds silently across a few thousand of them.
Does Stripe refund its processing fee when I refund a customer?
No. Stripe stopped returning processing fees on refunds in 2019. You return the full amount to the customer and the original fee stays gone, so a refunded sale costs you the entire fee of a sale you no longer have. On a $200 order at 2.9% + $0.30 that is $6.10 of pure loss, and at a 5% refund rate it is a real line item that never appears anywhere in your dashboard.
Do I get the chargeback fee back if I win the dispute?
No. Stripe's own documentation is explicit that, unless your contract says otherwise, the fee for receiving a dispute is never returned — winning recovers the disputed sale amount, not the fee. A separate fee for submitting evidence is returned when you win, but the receiving fee is not. That is why disputes are priced as a risk to avoid rather than a fight to win.
Why is my effective Stripe rate higher than 2.9% + 30¢?
Because several percentages stack on the same charge. An internationally issued card adds a surcharge, converting between the charge currency and your settlement currency adds another, Stripe Billing adds a percentage of invoiced volume, and a Connect platform adds a volume fee. A charge that hits all four can land near 6.5% before the fixed fee. The breakdown in this calculator lists each layer separately so you can see which one you are actually paying for.
Are the rates in this calculator kept up to date?
The presets are typical published rates and they will eventually go stale — which is exactly why every rate is an editable field rather than a constant in the code. Paste the numbers from your own Stripe pricing page or invoice and the tool is correct for your account today, regardless of when we last touched it.
Are my numbers sent anywhere?
No. Every calculation runs in your browser as arithmetic. Nothing is uploaded, nothing is stored, and there is no account — which matters here because what you type is your real pricing and your real margins.