跳到主要内容
LeedyBox
支持我们

西班牙 DNI、NIE、NIF 与校验字母

西班牙的身份号码和税号末尾都带一个校验字符。DNI 和 NIE 的校验字母由数字经一个简单计算得出,计算方法由西班牙内政部公布。本指南介绍三种号码的区别、计算步骤,以及校验字母正确时能说明什么、不能说明什么。

三个相互关联的号码

NIF(número de identificación fiscal)是税务识别号。对大多数人来说,NIF 并不是另一个号码:西班牙公民使用身份证 DNI 的号码,外国居民使用外国人识别号 NIE。两者都没有的个人和机构,由税务局(Agencia Tributaria)分配 NIF。

号码适用对象格式示例
DNI(兼作 NIF)西班牙公民8 位数字 + 校验字母12345678Z
NIE(兼作 NIF)外国人X、Y 或 Z + 7 位数字 + 校验字母X1234567L
K、L、M 开头的 NIF没有 DNI 或 NIE 的人(K:居住在西班牙的 14 岁以下公民;L:居住在国外的公民;M:没有 NIE 的外国人)K、L 或 M + 7 个字符 + 校验字母–
实体的 NIF公司、协会、公共机构等法律形式字母 + 7 位数字 + 校验字符–

K、L、M 号码由税务通用条例(Real Decreto 1065/2007 第 19、20 条)规定,由一个字母、7 个字母数字字符和一个字母校验字符组成。DNI 条例(Real Decreto 255/2025 第 12 条)只规定证件上印有号码和校验字符,具体算法公布在西班牙内政部网站上。

DNI 校验字母的计算

校验字母就是号码除以 23 的余数,再换成字母:

  1. 把 DNI 的 8 位数字看作一个整数。
  2. 除以 23,取余数(0 到 22)。
  3. 在表中查出余数对应的字母。
余数01234567891011
字母TRWAGMYFPDXB
余数1213141516171819202122
字母NJZSQVHLCKE

计算示例(西班牙内政部的示例):12345678 ÷ 23 = 536,768,余 14(23 × 536,768 = 12,345,664,12,345,678 − 12,345,664 = 14)。余数 14 对应 Z,所以完整的 DNI 是 12345678Z。

写成代码只要一行:字母为 "TRWAGMYFPDXBNJZSQVHLCKE"[号码 % 23]。表中只有 23 个字母,所以 I、Ñ、O、U 永远不会是校验字母。DNI 末尾如果出现这些字母,说明抄写有误。

NIE:先换掉 X、Y、Z

NIE 由 X、Y、Z 中的一个字母、7 位数字和校验字母组成。计算前,先把首字母换成数字:X 换成 0,Y 换成 1,Z 换成 2。这样得到 8 位数字,之后的步骤与 DNI 相同。

计算示例:X1234567 变为 01234567。1,234,567 ÷ 23 余 19(23 × 53,676 = 1,234,548),19 对应 L,所以 NIE 是 X1234567L。同样的数字若以 Y(11234567)或 Z(21234567)开头,字母就会不同,因此首字母也要照抄准确。

校验字母能发现什么,不能证明什么

校验字母用来发现输入错误。23 是比任何一位数都大的质数,改动任意一位数字,余数一定会变,所以写错一位数字必然得到另一个字母。交换相邻两位数字时,号码的变化量是 9 乘以 10 的幂的倍数,23 同样不能整除,所以这种错误也能发现。写错两位或更多时,偶尔可能碰巧得到同一个字母。

校验字母无法证明号码真实存在。每个 8 位数字都有唯一正确的字母,所以数以百万计从未签发过的号码也能通过校验。只有签发机构能确认号码是否存在:DNI 和 NIE 是内政部,其他 NIF 是税务局。

K、L、M 和企业 NIF

税务通用条例只规定了 K、L、M 号码的结构,没有规定校验字母的计算方法。企业和其他实体的 NIF 结构由 Orden EHA/451/2008 规定:表示法律形式的字母、7 位随机数字和一个校验字符。该法令列出了字母,但同样没有公布校验字符的算法。因此 LeedyBox 校验工具会识别这些号码并显示法律形式,但不校验最后一个字符。

首字母法律形式(Orden EHA/451/2008)
ASociedades anónimas(股份有限公司)
BSociedades de responsabilidad limitada(有限责任公司)
C、DSociedades colectivas、sociedades comanditarias(普通合伙、有限合伙)
EComunidades de bienes、herencias yacentes 等无法人资格的实体
F、G、H、J合作社、协会、业主共同体、民事合伙
P、Q、R、S地方政府、公共机构、宗教团体、国家和自治区行政机关
U、V临时企业联合体(UTE)、其他类型
N、W外国实体、非居民实体的常设机构

书写与存储号码

  • 字母大写,中间不留空格:12345678Z。很多表格允许在字母前加连字符,比较两个号码前先去掉空格、句点和连字符。
  • 把 DNI 存成文本而不是整数。存进数字列会丢掉开头的 0 和字母。
  • 输入时检查字母可以及早发现笔误,但不要把字母正确当作身份核验。
  • DNI 和 NIE 能识别个人,属于个人信息,不要放进 URL、日志或统计分析工具。

开发用测试号码

测试表单和数据库需要能通过校验的示例号码。校验工具可以生成校验字母正确的随机 DNI 和 NIE。它们仅供测试:随机号码可能恰好与真实个人的号码相同,绝不能在真实数据、发票或文件中当作任何人的号码使用。

常见问题

NIF 和 DNI 是同一个号码吗?

对西班牙公民来说是的:NIF 就是 DNI 号码加上字母。外国居民用 NIE 作为 NIF,两者都没有的人会从税务局获得以 K、L 或 M 开头的号码。

CIF 是什么?

CIF 是企业税号的旧称。现在企业使用的 NIF 由法律形式字母、7 位数字和校验字符组成。

为什么我的 DNI 字母显示错误?

请对照证件逐一核对数字和字母。I、Ñ、O、U 一定是错的,只要调换两位数字,正确的字母也会改变。

能查出号码属于谁吗?

不能。字母只由数字计算得出,不含持有人信息,校验工具也不会到任何地方查询号码。

来源

来源:Ministerio del Interior: Cálculo del dígito de control del NIF/NIE (Internet Archive, 2025-12-30) · 核对日期:

来源:BOE: Real Decreto 255/2025, de 1 de abril, por el que se regula el Documento Nacional de Identidad · 核对日期:

来源:BOE: Real Decreto 1065/2007 (Reglamento General de gestión e inspección tributaria), artículos 19 y 20 · 核对日期:

来源:BOE: Orden EHA/451/2008 (texto consolidado, modificada por la Orden HAP/5/2016) · 核对日期: