Skip to content

Platform_

Currency & formatting

Not just "PKR" — the symbol, decimals, separators and grouping.

Every currency carries the rules a checkout actually needs: how many decimal places (JPY has 0, KWD has 3), where the symbol sits, which separators, and India-style lakh/crore grouping. Verified against ICU/CLDR by an automated test, not typed from memory.

Why it works_

Render prices the way locals read them

01

Decimals that matter

Treating a 0-decimal currency as 2-decimal overcharges 100×. We return the real minor-unit count for all 197 markets.

02

Symbol placement & separators

Before or after, space or narrow-space, comma or dot — the exact ICU convention per locale.

03

A worked example

Every response includes a formatted sample so you can see lakh/crore vs thousands at a glance.

The data behind it

One call, these response blocks.

This page maps to these blocks of the same response every other page reads:

  • Currency
  • Live FX
currency-formatting.sh
curl "https://api.localesense.com/v1/countries/PK" \
  -H "Authorization: Bearer ls_live_..."
In practice

What your code sees, per request.

The sample on the right is the shape of the real response for a visitor in Karachi — every value attributable, nothing guessed. Point the same call at any of the 197 markets.

Try it live in the docs
GET /v1/self 200 OK · sample
  • Currency PKR · 2dp · Rs 123,456.78
  • FX vs USD 278.02 · SBP · today

Keep exploring_

Related platform

FAQs

Currency & formatting — frequently asked

How many decimal places does each currency use?

It varies, and getting it wrong is expensive: JPY and KRW use 0 decimals, most currencies use 2, and KWD, BHD and OMR use 3. We return the real ISO 4217 minor-unit count for every market, so you never charge 100× by treating a 0-decimal currency as 2-decimal.

How do I format a price for India's lakh/crore system?

Indian grouping is 3,2 rather than 3,3 — ₹1,23,456.78, not ₹123,456.78. The currency profile carries the grouping pattern, separators and symbol position, and each response includes a worked format example so you can render it correctly without special-casing India yourself.

Where does the formatting data come from?

Every formatting field is derived from ICU/CLDR and re-verified against it by an automated test on each build, rather than typed from memory. That is the difference between a value that looks right and one that is right.

Get started

Try it free

10,000 requests a month, no card. Every tier includes live FX and the full formatting engine.

Get your API key