Historical & Retired ISO 4217 Currency Codes

Reference of retired and replaced ISO 4217 currency codes including the Deutsche Mark, French Franc, Italian Lira, and recently replaced currencies. Essential for legacy system maintenance.

Standards

Detailed Explanation

Historical Currency Codes

Over the decades, many currencies have been replaced, redenominated, or retired. ISO 4217 assigns new codes when currencies change, and the old codes are marked as historical. Developers maintaining legacy systems or processing historical financial data frequently encounter these codes.

Currencies Replaced by the Euro

When the Euro was adopted in stages from 1999 to 2023, numerous national currencies were retired:

Old Code Currency Country Euro Date
DEM Deutsche Mark Germany 2002
FRF French Franc France 2002
ITL Italian Lira Italy 2002
ESP Spanish Peseta Spain 2002
NLG Dutch Guilder Netherlands 2002
BEF Belgian Franc Belgium 2002
ATS Austrian Schilling Austria 2002
FIM Finnish Markka Finland 2002
IEP Irish Pound Ireland 2002
PTE Portuguese Escudo Portugal 2002
GRD Greek Drachma Greece 2002
LVL Latvian Lats Latvia 2014
LTL Lithuanian Litas Lithuania 2015
HRK Croatian Kuna Croatia 2023

Recently Changed Currencies

  • VEF (Venezuelan Bolivar Fuerte) → VES (Bolivar Soberano) — 2018 redenomination
  • MRO (Mauritanian Ouguiya) → MRU — 2018 redenomination
  • STD (Sao Tome Dobra) → STN — 2018 redenomination
  • ZWL (Zimbabwe Dollar) — suspended multiple times, reintroduced 2019
  • SSP (South Sudanese Pound) — introduced 2011

Handling Historical Codes in Software

// When processing historical transactions
const HISTORICAL_TO_CURRENT = {
  DEM: { code: "EUR", rate: 1.95583 },  // Fixed conversion rate
  FRF: { code: "EUR", rate: 6.55957 },
  ITL: { code: "EUR", rate: 1936.27 },
  HRK: { code: "EUR", rate: 7.53450 },
};

function convertHistorical(amount, oldCode) {
  const mapping = HISTORICAL_TO_CURRENT[oldCode];
  if (mapping) {
    return {
      amount: amount / mapping.rate,
      currency: mapping.code,
    };
  }
  return { amount, currency: oldCode };
}

Why Keep Historical Codes

  1. Regulatory compliance: Financial records must preserve original currency
  2. Auditing: Historical transactions referenced in their original currency
  3. Data migration: Legacy databases may contain old codes
  4. Reporting: Tax filings may reference defunct currencies

Use Case

Banks, financial institutions, and accounting systems that process historical data or maintain long-lived records encounter retired currency codes regularly. When migrating legacy databases, generating historical reports, or complying with regulatory requirements, developers need to correctly map old currency codes to their current equivalents while preserving the original data for audit purposes.

Try It — Currency Code Reference

Open full tool