Dominican Cédula Validator

Validate Dominican cédula numbers in bulk — format and check digit.

Cédulas are validated in your browser — never sent anywhere

Check the format and Luhn check digit — one cédula or a whole list

Example loaded — edit it or clear it

Total
Valid
Invalid

What this validator checks — and what it cannot confirm

The cédula de identidad y electoral is the national identity document issued by the Dominican Republic's JCE (Junta Central Electoral) to every citizen. Its 11-digit number appears on tax forms, bank accounts, contracts, and voter rolls, so entering it wrong has real consequences — from rejected filings to mismatched records. This validator checks one cédula or hundreds at a time (paste them one per line) and tells you exactly what is wrong with each.

The structure is 11 digits, traditionally written with dashes as XXX-XXXXXXX-X: the first three digits originally encoded the municipality or book number, the next seven are a sequential number, and the last one is a check digit computed with the Luhn algorithm — the same method used to validate credit card numbers worldwide.

The Luhn check works by multiplying alternate digits by 2 (and subtracting 9 if the product exceeds 9), summing the results, and checking that the total ends in zero. It catches any single-digit error and most transpositions of adjacent digits, making it an effective filter for typos and data-entry mistakes.

What no outside tool can confirm is whether the cédula is actually registered with the JCE — a structurally valid number can still be unassigned, cancelled, or belonging to a deceased person. Treat this validator as the cheap, bulk first filter for cleaning data before it enters a system, and the JCE's own verification as the final source of truth. Everything runs in your browser: the cédula numbers you paste are never sent to any server.

The cédula structure

PartLengthContentExample
Municipality/book3 digitsOriginally the issuing municipality or book number402
Sequential7 digitsSequential number within the book2028973
Check digit1 digit0–9, computed with the Luhn algorithm6

The traditional format with dashes is 402-2028973-6, but many systems store it as a plain 11-digit string (40220289736). This validator accepts both. The municipality code is historical — the validator does not verify it against a list of valid municipalities, only that the total is 11 digits with a correct check digit.

The Luhn check digit, step by step

The Luhn algorithm works on the first 10 digits to produce the 11th. Starting from the leftmost digit, multiply alternating digits by 1 and 2 (positions 1, 3, 5… get ×1; positions 2, 4, 6… get ×2). If a doubled value is 10 or more, subtract 9. Sum all the results, and the check digit is the number that makes the total a multiple of 10.

Cédula body: 4 0 2 2 0 2 8 9 7 3
Weights:      1 2 1 2 1 2 1 2 1 2

4×1=4  0×2=0  2×1=2  2×2=4  0×1=0
2×2=4  8×1=8  9×2=18→9  7×1=7  3×2=6

Sum = 4+0+2+4+0+4+8+9+7+6 = 44
Check = (10 − 44 mod 10) mod 10 = (10−4) mod 10 = 6

→ 402-2028973-6
Worked example: the check digit for 4022028973 is 6.

Validating cédulas in Excel, Google Sheets, and SQL

To quickly filter a cédula column for basic format errors, the regular expression below catches anything that is not 11 digits. The Luhn check itself requires cell-level formulas or code, but the format filter eliminates junk instantly.

Google Sheets (A2 = cédula, dashes removed):
=REGEXMATCH(SUBSTITUTE(A2,"-",""), "^[0-9]{11}$")

Excel 365 (2024 and later):
=REGEXTEST(SUBSTITUTE(A2,"-",""), "^[0-9]{11}$")
Basic format check — catches non-numeric characters and wrong digit counts, but does not verify the Luhn check digit.
-- PostgreSQL: find cédulas with bad format
SELECT cedula FROM ciudadanos
WHERE REPLACE(cedula, '-', '') !~ '^[0-9]{11}$';

-- MySQL 8
SELECT cedula FROM ciudadanos
WHERE REPLACE(cedula, '-', '') NOT REGEXP '^[0-9]{11}$';
SQL queries to find invalid-format cédulas. The Luhn check digit requires code or a stored function — validate it here in bulk.

FAQ

Does this validator confirm the cédula is registered with the JCE?

No — and no outside tool can. This checks the format and the Luhn check digit, which is enough to catch typos and invented numbers. To confirm a cédula is actually registered and active, use the JCE's own verification services. The efficient workflow is to bulk-clean here first, then query the JCE only for the entries that passed.

What is the Luhn algorithm?

Luhn (also called mod-10) is a checksum formula used worldwide — credit cards, IMEI numbers, and many national IDs use it. It doubles every other digit, sums the results (subtracting 9 from products over 9), and checks that the total is divisible by 10. It catches every single-digit mistake and most adjacent-digit swaps.

Is it safe to paste real cédula numbers?

Yes. Validation runs entirely in your browser with JavaScript: the numbers are never sent to any server, there are no accounts or logging, and you can prove it by disconnecting from the internet after the page loads — the tool keeps working.

Related tools