← All posts
Contracts read · 6 providers · August 2026

What card payments actually cost

Someone sent me a table comparing six payment providers. I checked every row — four of the six publish no price at all, and the contract whose headline number is 0.90% costs EUR 2.19 per hundred euros.

€2.19

what one hundred euros of turnover costs under a contract whose headline number is 0.90%. Example business: online shop, €2,000 a month, €60 average order, a fifth of it on commercial cards.

A table that looked like an answer

Someone sent me a comparison: six providers, two columns — a percentage and a fixed fee. Tables like that are seductive, because they promise to reduce the decision to a single number.

I checked every row against the provider's own published price list. Of the six, two publish an online card rate: Stripe and Revolut. Swedbank, SEB, Luminor and LHV — the incumbent banks in Estonia, where I run my business — all say some version of "by agreement". For those four there is no percentage to compare. There is only a quote you have to go and ask for.

And the two that do publish don't say what the table quoted them as saying.

Trap 1 — the quoted percentage is not the total price

A merchant rate has three parts. Processing is the technical cost. Interchange goes to the bank that issued the customer's card and is set by the card scheme, not by your bank. The service fee is the acquirer's own margin — and that is the only part you negotiate.

So when you see a number like "0.15–0.85%", it is almost certainly that third part alone. Interchange and scheme fees land on top. You cannot put that number next to Stripe's 1.5%, which is an all-in rate. It is like comparing rent with utilities.

Two pricing models sit on this distinction:

  • Blended — one fixed percentage on every card. Easy to forecast. The bank averages the risk up front, so you usually pay a little more.
  • Interchange++ — interchange and scheme fees pass through at cost, the bank adds a fixed margin. Cheaper, but the invoice moves month to month.
  • The two cannot be compared side by side unless the table says which is which.

Trap 2 — the headline number covers one card type

Stripe's "1.5%" is the rate for a standard European Economic Area consumer card. A European premium or commercial card is 2.8%, a UK card 2.5%, an international card 3.15%, and if a currency has to be converted, another 2% goes on top.

Revolut's "0.8%" is not the online rate at all — it is the in-person rate. Online, a European consumer card is 1% + €0.20, and a commercial or international card is 2.8% + €0.20.

Provider Consumer card, online Commercial or premium card Fixed cost per month
Revolut 1% + €0.20 2.8% + €0.20 included in the Business plan
Stripe 1.5% + €0.25 2.8% + €0.25 €0
Freepay + Elavon (my contract) 1.00% + €0.18 2.05% + €0.18 €13.50
Swedbank by agreement by agreement terminal rental €13–45
SEB by agreement by agreement by agreement
Luminor by agreement by agreement by agreement
LHV by agreement (contract annex 1) by agreement by agreement

The commercial-card row is the one that decides the outcome. If a fifth of your turnover arrives on a business card — a conservative figure in B2B — you are not paying 1.5%. You are paying a weighted average noticeably above it.

Trap 3 — fixed costs decide, percentages don't

At low volume the percentage is close to irrelevant. Monthly charges decide: gateway, PCI, minimum monthly service charge, terminal rental. Swedbank's published price list puts terminal rental at €13–45 a month depending on the device — on its own, more than the entire transaction cost on €1,000 of turnover.

Rule of thumb: below roughly €2,000 a month, compare fixed costs, not percentages. Above that, the percentage gradually takes over.

Trap 4 — even the negotiated rate is not what you pay

Here I'll use my own numbers. I opened a merchant account this spring and the offer was good: 0.9% on European cards, €0.15 per authorisation, €13.50 a month for the gateway.

Then the actual contract arrived for signature — Elavon's Schedule of Fees. I had an AI read it line by line against the offer, and wrote to the salesperson under the subject line "0.99% and six other gaps before I sign". The main ones:

  • European consumer cards at 0.99%, not 0.9%.
  • A €30 minimum monthly service charge — if actual transaction fees came in below it, I paid the difference. The offer had no such line.
  • No PCI product selected, yet the form still carried a line for €25 a month in non-compliance fees.
  • An authorisation fee twice: €0.15 to the gateway and €0.03 to the acquirer.
  • Two lines were better than the offer: chargebacks at €25 rather than the promised €51, and commercial cards at 1.95% rather than 3%.

That €30 was not a detail. It raised the fixed cost from €13.50 to nearly €50 a month and pushed the break-even point — the volume above which this contract beats Stripe — roughly three times higher.

I asked in writing, point by point, each with a number. The answer came back in writing too: the rate was corrected to 0.90%, the minimum monthly charge was removed entirely, and the PCI fee was confirmed as not applicable. The fixed cost stayed at €13.50.

And then there is one more layer, which I missed myself the first time round. The contract carries a line called Higher Risk Additional Loading, 0.10%, applying to every card payment not secured by 3D Secure. All of my turnover is online. So my real rate is not 0.90% — it is 1.00%, with €0.03 to the acquirer and €0.15 to the gateway on top of every transaction.

Which is to say: I made exactly the mistake this article warns about, on my own contract, and only caught it on the second reading.

The only number worth comparing

A percentage is not a price. The price is the cost per hundred euros of turnover at your own volume and card mix. It is one number, it contains everything, and it can be put side by side.

Example business: online shop, €2,000 a month, €60 average order — about 33 transactions — a fifth on commercial cards, all online, all European cards.

Cost per €100 of turnover, example business at €2,000 a month
  1. Revolut€1.69
  2. Stripe€2.18
  3. Freepay + Elavon€2.19my contract

Includes the percentage, the fixed per-transaction fee and the monthly charge, divided by the month's turnover. For Revolut the calculation assumes the Business plan is there anyway; if the plan exists only to take payments, its monthly fee is added.

Look at that for a second. The contract whose headline number is 0.90% — two thirds of Stripe's 1.5% — costs the same at this volume. The €13.50 monthly fee eats the entire percentage advantage. And a third option, which I had never even asked for a quote from, is a quarter cheaper than both.

Run the same arithmetic backwards and you get the break-even points: my contract only overtakes Stripe at around €2,000 a month, and Revolut at around €7,400. Below that, the monthly fee gives back exactly the percentage I negotiated for.

What I do about it

  • I ask providers for one number: what does one hundred euros of turnover cost at my volume and card mix. Anyone who won't give it hasn't made an offer yet.
  • I read the contract, not the offer. They are different documents, and divergence is the rule, not the exception.
  • I raise every gap with a number, in writing. General dissatisfaction moves nothing; "your schedule says 0.99%, your offer says 0.9%" moves things.
  • I no longer compare percentages. At low volume they decide nothing.

One honest closing note: my own card turnover is currently below the break-even point. Holding the contract costs nothing until the first transaction, so the decision still stands — but it is a decision about volume I don't have yet, and that is worth saying out loud.

Want the same on your own data?

Most of these posts start with one annoying question and a log file. If you have a question like that, let's look at it together.

Book a call