EN 16931 合规性检查:Peppol、Factur-X 与 ZUGFeRD 官方规则对照
我们使用官方的 EN 16931 验证规则对 Nordlet 生成的发票文件进行了检测。Peppol 和罗马尼亚的文件顺利通过,而 Factur-X 文件违反了两项规则,本文将逐一指出。
EN 16931 是欧洲电子发票内容的统一标准。它定义了发票应包含的业务术语(如销售方、采购方、明细行、增值税明细、总计金额)以及这些术语必须满足的业务规则,例如增值税明细之和必须等于发票总额。该标准可以使用两种 XML 格式编写:UBL 2.1 和 UN/CEFACT 跨行业发票(CII)。
大多数欧洲电子发票格式都是基于 EN 16931 构建的:
- Peppol BIS Billing 3.0 是采用 UBL 格式的 EN 16931,并附加了 Peppol 的特定规则。
- 罗马尼亚 e-Factura (CIUS-RO) 是采用 UBL 格式的 EN 16931,并附加了罗马尼亚的特定规则。
- Factur-X(法国)和 ZUGFeRD 2.3(德国)采用 CII 格式承载 EN 16931。在 Nordlet 使用的“EN 16931”配置档案(profile)中,这两种格式采用相同的 XML。
如果某张发票违反了 EN 16931 的规则,它也会同时违反基于该标准构建的所有格式。
检测方法
欧盟委员会(European Commission)参照了电子发票欧洲标准化委员会技术委员会(CEN/TC 434)在 GitHub 上发布的验证规则。我们针对 UBL 和 CII 使用了截至 2026 年 10 月 12 日的最新版本 1.3.17。这些规则采用 Schematron 编写并编译为 XSLT,我们使用 Saxon-HE 12.5 XSLT 引擎运行了这些规则。
发票文件由 Nordlet 的当前代码根据样本数据生成。销售方为立陶宛公司;采购方包括一家立陶宛公司、一家德国公司,以及在 Peppol 导出场景下的一家美国公司。样本发票包含一个 21% 税率的明细行和一个带有免税说明的 0% 税率明细行。
检测结果
| Nordlet 生成的内容 | 检测文件数 | 结果 |
|---|---|---|
| Peppol BIS Billing 3.0 (UBL) | 7: 国内发票、贷记单(credit note)、欧盟内销售、出口、反向征收(reverse charge)、销售方未进行增值税登记、带折扣的美元发票 | 全部通过:0 个错误,0 个警告 |
| 罗马尼亚 e-Factura (UBL, CIUS-RO) | 4: 国内发票、贷记单、欧盟内销售、带折扣的美元发票 | 全部通过 |
| Factur-X / ZUGFeRD (CII, EN 16931 配置档案) | 4: 国内发票、贷记单、欧盟内销售、带折扣的美元发票 | 全部 4 个文件未通过,各含 1 个错误 |
Factur-X 文件违反的两项规则
BR-Z-10:零税率明细行不得包含免税原因
EN 16931 针对 0% 税率(“Z”,零税率)和免税供应(“E”,免税)规定了不同的增值税分类。只有免税供应才需要说明原因。规则 BR-Z-10 规定,税率分类为“Z”的增值税明细不得包含免税原因代码(BT-121)或免税原因文本(BT-120)。
Factur-X 生成器在每个零税率明细中都写入了“Taux zéro”原因文本,导致四个文件中有三个验证失败。它同时忽略了明细行上输入的免税备注。Peppol 生成器对同一明细行的处理则符合规范:当 0% 的明细行带有免税备注时,它会将该行记为免税(“E”),并将该备注作为原因。
BR-IC-12:欧盟内销售必须指明交付国家/地区
规则 BR-IC-12 规定,当增值税明细分类为“K”(欧盟内供应)时,收货国家/地区代码(BT-80)不得为空。交付国家/地区用于证明货物已离开销售方所在国家。
Factur-X 生成器未写入收货国家/地区,因此欧盟内销售文件验证失败。Peppol 生成器在此类销售中会将采购方所在国家写入为交付国家。
本次检测未涵盖的范围
- XML 模式(Schema)。 我们仅运行了业务规则,未进行 UBL 和 CII 模式(XSD)检查。
- Nordlet 未写入的字段。 文件中不存在的术语规则未参与运行。例如单据级费用、预付金额、计费期间以及采购订单引用。
- EN 16931 之外的国家/地区规则。 我们未检查法国电子发票改革规则或德国 XRechnung 规则。Peppol 的特定规则由 Nordlet 的另一个脚本使用 OpenPeppol 规则集进行检查。
- Factur-X 的 PDF 部分。 Factur-X 发票是一个附加了 XML 的 PDF/A-3 文件。本次检测仅针对 XML 部分。