{
  "category": "national-id",
  "updated": "2026-10-08",
  "confidence_levels": {
    "verified": "Read on the official page/file.",
    "verified-archive": "Official page, read via a Wayback Machine snapshot (live site blocks automated fetches); 'archive' has the snapshot URL.",
    "secondary": "Secondary source only (e.g. Wikipedia); treat as unconfirmed.",
    "uncertain": "Plausible but not confirmed; do not rely on it."
  },
  "title": "National identity number test ranges",
  "note": "Only some countries publish official test numbers. test_range=true means an official test list/range or a never-issued pattern; format_valid says whether ordinary validators accept it.",
  "items": [
    {
      "country": "SE",
      "value": "Skatteverket test personnummer (enumerated list, ~44k numbers, 1890-2026)",
      "purpose": "Format/check-digit correct numbers Skatteverket blocks from ever being issued; free to use (CC0). Must be picked from the list (no algorithmic rule). Using test data in production is a reportable incident to IMY.",
      "source": "https://www.skatteverket.se/omoss/digitalasamarbeten/omvaraoppnadata/testpersonnummersomoppendata.4.5b35a6251761e6914202df9.html",
      "confidence": "verified",
      "test_range": true,
      "format_valid": true,
      "licence": "CC0-1.0",
      "data": "https://skatteverket.entryscape.net/rowstore/dataset/b4de7df7-63c0-4e7e-bb59-1f156a591763/json?_limit=500&_offset=0",
      "examples": [
        "196805229272 (680522-9272)"
      ],
      "note": "The list has ~956 duplicate rows; dedupe."
    },
    {
      "country": "SE",
      "value": "Skatteverket test samordningsnummer (enumerated list, ~4k numbers)",
      "purpose": "Test coordination numbers (day + 60), CC0. Includes deliberate edge cases (day 60 = unknown day, month 00).",
      "source": "https://skatteverket.entryscape.net/rowstore/dataset/9f29fe09-4dbc-4d2f-848f-7cffdd075383",
      "confidence": "verified",
      "test_range": true,
      "format_valid": true,
      "licence": "CC0-1.0"
    },
    {
      "country": "NO",
      "value": "Synthetic fødselsnummer: month + 80 (e.g. born 01.11.2024 -> 019124xxxxx)",
      "purpose": "Skatteetaten/Folkeregisteret synthetic test identities (Tenor). Control digits computed after adding 80, so mod-11 passes; the official validator accepts them in synthetic mode.",
      "source": "https://skatteetaten.github.io/folkeregisteret-api-dokumentasjon/test-for-konsumenter/",
      "confidence": "verified",
      "test_range": true,
      "format_valid": true,
      "algorithm": "K1 weights 3,7,6,1,8,9,4,5,2; K2 weights 5,4,3,2,7,6,5,4,3,2; k=11-(sum mod 11), 11->0, 10 invalid (from 2032 K1 may take several values). 9th digit odd=male.",
      "also": "https://skatteetaten.github.io/folkeregisteret-api-dokumentasjon/nytt-fodselsnummer-fra-2032/"
    },
    {
      "country": "NO",
      "value": "Synthetic D-nummer: first digit + 4 and month + 80 (e.g. 57912075186)",
      "purpose": "Synthetic D-numbers stack both rules.",
      "source": "https://skatteetaten.github.io/folkeregisteret-api-dokumentasjon/test-for-konsumenter/",
      "confidence": "verified",
      "test_range": true,
      "format_valid": true
    },
    {
      "country": "NO",
      "value": "NAV/Dolly synthetic: month + 40",
      "purpose": "Used by NAV test tooling; NOT accepted by Skatteetaten's validator and may overlap health-sector H-numbers.",
      "source": "https://github.com/navikt/nav-foedselsnummer/issues/1",
      "confidence": "secondary",
      "test_range": true,
      "format_valid": false
    },
    {
      "country": "FI",
      "value": "Henkilötunnus with individual number 900-999 (e.g. 010181-900C)",
      "purpose": "Kanta/Kela test codes: format-valid but not official identity codes. DVV issues real codes in 002-899. Some organisations also use 9xx for local temporary IDs.",
      "source": "https://www.kanta.fi/en/system-developers/test-material",
      "confidence": "verified",
      "test_range": true,
      "format_valid": true,
      "algorithm": "check char = '0123456789ABCDEFHJKLMNPRSTUVWXY'[int(DDMMYY+NNN) % 31]; century sign '-' or Y/X/W/V/U (1900s), 'A' or B-F (2000s), '+' (1800s); NNN odd=male",
      "also": [
        "https://dvv.fi/en/personal-identity-code",
        "https://vero.fi/positiivinenluottotietorekisteri/ohjelmistokehittajille/sidosryhmatestaus/339014/ohje-testiaineiston-anonymisoinnista/",
        "https://valtioneuvosto.fi/-/10623/henkilotunnusten-riittavyys-varmistetaan-uusilla-valimerkeilla"
      ]
    },
    {
      "country": "DK",
      "value": null,
      "purpose": "No official reserved/test CPR range. Every CPR number is real and never reused; since numbers without modulus-11 are issued, validators must not require mod-11. Digitaliseringsstyrelsen's FOTM test persons reportedly use valid numbers not present in CPR (unconfirmed).",
      "source": "https://www.cpr.dk/media/12066/personnummeret-i-cpr.pdf",
      "confidence": "verified-archive",
      "test_range": false,
      "algorithm": "mod-11 weights 4,3,2,7,6,5,4,3,2,1 (not guaranteed); century from 7th digit + YY; last digit odd=male",
      "archive": "https://web.archive.org/web/20250806/https://www.cpr.dk/media/12066/personnummeret-i-cpr.pdf"
    },
    {
      "country": "GB",
      "value": "QQ 12 34 56 A",
      "purpose": "HMRC's example NINO ('example only, should not be used as an actual number'). Prefix letters D, F, I, Q, U, V are never used; O never second; prefixes BG, GB, KN, NK, NT, TN, ZZ are not used. No range is both format-valid and never issued.",
      "source": "https://www.gov.uk/hmrc-internal-manuals/national-insurance-manual/nim39110",
      "confidence": "verified",
      "test_range": true,
      "format_valid": false
    },
    {
      "country": "US",
      "value": "000-00-0000 or any number beginning with 000",
      "purpose": "SSA POMS RM 10201.020: display these to avoid showing someone's valid SSN; any other combination could be valid. SSA never assigns area 000, 666 or 900-999, group 00 or serial 0000.",
      "source": "https://secure.ssa.gov/poms.nsf/lnx/0110201020",
      "confidence": "verified",
      "test_range": true,
      "format_valid": false,
      "also": "https://www.ssa.gov/employer/randomization.html"
    },
    {
      "country": "US",
      "value": "987-65-4320 .. 987-65-4329",
      "purpose": "Widely cited as an SSA advertising range; no SSA page confirming it was found. Also ITIN-shaped (9xx with group 65 is inside the ITIN range 50-65).",
      "source": null,
      "confidence": "uncertain",
      "format_valid": false
    },
    {
      "country": "DE",
      "value": "Test-IdNr: Steuer-ID with a leading 0 (e.g. 02476291358)",
      "purpose": "ELSTER: only test identification numbers may start with 0. 11 digits, ISO 7064 MOD 11,10 check digit, in the first 10 digits exactly one digit appears twice or three times (never three in a row). The same PDF lists Testfinanzamt Steuernummern (e.g. Bayern 9198081508152).",
      "source": "https://download.elster.de/download/schnittstellen/Pruefung_der_Steuer_und_Steueridentifikationsnummer.pdf",
      "confidence": "verified",
      "test_range": true,
      "format_valid": true
    },
    {
      "country": "NL",
      "value": [
        "999990019",
        "999990068",
        "999990160",
        "999994396",
        "999994931"
      ],
      "purpose": "RvIG test BSNs (11-proef valid). Full test set on request from RvIG. The claim that all of 99999xxxx is reserved is secondary only.",
      "source": "https://rvig.nl/sites/default/files/2025-05/Aansluiting%20testen%20en%20toetsen%20BSN.pdf",
      "confidence": "verified",
      "test_range": true,
      "format_valid": true
    },
    {
      "country": "FR",
      "value": null,
      "purpose": "No official NIR test range found.",
      "source": null,
      "confidence": "uncertain",
      "test_range": false
    },
    {
      "country": "ES",
      "value": null,
      "purpose": "No official DNI/NIE test range found.",
      "source": null,
      "confidence": "uncertain",
      "test_range": false
    }
  ]
}