DevTools Logo

National Identity Generator

National Identity Generator

Generate and validate checksum-valid national IDs for 18 countries — for testing only.

    Privacy Notice: This tool runs entirely in your browser. Your data is never sent to any server or stored anywhere.

    Generator Configuration

    Testing Only: Generated numbers are mathematically valid but randomized (Test Data).

    These numbers are mathematically valid but randomized (Test Data).

    Legal Disclaimer: Generated numbers are for software testing and validation purposes only (e.g., verifying input masks). They do not belong to real individuals. Using these numbers to impersonate real people or for fraudulent activities is illegal.

    Examples

    Validate the built-in Turkish test value

    Input
    Country: Turkey
    Identity number: 10000000146
    Output
    Valid Identity Number
    Country: Turkey
    Formatted: 10000000146
    Details:
    Valid Turkish Identity Number
    10th check digit: 4
    11th check digit: 6

    The validator recomputes both check digits. Passing this check means the value is format-valid test data, not proof that an authority assigned it to a person.

    Validate a formatted Brazilian CPF fixture

    Input
    Country: Brazil
    Identity number: 529.982.247-25
    Output
    Valid Identity Number
    Country: Brazil
    Formatted: 529.982.247-25
    Details:
    Valid CPF
    Check digits: 2, 5

    Non-digit separators are removed before the two CPF check digits are calculated and the accepted value is formatted again.

    Reject a reserved US SSN area

    Input
    Country: United States
    Identity number: 666-12-3456
    Output
    Invalid Identity Number
    Invalid area number: 666. Cannot be 000, 666, or 900+

    The US validator rejects 000, 666, and 900-or-higher area numbers before checking the group and serial portions.

    About this tool

    The National Identity Generator creates checksum-valid national identification numbers for 18 countries — including the Turkish TC Kimlik number, US Social Security Number, Saudi National ID/Iqama, Emirates ID, Brazilian CPF, Singapore NRIC/FIN and Egypt's National ID (الرقم القومي). Every number is algorithmically correct: it passes the country's official format and check-digit rules, but it is synthetic test data that belongs to no real person.

    Use it to seed development databases, test KYC and onboarding flows, exercise form validation, or build demos — without ever touching real personal data. Validator mode runs the same country rules against any number you paste and tells you exactly which rule fails.

    Everything runs locally in your browser: numbers are generated with client-side JavaScript and are never sent to a server, logged, or stored.

    How to use

    1. Pick a country

      Choose one of the 18 supported countries — for example Turkey, the United States, Saudi Arabia, Singapore or Egypt. The format rules adjust automatically.

    2. Generate or validate

      Click Generate for a fresh, checksum-valid test number, or switch to the validator tab and paste an existing number to check its format and check digits.

    3. Copy into your tests

      Copy the result with one click and drop it into your fixtures, database seeds or QA scenarios.

    Use cases

    Testing country-specific form rules

    Exercise input masks, separators, length checks, and check-digit branches without copying identity data from a real user.

    Building deterministic QA fixtures

    Use format-valid test values to cover accepted and rejected onboarding or KYC form paths in development and staging.

    Demonstrating localized interfaces

    Populate demos with the expected visual shape for each supported country while clearly labeling every value as synthetic test data.

    Diagnosing validator failures

    Paste a fixture into Validator mode to see whether length, prefix, check digit, or check letter caused the rejection.

    Supported countries & ID types

    CountryID type
    Turkey (TR)TC Identity Number — 11 digits
    United States (US)Social Security Number (SSN) — 9 digits
    Germany (DE)Identification Number (IdNr)
    United Kingdom (UK)National Insurance Number (NINO)
    Saudi Arabia (SA)National ID / Iqama — 10 digits
    United Arab Emirates (AE)Emirates ID — 15 digits
    Qatar (QA)Qatar ID (QID)
    Kuwait (KW)Civil ID
    Canada (CA)Social Insurance Number (SIN) — 9 digits
    Spain (ES)DNI / NIE
    Brazil (BR)CPF — 11 digits
    France (FR)INSEE / NIR
    Italy (IT)Codice Fiscale
    Netherlands (NL)BSN (Burgerservicenummer)
    Sweden (SE)Personnummer
    Norway (NO)Fødselsnummer
    Egypt (EG)National ID (الرقم القومي) — 14 digits
    Singapore (SG)NRIC / FIN — 9 characters

    Common mistakes

    Mistake:Treating a checksum-valid result as proof that the number is genuine, assigned, or owned by the person presenting it.

    Fix:Use the result only as format-valid test data. The tool does not query an issuing authority or establish identity, ownership, or assignment.

    Mistake:Sending generated values to production identity, government, financial, or verification systems.

    Fix:Keep generated values in isolated tests, fixtures, demos, and staging environments; use approved sandbox identifiers for external integrations.

    Mistake:Assuming every country receives the same depth of validation.

    Fix:Review the selected rule before relying on it. Some implementations verify checksums, while Germany is marked as simulated format validation and Italy performs only a simplified format check.

    Mistake:Validating a value under the wrong country because two schemes have a similar length.

    Fix:Select the issuing country explicitly and test both formatted and unformatted variants expected by your application.

    Frequently asked questions

    References & standards