
July 31, 2026 ・ 7 min read
The hidden FX markup on cross border payments, and how to calculate what you are actually paying
A hidden FX markup is the difference between the mid market exchange rate and the rate a provider applies to a payment. It is not listed as a fee. On a cross border transfer, the stated fee may look small while the markup is many times larger, because the markup scales with the size of the payment and the fee does not. On high value transfers, the markup is usually the dominant cost.
Most finance teams know they are paying a chunk. Very few can say how much. The reason is structural: the cost is not on the invoice, it is inside the rate, and the rate arrives as a single number with no reference point attached to it.
This post explains where the markup is, how to calculate it on your own payments, and what to ask a provider so that the number makes sense.
What the mid market rate is, and why your rate is different
The mid market rate is the midpoint between the buying price and the selling price of a currency pair on the interbank market. It is the rate a search engine returns. It is the rate on a public currency converter. It is the rate quoted in financial news.
It is also a reference rate, observable but rarely tradeable.
Every provider that moves money across borders applies a margin to that reference rate before quoting you a price. That margin is the FX markup. It is revenue for the provider, not a cost being passed through to you, and it is set commercially rather than by any external benchmark. Two providers quoting the same corridor on the same morning can apply materially different margins, and neither of them is doing anything unusual.
Every business in the chain is entitled to be paid for the service. The problem is that the margin is quoted as a single blended number, so you cannot see what portion of your payment is settlement and what portion is margin.
How to calculate the FX spread on a payment
You can work this out yourself on any payment you have already made. You need two numbers: the mid market rate at the time of the transfer, and the rate you were given.
- Record the mid market rate at the moment the transfer was executed. Historical rate data is publicly available for every major pair.
- Record the rate the provider applied. This is the amount received divided by the amount sent, before any stated fee.
- Subtract the applied rate from the mid market rate.
- Divide that difference by the mid market rate, then multiply by one hundred. That is your spread, expressed as a percentage.
- Multiply the spread percentage by the transfer amount. That is the currency cost of the payment.
- Add the stated fee. The total is the landed cost of the transfer.
TL;DR Formula
Landed Cost = [(Mid-Market Rate − Applied Rate) ÷ Mid-Market Rate] × Transfer Amount + Stated Fees
Run this on your recent payments. Two patterns will show up.
The stated fee is close to flat. Whether you send a small payment or a large one, the fee moves very little, because it is priced against the operational cost of processing a transaction rather than against the value being moved.
The markup is proportional. It is a percentage of the amount, so it grows in direct step with the size of the transfer.
Those two behaviors cross over. Below a certain transfer size the fee is the larger cost and the markup is negligible. Above it, the relationship inverts, and it inverts permanently. At the size most businesses actually settle at, the fee has become a rounding error and the markup is close to the entire cost of the payment. A finance team watching the fee line is watching the smaller of the two numbers, and watching it more closely the less it matters.
This is why the annual figure surprises people. The cost was never large on any single payment they looked at. It was large on the payments they did not think to check.
Why the markup stays invisible on the invoice
Three things keep the cost out of sight, and none of them are accidental.
- The rate is quoted as one number. A single blended rate tells you nothing about how much is reference and how much is margin.
- The rate lock is undefined. Between the moment you are quoted and the moment the payment executes, the reference rate moves. If the provider locks the rate at quote time, they carry that risk. If they lock at execution, you carry it.
- Correspondent banks deduct after the payment leaves. A traditional cross border transfer passes through intermediary banks before reaching the beneficiary.
- Each one may apply its own charge, deducted from the principal in transit. Neither the sender nor the recipient sees the deduction happen.
- The sender sees a completed payment. The recipient sees a shortfall. Nobody in the chain holds a complete view of the total cost, which is precisely why the total cost is so rarely questioned.
What the markup costs across a year
Per transaction, the number is easy to dismiss. Annualised, it stops being a rounding error and starts being a line item.
The calculation is straightforward. Take your monthly cross border volume, multiply it by your measured spread, and multiply by twelve. That is your annual FX cost, and it sits nowhere in your accounts as a distinct expense, because it was never invoiced.
Two shapes of business feel this hardest.
The first is the services business invoicing overseas clients and paying a distributed team. An agency, a development shop, or an outsourced operations firm collects in one currency and pays salaries, contractors, and vendors in another, every month, without exception. The exposure is not one large payment. It is a high frequency of medium payments, each one carrying a spread, compounding quietly across a full year. For a business running on services margins, that annual figure is often significant.
The second is the trade or commodities business converting large ticket invoices. Here the frequency is low but the size is not. A fraction of a percentage point on a single cargo settlement can exceed a full year of stated fees on every other payment the business makes. The markup is not a decision of extra cost at this scale, it is a pricing decision that was made for you.
How to remove the markup from your payment stack
You do not need to change providers to start. You need to change what you ask them.
- Ask for the reference rate alongside the applied rate. Request that every quote shows the mid market reference and the margin as separate figures. A provider that will not separate them is earning in the spread and would prefer you did not measure it.
- Ask when the rate is locked and how long it holds. Get the answer in writing. A quote with no defined validity window is not a quote, it is an indication.
- Reconcile amount sent against amount received. Take your last five payments and compare what left your account with what landed in the beneficiary account, converted at the mid market rate for that date. The gap is your real cost. Do this once and you will know more about your payment stack than most finance teams know about theirs.
- Ask whether the rate changes with size. It usually does. Confirm whether it moves in your favor on larger tickets or against you, and get the thresholds.
- Ask who else touches the money. The number of intermediaries in the chain determines how many opportunities exist for a deduction you will not see.
Running these five checks will not reduce your costs by itself. It will make them visible, and a visible cost is one you can negotiate, budget for, or design around.
This is the problem zPayments was built to remove. Payments settle on stablecoin rails through regulated partners in each corridor, which takes the correspondent banking chain out of the path entirely, and the conversion is quoted as one stated rate with the margin shown rather than buried. Recipients receive local currency the same day.
Frequently asked questions
How much do banks charge in FX spread on business payments?
The margin varies by provider, corridor, and transfer size, and it is set commercially rather than against a published standard. Rather than relying on a headline figure, measure it on your own payments using the calculation above. Your measured spread on your actual corridors is the only number that governs your costs.
Why is my bank exchange rate different from the rate I see on a search engine?
Search engines display the mid market rate, which is the midpoint between the interbank buying and selling prices. It is a reference, not a transactable price. Every provider applies a margin to that reference. The size of that margin is the difference you are seeing.
Is a zero fee transfer actually free?
No. When a provider advertises no transfer fee, the revenue is in the exchange rate. The only reliable comparison between two providers is the amount that arrives in the beneficiary account for an identical amount sent, on the same day. Compare what lands, not what is charged.
Want to see what one stated rate looks like against your current stack?
Book a walkthrough of zPayments.

