Skip to content
Product11 min read

Which ID Numbers Does ONYRI Sanitize Detect, by Country?

A country-by-country list of the ID, tax, and social security numbers ONYRI Sanitize detects, and whether each is checked by format or by a real checksum.

By Alexis de ONYRIUpdated October 8, 2026

ONYRI Sanitize checks a document against country-specific patterns for ID numbers, tax numbers, and social security numbers before it masks anything. Some of these checks only look at the shape of the number. Others run the same checksum formula the issuing government or bank uses. This page lists exactly what the engine looks for in each of the 47 countries it covers, and where you still need to check the result yourself.

How does ONYRI Sanitize check an ID number?

Every detector works one of two ways. A format check only confirms the shape is right, like a letter followed by eight digits. A checksum check goes further. It runs the same math the issuing body uses and drops a number that fails it. Take Jane Example's US passport number, C12345678. ONYRI confirms the shape but cannot confirm the number is real, because US passport numbers carry no public checksum. A French SIREN business number is different. ONYRI can verify its checksum on the spot.

France: which numbers does it detect?

ID numberWhat it isHow ONYRI checks it
NIR (social security number)15 digits on a payslip or a Carte VitaleFormat only. The first digit must be 1 or 2, and Corsica's department code (2A or 2B) is accepted. No checksum is run.
SIRET14-digit ID for one business siteFormat only: exactly 14 digits.
SIREN9-digit ID for the company itselfFormat and checksum: the Luhn formula must pass.
VAT number (numéro de TVA)FR, 2 digits, then the 9-digit SIRENFormat and checksum: the official key formula is checked.
IBANFrench bank account numberFormat only. The interbank check digits are not verified.

ONYRI also looks for French passport and ID card numbers, plus RIB bank slips and tax reference numbers. All four share the same limit as the NIR. The shape is checked, but there is no public checksum to confirm a fake-looking one is genuine. When in doubt, ONYRI masks it anyway, which is the safer direction to err on.

United States, United Kingdom, and Belgium: which numbers does it detect?

ID numberCountryHow ONYRI checks it
Social Security Number (SSN)United StatesFormat plus rejection rules. An area, group, or serial pattern the SSA never issues is dropped. There is no single check digit.
EIN (Employer ID Number)United StatesFormat plus a real-prefix check. The two-digit prefix must be one the IRS actually issues.
ZIP codeUnited StatesFormat plus range. 00000 is dropped, and so is a block that does not read like a real ZIP or ZIP+4.
National Insurance Number (NINO)United KingdomFormat plus rejection rules. Letter pairs HMRC never assigns are dropped. There is no single check digit.
National Number (Rijksregisternummer)BelgiumFormat and checksum: the modulo-97 key is checked against the birth date block.

ONYRI also reads US passport numbers, and US driver's license numbers when a label like DL or Driver's license sits right next to the value. Without that label, a short mix of letters and digits is too ambiguous to flag safely. UK and Belgian postcodes are matched by format too, though a Belgian postcode only counts once a city name follows it.

Germany, Austria, and Switzerland: which numbers does it detect?

ID numberCountryHow ONYRI checks it
Steuer-ID (tax ID)GermanyFormat and checksum: an official ISO 7064 check digit is verified.
Versicherungsnummer (pension insurance number)GermanyFormat and checksum: the official formula set out in German insurance law is verified.
Sozialversicherungsnummer (SVNR)AustriaFormat and checksum: a weighted modulo-11 key is verified, and the embedded birth date must be real.
AHV number (n° AVS)SwitzerlandFormat and checksum: the EAN-13 check digit is verified. Every real number starts with 756.

These four checksums make DACH numbers some of the most reliable ONYRI detects. A German postal code needs more care. German capitalizes every common noun, so ONYRI only accepts a code next to a real place name, or next to a clear label such as PLZ, to avoid masking an ordinary amount like 2000 Euro.

Spain, Italy, the Netherlands, and Luxembourg: which numbers does it detect?

ID numberCountryHow ONYRI checks it
DNI / NIESpainFormat only. Recognized by shape: 8 digits plus a letter, or X, Y, or Z plus 7 digits plus a letter. Masked even if the control letter is wrong, so an OCR error can't leave it exposed.
NIF of a company (formerly CIF)SpainFormat plus checksum or label: masked once the official check digit passes, or once CIF or NIF sits right next to it.
Codice fiscaleItalyFormat only. The 16-character shape is distinctive enough on its own.
Partita IVA (VAT number)ItalyFormat plus checksum or label: masked once its checksum passes, or once P.IVA sits right next to it.
BSN (citizen service number)NetherlandsFormat plus checksum or label: masked once it passes the official elfproef check, or once BSN sits right next to it.
National number (matricule)LuxembourgFormat only. Masked once the first eight digits form a real birth date (YYYYMMDD); the number's own two check digits are not verified.

ONYRI also reads postal codes next to a city name: Spain's 01000-52999, Italy's 5-digit CAP with an optional province like (MI), the Netherlands' 1234 AB, and Luxembourg's L-1234. National phone numbers are matched too, plus the +34, +39, +31, and +352 country codes.

A Dutch KvK number is 8 bare digits, too ambiguous on its own: ONYRI needs a label like KvK right next to it. A bare BSN is 9 digits; it's masked once it passes the elfproef check, or with a label like BSN nearby. Without either, check the preview and add it under Also mask.

Dates spelled out in words are read too: 3 de marzo de 2026, 1° marzo 2026, and 12 maart 2026. Spanish, Italian, and Dutch first and last names are matched against built-in dictionaries. Luxembourg documents are often written in French or German, so ONYRI reads dates and names in both. It also guesses a document's country from its text (language, IBAN, phone prefix, postal code), so the default profile adapts on its own. A profile set to a specific country keeps it.

Which numbers does it detect in the 36 other countries?

Since October 2026, ONYRI Sanitize also covers 36 more countries, which makes 47 in all. For each one it knows the main ID, tax and company numbers, plus phone numbers, dates and, where the country uses them, postcodes and street addresses.

The same rule applies everywhere. A number in its distinctive shape, with its dashes, dots, slash or letters, is masked even if its check digit is wrong, so an OCR error cannot leave it exposed. A bare run of digits is masked only when its check digit is valid, or when a label such as PESEL, CPF or TFN sits right next to it.

Europe

CountryNumbers it recognizes
PortugalNIF tax number, NISS social security number, Citizen Card number, NIB bank number, IBAN, postcodes
DenmarkCPR number, CVR company number, IBAN, postcodes
NorwayBirth number (fødselsnummer) and D number, organisation number and its MVA form, bank account number, IBAN, postcodes
SwedenPersonal identity number (personnummer) and coordination number, organisation number, bankgiro and plusgiro numbers (with a label), IBAN, postcodes
FinlandPersonal identity code (henkilötunnus), business ID (Y-tunnus), IBAN, postcodes
PolandPESEL, NIP, REGON, KRS (with a label), ID card number, NRB bank account number, IBAN, postcodes
Czech RepublicBirth number (rodné číslo), IČO, DIČ, bank account number, IBAN, postcodes
SlovakiaBirth number (rodné číslo), IČO, DIČ, IČ DPH, bank account number, IBAN, postcodes
HungaryTax number (adószám), tax ID (adóazonosító jel), TAJ number, company registration number, bank account number, IBAN, postcodes
RomaniaCNP personal number, CUI or CIF tax code, trade register number, IBAN, postcodes
CroatiaOIB, MBS and MBO numbers (with a label), ID card number (with a label), IBAN, postcodes
GreeceAMKA, AFM tax number, ID card number, passport and GEMI numbers (the last two with a label), IBAN, postcodes
TurkeyT.C. identity number, VKN tax number and Mersis number (the last two with a label), IBAN, postcodes
RussiaSNILS, INN, OGRN and KPP (all but SNILS with a label), passport number, bank account number (with a label), health insurance policy number (with a label), postcodes
UkraineRNOKPP tax number, EDRPOU code and passport number (each with a label), population register number, IBAN, postcodes

The Americas and Oceania

CountryNumbers it recognizes
BrazilCPF, CNPJ (including the new alphanumeric form), PIS, PASEP and NIT, RG (with a label), CNJ court case numbers, CEP postcodes, bank branch and account (with a label), IBAN
MexicoCURP, RFC, voter key (clave de elector), NSS social security number, CLABE bank number, postcodes
ArgentinaCUIT and CUIL, DNI, CBU and CVU bank numbers, postcodes
ColombiaNIT, citizenship card number (cédula, with a label), postcodes (with a label), street addresses
ChileRUT and RUN, postcodes (with a label)
PeruRUC, DNI (with a label), foreigner's card (carné de extranjería, with a label)
AustraliaTax file number (TFN), Medicare number, ABN, ACN, BSB and account number (with a label), postcodes

The Middle East and North Africa

CountryNumbers it recognizes
IsraelIdentity number (teudat zehut, with a label), company number, IBAN, postcodes
Saudi ArabiaNational ID and iqama number, VAT number, commercial registration number (with a label), IBAN, postcodes
United Arab EmiratesEmirates ID, TRN tax number, IBAN
EgyptNational ID number, tax number and commercial register number (the last two with a label), IBAN, postcodes
MoroccoCIN identity card number (with a label), ICE company identifier, IF, RC and CNSS numbers (with a label), RIB, IBAN, postcodes

Asia

CountryNumbers it recognizes
IndiaAadhaar, PAN, GSTIN, IFSC, CIN company number, driving licence number, PIN codes, plus voter ID (EPIC) and passport number (both with a label)
Thailand13-digit identity number, company tax ID (with a label), postcodes
VietnamCitizen identity card number (CCCD), old ID card number (with a label), tax code (MST), postcodes (with a label)
IndonesiaNIK, NPWP tax number, postcodes
MalaysiaMyKad (NRIC) number, SSM company number, income tax number (with a label), postcodes
ChinaResident identity card number, unified social credit code, bank account numbers (with a label), postcodes
TaiwanNational ID and resident certificate numbers, unified business number (with a label), postcodes
JapanMy Number (individual number), corporate number (with a label), invoice registration number (T plus 13 digits), postcodes
South KoreaResident registration number, business registration number, corporate registration number (with a label), driver's license number, postcodes

Numbers written with Arabic, Persian, Devanagari, Thai or full-width digits are read as ordinary digits, so a number typed in another script is still found. Names are read after a title or a label, and in signatures. In languages without a names model, such as Polish, Czech, Russian, Japanese or Korean, a bare name with no title or label can stay visible: check the preview and select it by hand. Canada is still not covered.

What about bank details, cards, and technical secrets?

  • IBAN, in the covered countries that use it (not the United States, for example). ONYRI matches the shape (two letters, two digits, then 11 to 30 letters or digits) but does not run the interbank checksum or check each country's exact length, except in Saudi Arabia, the United Arab Emirates, Egypt and Morocco.
  • Credit and debit card numbers, checked with the Luhn algorithm, the same math your card issuer runs.
  • BIC and SWIFT codes, the bank identifier that often travels next to an IBAN.
  • VAT numbers in several EU formats. The French and Italian keys are verified against their official formulas; the rest are matched by format only.
  • Cloud and API keys, such as AWS, Google Cloud, Azure, Stripe, OpenAI, and Anthropic, plus Slack, GitHub, and GitLab tokens, JWTs, and SSH private keys. These sit on the Pro plan and above only, so a Free-plan export of a developer's log would leave them unmasked.

Free plans get 3 custom rules. Pro removes that limit, along with the cap on documents and pages. Either way, a rule you write once can be reused for every document in a profile, which is the practical way to cover a country ONYRI has not built a detector for yet.

Frequently asked questions

Which countries does ONYRI Sanitize cover?

47 in all: the 11 countries with their own tables above, and the 36 listed in the section on the other countries. For a country outside that list, such as Canada, add the number as a custom rule, or type an example under Also mask, and every matching occurrence in the document is covered.

What is the real difference between a format check and a checksum check?

A format check only looks at length and character pattern, like nine digits in a row. A checksum check recomputes a control digit with the same formula the issuing body uses. A number that fails a checksum is very unlikely to be genuine. A number that only passes a format check might still be fake, or might be real but unverifiable.

Are cloud and API keys masked on every plan?

No. AWS, Google Cloud, Azure, Stripe, OpenAI, and Anthropic keys, plus Slack, GitHub, GitLab tokens, JWTs, and SSH private keys are Pro-only. On a Free plan, that kind of secret stays visible in the export, so check the Detected data list before sharing a technical document.

Can I stop ONYRI from masking a value it got wrong?

Yes. The Detected data list groups every match by family, with one checkbox per value. Untick anything you want to keep visible, right up until you download.

Does a valid checksum mean the document belongs to a real, identifiable person?

No. A checksum only proves the number is well-formed enough to be a genuine one of its kind. It says nothing about whether the person named nearby is real, or whether the number still belongs to them. Read the surrounding text before you decide what to keep visible.

Sources & references

  1. POMS RM 10201.030: Structure of the Social Security NumberUS Social Security Administration
  2. Get your National Insurance numberGOV.UK
  3. Check a VAT number (VIES)European Commission, Your Europe
  4. How EINs are assigned and valid EIN prefixesUS Internal Revenue Service (IRS)
  5. Composición del NIF de personas jurídicas y entidadesAgencia Tributaria (Spain)
  6. Codice fiscale: che cos'è e come si ottieneAgenzia delle Entrate (Italy)
  7. Wat is het burgerservicenummer (bsn)?Rijksoverheid (Netherlands)
  8. Structure du numéro d'identité (matricule)Centre commun de la sécurité sociale (CCSS, Luxembourg)
  9. Personal identity codeDigital and Population Data Services Agency (Finland)
  10. CNPJ AlfanuméricoReceita Federal do Brasil

Mask a document without uploading it

ONYRI Sanitize finds names, identifiers, bank details and secrets in a PDF, a Word file or a scan, and masks them in your browser. You check the preview, then download a flattened copy.