| Code | Scope | Length | Check digit | Confidence |
|---|---|---|---|---|
AR_DNI |
personal | 7-8 | none | high (format) |
AR_CUIL |
personal (labor) | 11 | mod-11 | high |
AR_CUIT |
tax | 11 | mod-11 | high |
AR_CDI |
tax (alterno) | 11 | mod-11 | high |
AR_DNI — Documento Nacional de IdentidadPersonal identity document issued by RENAPER. Has no check digit on its own; validation is length + digits only.
00.000.000 (7-8 digits with thousands separators)AR_CUIL — Clave Única de Identificación LaboralSame algorithm and length as CUIT, but issued by ANSES for labor purposes. Validates with the same mod-11.
XX-DDDDDDDD-VSee CUIT below — identical.
AR_CUIT — Clave Única de Identificación TributariaTax identifier. Issued by AFIP (renamed ARCA — Agencia de Recaudación y Control Aduanero — per Decreto 953/2024). Despite the rebrand, format and algorithm are unchanged.
20, 23, 24, 25, 26, 27 for personas físicas; 30, 33, 34 for personas jurídicasXX-DDDDDDDD-Vmod-11 with weights [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] over the first 10 digits.
sum = sum(digit[i] * weights[i] for i in 0..9)
r = sum mod 11
dv = 11 - r
if dv == 11: dv = 0
if dv == 10: number is invalid by convention.
AFIP issues prefix 23 or 24 instead of 20/27 for these persons
(RG AFIP 10/97 § 4) and recomputes.
dv == 10)validator.js and Argentine fintech librariesafip.gob.ar URLs continue to work.AR_CDI — Clave de IdentificaciónIdentifier assigned by ARCA (ex-AFIP) to natural persons who do not hold CUIT or CUIL but must appear in tributary operations: extranjeros sin obligación tributaria, sucesiones indivisas, menores, herederos. Same algorithm and length as CUIT/CUIL; only the prefix is different.
50 (asignado por ARCA cuando no hay DNI)XX-DDDDDDDD-VIdentical to AR_CUIT — mod-11 with weights [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] over the first 10 digits. The library reuses computeCuitDV from src/countries/ar/shared.ts; the only difference vs CUIT/CUIL is the allowed prefix set ({ "50" }).
valid:
- 50-12345678-2
- 50-11111111-9
- 50-00000000-8
- 50-98765432-2
- 50-50000000-4
invalid (format):
- "" (empty)
- 5012345678 (10 digits)
- 501234567823 (12 digits)
- 20-12345678-6 (CUIT prefix; correct CUIT DV but rejected as CDI)
- 30-70123456-8 (CUIT prefix; correct CUIT DV but rejected as CDI)
invalid (checksum):
- 50-12345678-0
- 50-11111111-0
- 50-50000000-5
python-stdnum.ar.cuit validates CUIT/CUIL/CDI identically (same algorithm). validator.js isTaxID('es-AR') only knows the CUIT prefixes and rejects CDI's 50 prefix; this is a documented divergence (validator.js covers the tax-id subset, not the CDI fallback).None. The 50 prefix is the documented CDI assignment per RG AFIP 3995/2017; algorithm parity with CUIT is reaffirmed in the same regulation.
AR_PASAPORTE — PasaporteTravel document issued by RENAPER. Legacy issuances used a 9-digit numeric sequential number; post-2012 passports use a pseudo-random alphanumeric of similar length (8-9 chars).
None on the printed number. MRZ check digit lives in
algorithms/icao-9303.ts.
low — RENAPER has not published the post-2012 alphanumeric format spec.