Forex Markup Hidden Charges: What Indian Freelancers Actually Lose

Quick answer

Forex markup is the gap between the real exchange rate and the worse rate your bank or platform actually pays you. It hides inside the rate, so you never see a line item for it. The only number that tells the truth is the one on your FIRA.

The first time a big foreign payment came in, the invoice said $2,000. I’d already done the rupee maths in my head at the rate Google showed me that morning. The amount that actually landed was lower. Not by a fee I could point to and complain about, just quietly lower, and I assumed that was simply “the bank rate” and moved on.

It took me a few more payments to work out that the gap was the whole game. That gap has a name, forex markup, and once you know how to spot it you can measure exactly what each payment costs you. This page sits inside the bigger picture of getting paid from international clients, and it’s the foundational one: understand the markup here, and the tool choices later make a lot more sense.

Key Takeaways

  • The biggest cost is hidden in the exchange rate itself, not in any visible fee.
  • A foreign payment usually loses money in three places: the rate spread, the wire and intermediary-bank fees, and a small GST on the conversion service.
  • To find your real cost, compare the rate on your FIRA to the mid-market rate on the same day. The difference per dollar, times the dollars, is your markup.
  • How much is hidden depends mostly on the type of platform you use, not the brand name on it.

What exactly is a forex markup?

Every currency pair has one real rate, the mid-market rate. It’s the midpoint between what buyers and sellers are trading at globally, and it’s the number you get when you search “USD to INR” on Google or look it up on XE. Think of it as the wholesale price of a dollar.

You never get the wholesale price. When your bank or payment platform converts your dollars to rupees, it gives you a slightly worse rate and keeps the difference. That difference is the markup. If the wholesale rate is, say, ₹86 to a dollar and you’re paid out at ₹84, the bank has kept ₹2 on every dollar that passed through.

What makes it slippery is that it never shows up as a charge. A normal fee has a line item you can see and argue with. The markup is baked into the rate, so the only evidence is the gap between the rate you got and the rate that existed. Most freelancers never check, which is exactly why it works.

Where does the money actually disappear?

A single foreign payment can leak money in three separate places. Knowing which is which matters, because they’re fixed in completely different ways.

The rate spread. This is the markup itself, the gap between mid-market and the rate you’re paid. On most bank transfers it’s the largest of the three and the one nobody mentions. There’s no published figure for it, because it varies by bank, by the size of your transfer, and even by your relationship with the branch. Two freelancers receiving the same $2,000 on the same day can get different rates.

The transfer fees. When money comes in by SWIFT (the old-school international wire), your bank charges a flat inward fee, and the payment often passes through one or two correspondent banks on the way, each of which can take a cut mid-route without telling you or your client. You see the result only when the final figure comes in lower than expected, and the inward fee itself varies from one bank to the next.

The conversion tax. There’s GST on the service of converting your currency, charged at 18%. The important part: it applies only to the conversion service the bank provides, not to your whole payment, so on freelance-sized amounts it stays small next to the rate spread. The detailed mechanics belong in a tax guide, not here.

Add those up and a headline “$2,000 received” can land as noticeably fewer rupees than the wholesale rate would suggest. The rate spread usually does most of the damage, which is the opposite of where people look.

How do you work out what you’re really losing?

You don’t need a spreadsheet or anyone’s calculator. You need two numbers and a subtraction.

  1. Find the mid-market rate for the day your payment converted. Search the currency pair on Google for that date, or check XE. Write it down.
  2. Find the rate you actually got. Pull up your FIRA (Foreign Inward Remittance Advice), the document your bank issues for every inward payment. If you’re not sure what it is or how to get one, that’s covered in what is FIRC explained. Look for the “exchange rate” field. That’s the real rate applied to you, not the indicative one on the bank’s website.
  3. Subtract. Mid-market rate minus your FIRA rate is the markup per dollar.
  4. Multiply by the dollars received. That’s your rate-spread cost in rupees for that one payment.
  5. Add the visible fees. The SWIFT or inward fee and any “handling” or “processing” charge on your statement, plus the GST, give you the full cost.

A worked example, with illustrative numbers so the maths is clear (your real numbers come off your own FIRA):

Suppose you received $2,000. The mid-market rate that day was ₹86.00. Your FIRA shows the bank converted at ₹84.00.

  • Markup per dollar: ₹86.00 minus ₹84.00 = ₹2.00
  • Rate-spread cost: ₹2.00 × 2,000 = ₹4,000
  • Add an inward wire fee and the GST on the service, and the total climbs from there.

In this example, ₹4,000 vanished into the rate alone on a single payment, and none of it appeared as a fee. Run the same check on three or four past payments and you’ll have a real, personal figure for what your current setup costs you over a year. That figure, not a blog’s average, is the one worth acting on.

Which kinds of platforms charge it?

The brand matters less than the category. Here’s how the markup tends to behave across the main types of platform an Indian freelancer uses. The exact numbers vary, so treat the right column as “where to look,” not a price list.

Platform typeExamplesWhere the markup hides
Traditional bank (SWIFT inward)Any Indian bank receiving a wireRate spread baked into the conversion, plus a flat inward fee and possible intermediary-bank deductions
Global walletPayPalA percentage fee on the transaction and a separate conversion markup when it moves to INR
Marketplace payoutUpwork, Fiverr paying out via PayoneerA withdrawal or conversion cut taken as the money leaves the marketplace into your account
Virtual-account fintechWise, Skydo and similarUsually mid-market or near-mid-market rate with a flat or low percentage fee instead of a buried spread

The pattern is consistent: the more convenient and the more default the option, the more of the cost tends to sit inside the rate where you can’t see it. The fintech players built their whole pitch on flipping that, showing the fee openly and converting close to mid-market.

Can you actually shrink the markup?

Some of this is in your control and some isn’t. The moves that genuinely help:

  • Check every FIRA. Just doing the subtraction above turns an invisible cost into a number, and a number you can compare across providers.
  • Ask your bank directly. If you bring in steady foreign inflows, a branch can sometimes give you a better rate or waive the inward fee. They rarely offer unless you ask.
  • Try a virtual-account platform for direct invoices. For money you bill directly, not through a marketplace, tools that convert near mid-market can keep more of each payment. Test one against your current setup on a real invoice and compare the rupees that land.
  • Batch your conversions. Every conversion is a chance for a spread to be applied, so converting larger amounts less often can mean fewer bites taken.
  • Keep your export paperwork clean. Filing an LUT lets you receive export income without paying IGST upfront on it, which is a separate saving from the markup but worth knowing. Get the specifics from your CA, since the conditions matter.

None of this requires switching everything overnight. It requires knowing your real number first.

Frequently Asked Questions

What is a forex markup fee?

It’s the difference between the real mid-market exchange rate and the worse rate a bank or payment platform actually gives you when converting foreign currency to rupees. It isn’t shown as a separate charge; it sits inside the exchange rate, which is why most people never notice it.

How do I check the forex markup on my own payment?

Compare the exchange rate on your FIRA to the mid-market rate for the same date, which you can find on Google or XE. The difference per dollar, multiplied by the dollars you received, is your markup cost in rupees for that payment.

Is GST charged on the foreign currency I receive?

No. GST is charged only on the conversion service, not on the money itself. It applies to the bank’s service value at 18%, so on a normal freelance payment it stays small compared to the rate spread.

Which type of platform has the lowest forex markup?

Virtual-account fintech platforms generally convert closest to the mid-market rate and show their fee openly, while traditional bank SWIFT transfers and global wallets tend to bury more of the cost inside the rate. The cheapest option for you depends on whether your income is direct-invoiced or comes through a marketplace.

Do this today: Pull up the FIRA from your last foreign payment and find the exchange rate on it. Look up the mid-market rate for that same date, subtract, and multiply by the dollars you received. That one number is what the payment quietly cost you, and it’s the only honest starting point for deciding whether your current way of getting paid is worth keeping. can take right now.

Reviewed and updated: [July 2026]

Sources and official verification

  • Reserve Bank of India. “Reference rate for USD/INR (now disseminated by FBIL) and the FEMA framework governing inward remittances through authorised dealer banks.” rbi.org.in.
  • Financial Benchmarks India Pvt Ltd. “Daily USD/INR reference rate.” fbil.org.in.
  • Central Board of Indirect Taxes and Customs. “CGST Rules, 2017, Rule 32(2): determination of value for foreign-currency exchange services (18% GST applies to that service value).” taxinformation.cbic.gov.in.
img 20230806 wa0004

Ritesh Yengkhom

I'm Ritesh — I've freelanced for over five years, largely through Upwork, and I'm the writer behind WealthWali. I have a B.Com from Delhi University, but most of what's on this site came from somewhere else: chasing late invoices, guessing at tax, and learning the hard way what nobody tells you about freelancing in India. Everything here is what I've actually used, paid for, or gotten wrong myself. Where something needs a CA or a lawyer, I'll say so plainly instead of pretending I know more than I do.

View Author Profile

You Might Like This