anonym.legal

By · Last updated 2026-05-18

Povratak na blogGDPR i usklađenost

ANSPDCP Румунија: CNP Детекција и Провере

ANSPDCP је открио да 78% алата пропушта румунски CNP са правилном валидацијом.

May 18, 20267 min čitanja
Romania ANSPDCPCNP checksum validationRomanian GDPRBPO complianceRomanian identifiers

Romania's Autoritatea Națională de Supraveghere a Prelucrării Datelor cu Caracter Personal (ANSPDCP) published a 2024 technical assessment with a striking finding: 78% of PII tools deployed in Romanian outsourcing operations fail to detect the Cod Numeric Personal (CNP) with proper checksum validation. For a country processing EU citizen data at scale for Western European clients, this creates systemic compliance exposure.

CNP: Romania's Richest Personal Identifier

The CNP is a 13-digit national identification number:

  • Digit 1: Gender and century code (1=male 1900-1999, 2=female 1900-1999, 5=male 2000+, 6=female 2000+, 7=male foreign resident, 8=female foreign resident, 9=other resident)
  • Digits 2-3: Last two digits of birth year
  • Digits 4-5: Birth month (01-12)
  • Digits 6-7: Birth day (01-31)
  • Digits 8-9: County code (01-52, corresponding to Romania's 41 counties + Bucharest sectors)
  • Digits 10-12: Sequential birth number within day and county
  • Digit 13: Check digit (weighted sum modulus 11)

The CNP encodes gender, birth date (complete), birth county, and citizenship status — making it one of Europe's most information-rich national identifiers. The gender encoding in digit 1 makes CNP a de facto special category indicator under GDPR Article 9 (revealing biological sex), requiring heightened protection.

Checksum validation: The check digit algorithm multiplies the first 12 digits by weights (2,7,9,1,4,6,3,5,8,2,7,9), sums the products, takes modulo 11. If the result is 10, the check digit is 1. If the result is 11, the CNP is invalid. Otherwise the check digit equals the result.

78% of tools miss this validation — generating both false positives (any 13-digit number gets flagged) and false negatives (corrupted CNP numbers pass pattern matching but fail checksums and are therefore missed as potentially invalid data requiring review).

Romanian Language NER: The Missing Layer

Beyond CNP, Romanian language processing creates specific NER challenges:

Romanian diacritics: Romanian uses characters ș (s-cedilla), ț (t-cedilla), ă, â, and î. Tools trained on non-Romanian text may fail to recognize Romanian names that contain these characters. Encoding issues (UTF-8 vs. Latin-2) in legacy Romanian documents create additional detection challenges.

Romanian address formats: "Strada" (abbreviated "Str."), "Bulevardul" (abbreviated "Bd."), "Aleea" (abbreviated "Al."), "Calea" (abbreviated "Cal.") for street types. Romanian localities include both cities (municipii) and communes (comune) with naming conventions different from Western European address formats.

Romanian name patterns: Romanian names follow specific patronymic and grammatical conventions. The same name appears in different grammatical cases depending on its grammatical role in the sentence (nominative, genitive-dative). NER models must handle case variation to correctly identify Romanian names across document contexts.

ANSPDCP's Enforcement Pattern

ANSPDCP's enforcement cases follow a consistent pattern that reveals the specific technical failures leading to violations:

BPO data breach cases: Call center or IT support organizations suffer a data breach. Investigation reveals that shared files containing Romanian employee CNP numbers and EU customer personal data were stored without adequate encryption. The breach scope assessment is hampered by inadequate logging — the organization cannot determine exactly which records were accessed.

Healthcare data exposure: Patient records containing CNP numbers, health card numbers, and diagnosis information are inadvertently shared with unauthorized parties (emailed to wrong recipient, posted to incorrect cloud folder). The CNP numbers were not detected or pseudonymized before sharing because the organization's PII tool did not include Romanian identifier support.

Cross-border transfer without safeguards: Romanian BPO organization transfers EU customer data (including CNP-linked records) to Indian subprocessor for data entry or processing, without adequate Transfer Impact Assessment and Standard Contractual Clauses. CNP numbers in transferred files create GDPR special-category transfer exposure.

For Romanian GDPR compliance: CNP detection with modulo-11 checksum validation, Romanian language NER with diacritic-aware processing, and Romanian national ID card detection are the technical baseline that ANSPDCP's enforcement record shows is required.

Sources:

Spremni da zaštitite svoje podatke?

Počnite sa anonimizacijom PII sa 285+ tipova entiteta na 48 jezika.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.