XBRL International's Currency and Country Taxonomies represent ISO currency and country codes which implementers can reference in their taxonomies.
ISO Currency and Country codes are commonly used in XBRL reports worldwide. These codes are used in reports for a variety of reasons, including to:
This taxonomy guide discusses the following aspects of the currency and country taxonomies, including:
The International Organization for Standardization (ISO) maintains the standard for currency and country representations. ISO, in turn, appoints a Maintenance Authority (MA) to maintain the resulting code lists. These code lists are freely available in digital form and are an important set of lists used to avoid confusion when referring to currencies or countries. The ISO code lists are particularly focused on ISO2022 messages and similar transactional uses of the codes. They are updated promptly by the MA.
ISO 4217 specifies the structure for a three-letter alphabetic code and an equivalent three-digit numeric code to represent currencies. SIX Financial Information AG is the official Maintenance Agency of currency codes under ISO 4217. SIX maintains the currency code lists, updates them, and makes them available online. The codes in ISO 4217 can be accessed here.
ISO 3166 provides universally applicable coded representations of names of countries (current and non-current), dependencies, and other areas of geopolitical interest and their subdivisions. The ISO central secretariat itself is the Maintenance Agency (ISO 3166/MA) for this standard and updates, maintains, and publishes changes to the country codes. The codes in ISO 3166 can be accessed on their Online Browsing Platform.
The taxonomies define currency and country ISO codes as domain members. The domain members are associated with labels and references.
Taxonomies importing the currency and country taxonomies can use the currency and country codes as domain members in a dimensional breakdown or as enumeration values.
The currency taxonomy contains the following two entry points:
Figure 1 sets out the logical structure of the currency taxonomy.
The country taxonomy contains the following two entry points:
Figure 2 sets out the logical structure of the country taxonomy.
Historical currencies are available in list three of the ISO 4217 standard. The currency taxonomy will also include historical codes to facilitate reporting using historical codes (if required). For such historical currency codes:
true
Old country codes are reserved during a transitional period while new code elements that may replace them are taken into use. Such translationally reserved codes will be included in the country taxonomy to facilitate historical reporting.
For such transitionally reserved country codes:
true
The currency and country taxonomies are published in two different formats: “dated” and “current”. These two taxonomies have different versioning approaches.
The currency taxonomy will be versioned based on the ISO issue date of the currency update. For example, the taxonomy reflecting the changes for currency code updated by ISO on '2023-01-01' and will be versioned as '2023-01-01’.
The ISO currency code is published as two lists: list one and list three. 'List one' has valid currency codes, and 'list three' has historic codes. The two lists are combined into a single list in the currency taxonomy. It is possible that these lists could be independently updated. In this case, the version date of the currency taxonomy will reflect the latest date of update of either list.
The versioning information will be reflected in the URL of the taxonomy files and taxonomy package metadata. Examples of URLs for the currency taxonomy based on ISO currency update date '2023-01-01' would be:
The country taxonomy will be versioned based on the ISO issue date of the country update. For example, the taxonomy reflecting the changes for country code updated by ISO on '2023-04-04' and will be versioned as '2023-04-04’.
The versioning information is reflected in the URL of the taxonomy files and taxonomy package metadata. Examples of URLs for the country taxonomy based on ISO country update date '2023-04-04' ' would be:
Taxonomy releases containing structural changes for public review are identified by their status (PWD/CR/PR) and release date. For example, the URL of the country taxonomy file released on 31 March 2023 as a public working draft (PWD) based on the ISO issue date '2022-11-29’ would be:
http://www.xbrl.org/taxonomy/int/country/2022-11-29/PWD/2023-03-31/country.xsd
The country and currency taxonomy will also be provided with a current /up-to-date version reflecting ISO codes at any point in time. The withdrawn codes are deprecated but never deleted and will always be available for reporting; hence updates to the code list should not invalidate the historical reports. The URLs of the up-to-date taxonomy files would be -
https://www.xbrl.org/taxonomy/int/country/current/country-en.xsd
https://www.xbrl.org/taxonomy/int/currency/current/currency-en.xsd
Currency and country taxonomies defines following custom label roles in role-label-code.xsd
:
Currency and country taxonomies defines following custom reference parts in property-part.xsd
:
The currency taxonomy uses following namespaces, where YYYY-MM-DD are the ISO update date on which the taxonomy is based:
currency-elts.xsd
- https://xbrl.org/taxonomy/int/currency/YYYY-MM-DD/currency-elts
currency.xsd
- https://xbrl.org/taxonomy/int/currency/YYYY-MM-DD/currency
currency-en.xsd
- https://xbrl.org/taxonomy/int/currency/YYYY-MM-DD/currency-en
property-part.xsd
- https://xbrl.org/taxonomy/int/currency/YYYY-MM-DD/property-part
role-label-code.xsd
- https://xbrl.org/taxonomy/int/currency/YYYY-MM-DD/role-label-code
The country taxonomy uses following namespaces, where YYYY-MM-DD are the ISO update date on which the taxonomy is based:
country-elts.xsd
- https://xbrl.org/taxonomy/int/country/YYYY-MM-DD/country-elts
country.xsd
- https://xbrl.org/taxonomy/int/country/YYYY-MM-DD/country
country-en.xsd
- https://xbrl.org/taxonomy/int/country/YYYY-MM-DD/country-en
property-part.xsd
- https://xbrl.org/taxonomy/int/country/YYYY-MM-DD/property-part
role-label-code.xsd
- https://xbrl.org/taxonomy/int/country/YYYY-MM-DD/role-label-code
The following table shows the absolute URLs for taxonomy entry points where YYYY-MM-DD
is the ISO update date on which the taxonomy is based:
Entry Point | Description | Absolute URL |
---|---|---|
Currency List with English Labels | Currency codes as domain members for use as dimension values or enumeration values, with ISO 4217 code labels and English language labels (as provided by ISO). | https://www.xbrl.org/taxonomy/int/currency/YYYY-MM-DD/currency-en.xsd |
Currency List | Currency codes as domain members for use as dimension values or enumeration values. Includes ISO 4217 code labels only. | https://www.xbrl.org/taxonomy/int/currency/YYYY-MM-DD/currency.xsd |
Country List with English Labels | Country codes as domain members for use as dimension values or enumeration values, with ISO 3166 code labels, and English language labels (as provided by ISO). | https://www.xbrl.org/taxonomy/int/country/YYYY-MM-DD/country-en.xsd |
Country List | Country codes as domain members for use as dimension values or as enumeration values. Includes ISO 3166 code labels only. | https://www.xbrl.org/taxonomy/int/country/YYYY-MM-DD/country.xsd |
XBRL International subscribes to the notifications about updates from the ISO, Maintenance Authority (MA) and has implemented a mechanism to automatically deploy these changes, together with relevant supporting metadata in an XBRL Taxonomy. An example of ISO code update notification can be seen in these links – currency code and country code.
The ISO currency and country code update notification will initiate the currency or country taxonomies update process. The update to the taxonomies will be carried out by XBRL International staff.
The initial taxonomy and updates that propose structural change will follow the governance and maturity cycle as applicable for technical specification development, or (later) taxonomy-specific governance as defined by the XBRL Standards Board from time to time. Non-structural update to taxonomy will be reviewed and approved by XBRL Standards Board.
Structural changes include changes to taxonomy logical and physical modelling or technical specification updates. Examples of non-structural changes include code updates as per ISO code changes or label updates.
While the default currency and country taxonomies include English labels, additional language labels can be contributed by XBRL jurisdictions or regulators. The additional language labels will be made available as a modular taxonomy file and taxonomy package to be referenced in the taxonomy wanting to use them.
The French label file (country-label-fr.xml) for country taxonomy 2022-11-29 would be available at the official location - http://www.xbrl.org/taxonomy/int/country/2022-11-29/fr/country-label-fr.xml
and as a separate taxonomy package.
By default, two letter language codes will be used to identify additional language label, but adding sub-codes will be considered if requested. The regional codes will be reflected in the taxonomy file URL and the taxonomy file name as seen above exmaple.
ISO publishes Currency and Country codes in XML formats, which are used to generate taxonomy. The mapping between the source ISO XML and taxonomy artefacts is provided in the section
This section describes mapping of ISO Currency and Country code XML to XBRL taxonomy artefacts. The XML element indicates the element in the ISO code XML file.
ISO currency code XML can be accessed from the links below:
Fund codes is not included (where <CcyNm IsFund="true">
the code is omitted). Precious metal and other non-currency codes that start with "ZZ**_" are also excluded from the currency taxonomy.
List one of the currency codes, includes the following special currency which are excluded from the currency taxonomy.
The mapping for ISO code XML fields to taxonomy artefacts for each currency domain member is as follows:
<Ccy>
<CcyNm>
<CcyNm>
(before <WthdrwlDt>
)<CcyNm>
as 'Mexican Peso'. 'MXP' was withdrawn in 1993; its standard name would be 'Mexican Peso (before 1993-01)'.<Ccy>
is/are <CtryNm>
(n)<Ccy>
(repeating the 3-letter currency as an additional label apart from capturing it in the element name, which may be useful in some cases)<CcyNbr>
(numeric codes)For all codes:
https://www.iso.org/iso-4217-currency-codes.html
Withdrawn codes details in property reference (custom parts):
<WthdrwlDt>
When <WthdrwlDt>
is not in YYYY-MM
format the month is assumed to be December of the end period. For example, ‘ARY’ was withdrawn during the period ‘1989 to 1990’, the Deprecated Date is this case in specified in the taxonomy as 1990-12. For such cases withdrawal period is captured as an additional reference part in ‘Deprecated Date Description’
A sample of ISO country code XML can be accessed from this link - Sample Country Code XML.
Country taxonomy includes country codes which has <status>
= ‘officially-assigned’ or ‘transitionally-reserved’.
The mapping for ISO code XML fields to taxonomy artefacts for each country domain member is as follows:
<alpha-2-code>
<short-name lang3code="eng" xml:lang="en">
or <short-name-upper-case lang3code="eng" xml:lang="en">
when the former is not available3. (ISO also provides Country Names in French; the initial plan is to include only English labels in the taxonomy).<short-name lang3code="eng" xml:lang="en">
(before <validity-end-date>
)<full-name lang3code="eng" xml:lang="en">
<alpha-2-code>
(repeating the 2-letter country as an additional label apart from capturing it in the element name may be useful in some cases)<alpha-3-code>
(alphabetic 3-character (alpha-3) code<numeric-code>
(numeric code)For all codes:
https://www.iso.org/obp/ui/#iso:code:3166:GB
Withdrawn code details in property reference (custom parts). This will be only for codes with <status>
= 'transitionally-reserved'.
<validity-end-date>
true
<status-remark>
There are a small number of English labels where the MA appends “(the)” to the country label – for example “United States of America (the)”. These definite articles are removed programmatically. ↩
A few currency codes have multiple withdrawal dates, for example, ‘VEF’, in which case the latest withdrawn date is used in standard label and property reference. ↩
The full name is available only if different from the short form, so it makes sense to have the short name as the standard label and full name as verbose. ↩