Home Documentation Central Bank Rates Tax Authority Rates Playground Pricing API Status Blog About FAQ Contact Us

Official Exchange Rate vs Market Rate: Which One Does Your App Actually Need?

Reviewed by Madhushan, Fintech Developer — August 2026

Every currency-touching system eventually hits this fork, usually the hard way: finance asks why the numbers in the app don't match the ledger, or an auditor asks where a 2024 conversion came from and the answer is "whatever the API returned that afternoon". The root cause is almost always the same — one rate feed doing two different jobs.

There are two kinds of exchange rate, and they are not interchangeable:

Market (mid-market) rateOfficial rate
What it isLive snapshot of where the pair tradesA number a central bank or tax authority published
ChangesContinuouslyOnce per day / month / quarter, then never
Reproducible laterOnly if you stored itAlways — it is the published record
Citable source"Our data vendor""ECB reference rate, 2026-03-14"
Right forPricing, display, conversion UX, alertsAccounting, tax, customs, contracts, audits

Decide by the question your code is answering

"What should this cost right now?" → market rate

Checkout pricing, a converter widget, a rate alert, a trading dashboard: these want the freshest mid-market number available, because the user will compare you against Google within seconds. This is the job of a live rates API — updated every 60 seconds, 160+ currencies.

"Which number must this document use?" → official rate

An invoice crossing a border, a month-end revaluation, a customs declaration, a contract clause reading "at the ECB rate on the payment date": here freshness is not just unnecessary, it is wrong. The document needs the fixed, published number — and needs to still produce the same number when reopened in three years. That is the job of central bank rates and tax authority rates.

"Both" → both, kept apart

Most real products land here: market rates render the price preview, the official rate books the transaction. The architecture that survives audits keeps the two calls visibly distinct — same key, different endpoints — so nobody ever "temporarily" wires the live feed into the ledger path.

# Display layer — live mid-market
curl "https://allratestoday.com/api/v1/rates?source=EUR&target=USD" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Booking layer — the official published rate for the document date
curl "https://allratestoday.com/api/v1/central-bank/ecb/latest?source=EUR&target=USD" \
  -H "Authorization: Bearer YOUR_API_KEY"

The three failure modes this prevents

The unreproducible report. A revaluation built on a live feed returns different totals every rerun. With an official rate the rerun is deterministic — same date, same published number, forever.

The subsidiary mismatch. Two entities convert the same intercompany invoice with two different afternoon snapshots and the elimination never nets out. An official rate fixed once per day makes both sides use the same number by construction. (Which official rate? That's its own decision.)

The compliance surprise. Customs and VAT filings frequently do not accept "a market rate" at all — UK declarations use HMRC's monthly list, US federal reporting uses Treasury quarterly rates. Using a beautiful, accurate market rate on those forms is simply an error.

Edge cases official rates handle for you

Weekends and holidays have no publication — the correct behaviour (fall back to the most recent published date, and say so) is standard accounting practice, and the API flags it explicitly rather than silently interpolating. Pairs a bank never printed are computed from its published table and flagged derived: true, so a "BoE EUR/JPY" is honest about being a cross. These flags exist because the audit questions exist.

FAQ

Is the mid-market rate ever acceptable for accounting?

Some policies do permit "a reliable market source" — but they then require you to store the rate used, its source, and its timestamp per transaction. An official rate gives you that provenance for free, which is why policies overwhelmingly name one.

Why not always use official rates, everywhere?

Latency. An official daily rate fixed yesterday afternoon is a poor price for a checkout in a moving market — customers and finance both notice. Display wants fresh; books want fixed.

Do I need two API providers for this?

No — both feeds live under one AllRatesToday key: live mid-market for 160+ currencies, and official published rates from 35 central banks and 2 tax authorities. The free tier covers live rates and every bank's latest table (300 requests/month).

Both kinds of rate. One key.

Live mid-market + official rates from 35 central banks — free tier, no credit card.

Get your free API key

Related Articles