Enterprise 版本
发票
NextPDF Enterprise 生成 ZUGFeRD / Factur-X / Peppol-UBL 结构化混合发票,并依据 EN 16931 数据模型与 Schematron 规则集校验发票 XML。它产出符合 EN 16931 所定义数据模型的结构化发票;它不是税务机关的校验器,也不对任何文档进行认证。
可用性与授权
标题为“可用性与授权”的章节此能力随 NextPDF Enterprise(nextpdf/enterprise)发行,并在一个 Enterprise 层级授权信封下激活。一个不具备该权益的部署不会加载此能力的类。比较版本并获取授权。
composer require nextpdf/enterprise:^3Schematron 引擎使用 PHP 的 ext-xsl 扩展。在运行 Schematron 校验之前,请安装并启用它。
概念概述
标题为“概念概述”的章节Invoice 模块有三个相互独立的表面:结构化发票嵌入、EN 16931 XML 校验,以及 Schematron 规则执行。
嵌入。 ZugferdEmbedder 将调用方提供的 ZUGFeRD 2.4 / Factur-X 1.08 UN/CEFACT CII XML 载荷附加到一个 PDF/A 载体上,产出一份混合发票。支持两种载体格式:PDF/A-4f(ISO 19005-4:2020),首选的现代载体;以及用于向后兼容的 PDF/A-3b(ISO 19005-3:2012)。ZugferdXmpSchema 注入载体所需的 Factur-X XMP 扩展 schema 声明。PeppolEmbedder 为调用方提供的 Peppol BIS Billing 3.0 UBL 2.1 发票或贷记单 XML 执行相同的角色,以正确的关联文件关系与 MIME 类型将其附加。NextPDF 不合成发票 XML;调用方提供有效的 XML,并始终是发票开具方。
校验。 InvoiceXmlValidator 依据 EN 16931 语义数据模型以及 ZUGFeRD / Factur-X 容器期望来检查发票 XML,其中包括 EN 16931 业务规则 BR-1 所要求的 BT-24 规范标识符。它以两种模式之一运行:COMPAT(默认;处于临界的 EN 16931 基数发现项会被报告为警告,以为现有夹具保留向后兼容性)与 STRICT(BT-24 基数是一个硬错误,镜像外部校验器的语义)。该模式可按调用、通过环境覆盖,或通过符合性策略选择。
Schematron。 SchematronValidator 使用进程内的 PHP XSLT 处理器,针对发票 XML 运行预编译的 Schematron 规则集(CEN EN 16931 .sch 规则在构建时编译为 XSLT),并将 SVRL 报告解析为结构化发现项。ZugferdProfile 枚举建模各符合性配置文件——MINIMUM、BASIC WL、BASIC、EN 16931、EXTENDED,以及德国 XRechnung B2G CIUS over EN 16931。
本模块主张与不主张什么
标题为“本模块主张与不主张什么”的章节本模块产出并检查结构化发票数据。它不主张任何文档是一份合法合规的发票、是经税务机关批准的,或保证会被任何机关接受。
- 校验器仅检查 EN 16931 语义模型以及 ZUGFeRD / Factur-X / UBL 容器。它不是税务机关校验器。各国扩展与清算平台——例如意大利 SDI、法国 Chorus Pro、德国 XRechnung 传输——在传输层面不在范围内。
- 正如 EN 16931-1 本身所述,核心语义模型携带一份电子发票为支持法律与财税合规所需的关键信息;发票开具方负责满足相关法律的规则。这不是税务机关校验器。
- 对某项标准的支持并不等同于对它的符合性。请咨询你的税务与合规顾问,以判断在你所辖司法管辖区内的监管充分性。
为何如此设计
标题为“为何如此设计”的章节本模块刻意从不合成发票 XML。嵌入、EN 16931 校验与 Schematron 执行是覆盖于调用方提供并拥有的 XML 之上的三个相互独立的表面。这使 NextPDF 始终是一个生产器与检查器,而绝不是开具方,因为法律责任无法被委托给一个库。校验默认为 COMPAT,因此一个处于临界的基数发现项是一条警告,而非一处回退。当你需要外部校验器的语义时,STRICT 是可选启用的。其结果是一种清晰的分离:NextPDF 报告它所观察到的内容,而由开具方来判定该文档是否满足法律。
设计背景:发票与电子发票。
API 表面
标题为“API 表面”的章节| 类 | 职责 |
|---|---|
ZugferdEmbedder | 将 ZUGFeRD / Factur-X CII XML 附加到 PDF/A-4f 或 PDF/A-3b 载体。 |
ZugferdXmpSchema | 注入 Factur-X XMP 扩展 schema 声明。 |
ZugferdProfile | 符合性配置文件枚举(MINIMUM … EXTENDED、XRECHNUNG)。 |
PeppolEmbedder | 将 Peppol BIS 3.0 UBL 发票/贷记单 XML 附加到 PDF/A 载体。 |
InvoiceXmlValidator | 依据 EN 16931 数据模型检查 XML;COMPAT 或 STRICT 模式。 |
InvoiceValidatorMode | 校验模式枚举:COMPAT(默认)或 STRICT。 |
SchematronValidator | 运行预编译的 Schematron 规则集;解析 SVRL 发现项。 |
InvoiceValidationResult / SchematronResult | 结构化结果:配置文件、发现项、严重级别。 |
代码示例——快速开始
标题为“代码示例——快速开始”的章节use NextPDF\Enterprise\Invoice\ZugferdEmbedder;use NextPDF\Enterprise\Invoice\ZugferdProfile;
$pdf = ZugferdEmbedder::basic($pdfAManager, $fileAttachment, $ciiXml) ->embed(ZugferdProfile::EN16931);代码示例——生产环境
标题为“代码示例——生产环境”的章节use NextPDF\Enterprise\Invoice\InvoiceXmlValidator;use NextPDF\Enterprise\Invoice\InvoiceValidatorMode;
$result = $validator->validate($ciiXml, InvoiceValidatorMode::STRICT);
foreach ($result->findings as $finding) { $logger->warning('invoice.finding', [ 'rule' => $finding->ruleId, 'severity' => $finding->severity->value, ]);}// A clean result is one input to your decision, not a compliance verdict.// The invoice issuer remains responsible for relevant legislation.边界情况与陷阱
标题为“边界情况与陷阱”的章节- 一份格式良好但不携带可识别发票载荷的 PDF 会产出一个“不是发票”的结果,而不是抛出异常。
COMPAT是默认的校验模式:缺失 BT-24 规范标识符会被报告为一条警告,因此那些以一个布尔有效性标志为闸门的调用处不会回退。使用STRICT可让 BT-24 成为一个匹配外部 KoSIT / Mustang 语义的硬错误。- 调用方提供发票 XML。NextPDF 不生成或纠正它;一个空的发现项列表并不能让一份不符合的载荷变得符合。
- Schematron 引擎需要
ext-xsl。规则集在构建时编译;运行时只执行预编译的 XSLT。
校验成本随嵌入的 XML 大小与 Schematron 规则数量而扩展。嵌入成本随载体大小而扩展,并主要由 PDF/A 序列化所主导。页面性能预算反映的是文档渲染,而非发票吞吐量。
安全说明
标题为“安全说明”的章节所有 XML 解析都经由加固的 XML 守卫:外部实体解析被禁用(XXE 安全)、DOCTYPE 被拒绝,且解压缩有界。XSLT 处理器在禁用网络与文件系统资源加载的情况下运行,且从不注册 PHP 函数,因此 document()、xsl:include、xsl:import 与 result-document 无法触及网络或磁盘。请将来自不受信任来源的发票 XML 视为敌意输入。
数据驻留与 PII 缓解
标题为“数据驻留与 PII 缓解”的章节发票 XML 可能包含个人、商业与财务数据。处理是在进程内且在本地进行的;本模块在嵌入或校验期间不发起任何对外网络调用。请对抽取出的 XML 与发现项施加你自己的留存与最小化控制。
安全遥测与日志清洗
标题为“安全遥测与日志清洗”的章节发现项与校验日志可能包含规则标识符与标签值。它们不包含完整的发票载荷。如果那些值是敏感的,请在将日志转发到共享接收端之前将字段值清洗或脱敏。
符合性
标题为“符合性”的章节| 行为 | 引用 | 状态 |
|---|---|---|
| 核心发票语义模型 | EN 16931-1:2026 §4 | 已据此构建;开具方仍需对相关法律负责 |
| 规范标识符(BT-24) | EN 16931-1:2026 BR-1 | 已检查(COMPAT 中为警告,STRICT 中为错误) |
| UN/CEFACT CII 语法绑定 | CEN/TS 16931-3-3:2020 | 支持嵌入 |
| UBL 2.1 语法绑定 | CEN/TS 16931-3-2:2020 | 支持嵌入 |
| PDF/A-3 关联文件 | ISO 19005-3:2012 §6.7.8 | 支持载体 |
| PDF/A-4f 嵌入文件 | ISO 19005-4:2020 Annex A | 支持载体 |
本表记录了 NextPDF Enterprise 据以构建的规范以及它所检查的内容。它不是对认证、税务机关批准或监管充分性的陈述。发票开具方负责满足相关法律的规则;这不是税务机关校验器。
FIPS 模式行为
标题为“FIPS 模式行为”的章节本模块不执行任何密码学签署。对混合发票进行签署以及 FIPS 模式密钥保管在此不在范围内;请参阅 Signature 模块。
威胁模型
标题为“威胁模型”的章节不受信任的发票 XML 是主要输入。缓解措施:XXE 安全的解析、DOCTYPE 拒绝、有界解压缩、一个禁用网络与文件资源加载的 XSLT 处理器,以及不合成任何主张——调用方提供并拥有发票内容。
行为契约
标题为“行为契约”的章节ZugferdEmbedder/PeppolEmbedder将调用方提供的发票 XML 附加到一个 PDF/A-4f 或 PDF/A-3b 载体上;NextPDF 绝不合成发票 XML。InvoiceXmlValidator以COMPAT(默认;处于临界的 EN 16931 基数为警告)或STRICT(BT-24 基数是一个硬错误)运行。SchematronValidator经由进程内的 XSLT 处理器执行预编译的规则集,并解析 SVRL 发现项;一个空的发现项列表并不能让一份不符合的载荷变得符合。- 所有 XML 解析都是 XXE 安全的:外部实体解析被禁用、
DOCTYPE被拒绝、解压缩有界。
发布边界
标题为“发布边界”的章节本页面仅记录外部可观察的行为以及受支持的公共 API 表面。内部命名空间路径、辅助类、机制表、运行手册文件名以及工单前缀不在范围内。
Core 回退
标题为“Core 回退”的章节NextPDF Core 不生成或校验结构化发票。一个仅使用 Core 的部署可以产出一份 PDF,但没有 ZUGFeRD / Factur-X / Peppol 嵌入、没有 EN 16931 校验器,也没有 Schematron 引擎。
Pro 回退
标题为“Pro 回退”的章节在仅使用 Pro 的部署中,受支持的表面是对 Factur-X / ZUGFeRD 载荷的 Pro 层级电子发票检测与校验。Pro 不生成 ZUGFeRD / Factur-X 或 Peppol-UBL 混合载体、不增加 XRechnung CIUS 配置文件,也不运行进程内的 Schematron 引擎;在仅使用 Pro 的部署中,一个请求生成、XRechnung CIUS 配置文件或 Schematron 的配置没有可满足它的 Enterprise 组件。Pro 检测与校验表面请参阅 Pro Compliance。
Enterprise 边界说明
标题为“Enterprise 边界说明”的章节内部机制细节留存于源代码仓库的内部文档中,不在本手册的范围内。
部署边界
标题为“部署边界”的章节Schematron 引擎需要 ext-xsl PHP 扩展;供给并启用它是运维方的责任。处理是在进程内且在本地进行的;本模块在嵌入或校验期间不发起任何对外网络调用。各国电子发票传输、清算平台与归档系统在本模块之外,是运维方的责任。
法律合规边界
标题为“法律合规边界”的章节NextPDF 产出符合 EN 16931 所定义数据模型的结构化发票,并报告规则发现项。它不产出“合法合规的发票”、不提供“经税务机关批准的”输出,也不保证任何发票会被某个税务机关、法院或登记机构接受。发票开具方负责满足相关法律的规则;这不是税务机关校验器。各国电子发票平台、清算模型、归档强制规定与数字签名要求因司法管辖区而异,是开具方的责任。请咨询你的税务与法律顾问。
另请参阅
标题为“另请参阅”的章节- 发票参考——嵌入器、校验器与 Schematron 引擎的 API 级参考。
- Pro Compliance——Pro 层级电子发票检测与校验。
- Document E-Filing——法院/登记机构投递优化。
- Enterprise 概述
- Core、Pro 与 Enterprise 功能对照表