Skip to content
mathbehind

The Hidden Fee in International Payments: Exchange-Rate Markup

A payment service with no fee can still cost you 3% or more through its exchange rate. Here's how to spot the markup and compare providers fairly.

By Muhammad Ahmad. Published . 1 min read.

Want to run your own numbers?International Payment Cost CalculatorOpen the calculator

When a client abroad pays you, the fees you can see are only half the story. The other half is the exchange rate. Many providers convert your money at a rate a few percent worse than the real one and keep the difference, without listing it as a fee.

Start from the mid-market rate

The mid-market rate is the real exchange rate, halfway between what banks buy and sell a currency for. It is the rate you see on search engines and currency sites. Any rate below it, in your direction, contains a markup.

To measure the markup: 1 − the provider's rate ÷ the mid-market rate. If the mid-market rate is 0.9200 and a provider gives you 0.8970, the markup is 2.5%.

Comparing two routes

Route A charges 3% and converts at a 2.5% markup. Route B charges 0.6% plus a fixed 1 and converts at the mid-market rate. On a payment of 1,000:

What arrives from 1,000 sent
  1. Route A

    (1,000 × (1 − 3%) − 0) × 0.92 × (1 − 2.5%)equals870.09

  2. Route B

    (1,000 × (1 − 0.6%) − 1) × 0.92 × (1 − 0%)equals913.56

  3. Difference

    |870.09 − 913.56|equals43.47

Route A's total cost is 5.43% and Route B's is 0.70%. On a year of client payments, that gap is often worth more than a week of work.

Where the fees hide

  • Receiving fees, charged when a payment arrives in your account.
  • Conversion markup, built into the rate rather than listed as a fee.
  • Withdrawal fees, charged to move money to your local bank.
  • Fixed fees, which weigh heavily on small payments.

Add all of them for each route before comparing. A provider that is cheapest at 5,000 can be the most expensive at 100.

Tip: Where you can, invoice in your client's currency and convert with the provider that has the lowest markup, rather than letting the platform convert automatically.