English

Documents · Freelance Invoice Tool

ISO 4217 Currency Codes: Why '$' Is Not Enough on an Invoice

· Background

invoice file-formats validation

Three currency-code rows disambiguating otherwise similar amounts
Original ToolAcre vector illustration

Currency symbols are shared, shifted and sometimes missing from fonts; three-letter codes are unambiguous. This post explains the ISO 4217 standard, minor units, and the formatting conventions that make an amount readable in any country.

Which dollar? — the client who paid in the wrong currency because the symbol was all the invoice showed

A bare symbol does not always identify one currency, so an invoice should make the selected code visible wherever ambiguity would matter. The repository does not verify a story about a client paying the wrong currency, and no invented anecdote is needed to show that explicit identifiers reduce guessing.

Three-letter currency codes in this tool — useful identifiers without an unsourced standards history

The money registry uses familiar three-letter currency codes as keys and associates each with a minor-unit count. This article does not claim how the ISO standard constructs every code or quote its publication history, because those facts are not sourced in the repository.

Minor units in the current registry — zero or two, not every ISO possibility

The current registry represents currencies with either zero or two minor digits. JPY, KRW and VND are formatted without fractional units, while the other listed entries use two. The workbook’s claim that a few supported currencies use three decimals is false for this implementation.

Symbols and placement — before or after the amount, with or without a space, and why conventions differ

Intl.NumberFormat decides symbol or code presentation from the chosen currency and fixed locale. Symbols can appear beside a value in ways readers recognise, but the code remains the clearer identifier when the same glyph can mean several currencies or the font cannot render a preferred sign.

Separators in general — this tool fixes one stable English-locale format

Grouping and decimal conventions vary in general, yet this tool does not localise them to each selected country. It fixes the English locale to keep screen, print and custom PDF strings stable and compatible with its font path. Country selection changes currency metadata, not visitor-locale separators.

Worked example — one amount written in five currencies with correct codes, minor units and separators

Compare one exact minor-unit amount under five currencies from the registry and observe how zero- and two-digit formats differ. Keep the underlying value appropriate to each example rather than pretending the same minor-unit integer has the same economic meaning across currencies.

What this does not cover — exchange rates, conversion dates and how to account for currency gains or losses

The formatter performs no exchange-rate lookup and stores no conversion date. It does not calculate gains, losses or accounting treatment. A document is denominated in one currency only, so any conversion belongs in a separately evidenced workflow.

Takeaway — always show the code, format for the reader, and let the Freelance Invoice Tool's currency setting apply the conventions

Choose and display the intended code, then inspect the generated value rather than trusting a symbol alone. The Freelance Invoice Tool applies the selected registry entry’s precision consistently; it does not localise every separator convention or implement currency conversion.