巴西 CPF 和 CNPJ:校验位与字母数字 CNPJ
在巴西,购物、签合同、开发票几乎都要填写 CPF(个人税号)或 CNPJ(企业等法人的税号)。两者最后两位都是按巴西联邦税务局(Receita Federal)的模 11 规则算出的校验位。自 2026 年 7 月起,新分配的 CNPJ 还可以包含字母。本指南介绍两种号码的结构、用联邦税务局示例说明校验位的算法,以及字母数字 CNPJ 对软件的影响。
号码一览
| 号码 | 对象 | 格式 | 示例 |
|---|---|---|---|
| CPF(Cadastro de Pessoas Físicas) | 个人 | 11 位:000.000.000-00 | 280.012.389-38 |
| CNPJ(纯数字) | 企业及其他法人 | 14 位:00.000.000/0000-00 | 18.781.203/0001-28 |
| CNPJ(字母数字) | 2026 年 7 月起的新登记 | 12 个 0–9 或 A–Z 字符加 2 位数字 | 12.ABC.345/01DE-35 |
三个示例均出自联邦税务局文件:CPF 和纯数字 CNPJ 来自 e-Financeira 版式手册,字母数字 CNPJ 来自其校验位计算说明。
CPF 的结构
CPF 共 11 位。第 9 位是首次登记时所填地址的税务区(Região Fiscal),最后两位是校验位。联邦税务局列出的税务区为:1 DF、GO、MT、MS、TO;2 PA、AM、AC、AP、RO、RR;3 CE、MA、PI;4 PE、RN、PB、AL;5 BA、SE;6 MG;7 RJ、ES;8 SP;9 PR、SC;0 RS。搬家后不会改变,因此不能说明此人现在住在哪里。
CPF 校验位的计算
- 把前 9 位依次乘以 10、9、8、7、6、5、4、3、2,求和。
- 和除以 11。余数为 0 或 1 时第一位校验位为 0,否则为 11 减余数。
- 第二位:用包括第一位校验位在内的前 10 位,依次乘以 11、10、…2,按同样规则计算。
示例:280.012.389:2×10 + 8×9 + 0×8 + 0×7 + 1×6 + 2×5 + 3×4 + 8×3 + 9×2 = 162。162 = 14 × 11 + 8,第一位为 11 − 8 = 3。接着 2×11 + 8×10 + 0×9 + 0×8 + 1×7 + 2×6 + 3×5 + 8×4 + 9×3 + 3×2 = 201 = 18 × 11 + 3,第二位为 11 − 3 = 8。结果为 280.012.389-38。
联邦税务局手册对同一规则的写法不同:从最后一位起依次乘以权重 9、8、…1、0,余数为 10 时记为 0。两种写法得到的结果始终相同。
CNPJ 的结构
CNPJ 共 14 位,写作 AA.AAA.AAA/AAAA-DV:8 位主体号(raiz)标识法人,4 位机构序号(ordem)标识具体机构,最后是 2 位校验位。过去每一位都是数字。据联邦税务局介绍,自 2026 年 7 月起只向新登记主体分配字母数字 CNPJ,主体号和机构序号中可以含大写字母 A–Z,校验位仍为数字。已有的 CNPJ 号码不变。
CNPJ 校验位(含字母时同样适用)
- 前 12 个字符每个按其 ASCII 码减 48 计值。数字保持原值(0–9),A = 17、B = 18 … Z = 42。
- 权重 2、3、4、5、6、7、8、9 从右往左分配,到 9 后重新从 2 开始;12 个字符从左到右的权重为 5、4、3、2、9、8、7、6、5、4、3、2。
- 相乘求和后除以 11。余数为 0 或 1 时为 0,否则为 11 减余数。
- 第二位用 13 个字符(12 个加第一位校验位)按同样方法计算。
示例:12.ABC.345/01DE 的值为 1、2、17、18、19、3、4、5、0、1、20、21。乘积 5、8、51、36、171、24、28、30、0、4、60、42 之和为 459 = 41 × 11 + 8,所以第一位是 11 − 8 = 3。第二次计算得 5,完整号码为 12.ABC.345/01DE-35。由于数字保持原值,18.781.203/0001-28 这样的纯数字 CNPJ 计算结果与以前完全相同。
软件需要调整的地方
- CNPJ 按文本存储。数值类型的字段存不了字母,还会丢掉前导 0。14 个字符的文本字段可同时容纳两种格式。
- 只允许前 12 位出现字母。去掉点、斜杠和连字符后,正确的形式是 12 个 0–9 或 A–Z 字符再加 2 位数字。
- 统一为大写。联邦税务局使用大写字母;校验前把输入转换为大写可避免误判。
- 检查输入掩码和校验代码。假定 14 位纯数字的掩码、正则表达式和程序库会拒绝新号码。
- CPF 不变。变化只涉及 CNPJ,CPF 仍是纯数字。
校验通过不能证明什么
- 是否已登记。随机号码大约每 100 个就有 1 个两位校验位都对。CPF 或 CNPJ 是否已登记及其状态(situação cadastral)只能向联邦税务局查询。
- 是否属于本人。抄来的他人真实号码也能通过校验。
- 重复数字。111.111.111-11 之类的号码算术上成立,但常被当作占位号码,校验工具会给出提醒。
常见问题
2026 年已有的 CNPJ 会改变吗?
不会。据联邦税务局介绍,字母数字 CNPJ 自 2026 年 7 月起只分配给新登记主体,已有号码不变。
CNPJ 的校验位会是字母吗?
不会。两位校验位始终是数字,字母只出现在主体号和机构序号中。
CPF 也会变成字母数字吗?
不会。联邦税务局公布的变化针对的是 CNPJ。
校验工具能查出号码属于谁吗?
不能。它只在浏览器中计算校验位,不会到任何登记系统中查询号码。
来源
来源:Receita Federal: folheto «Cadastros – CPF e CNPJ» · 核对日期:
来源:Receita Federal: Cálculo do DV do CNPJ Alfanumérico · 核对日期:
来源:Receita Federal / Serpro: Cálculo dos dígitos verificadores de CNPJ alfanumérico · 核对日期:
来源:Receita Federal: CNPJ alfanumérico – Perguntas e respostas · 核对日期:
来源:Receita Federal: CNPJ Alfanumérico · 核对日期: