跳到內容
getnextpdf.com

Enterprise 版本

發票

NextPDF Enterprise 會產生 ZUGFeRD / Factur-X / Peppol-UBL 結構化混合發票,並對照 EN 16931 資料模型與 Schematron 規則集驗證發票 XML。它產出符合 EN 16931 所定義資料模型的結構化發票;它不是稅務機關驗證器,也不對任何文件進行認證。

此功能隨附於 NextPDF Enterprisenextpdf/enterprise),並在 Enterprise 層級的授權封套下啟用。沒有該權利的部署不會載入此功能的類別。比較各版本並取得授權

Terminal window
composer require nextpdf/enterprise:^3

Schematron 引擎使用 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 擴充結構描述宣告。PeppolEmbedder 對呼叫端提供的 Peppol BIS Billing 3.0 UBL 2.1 發票或貸項通知單 XML 執行相同的角色,並以正確的關聯檔案關係與 MIME type 加以附加。NextPDF 不會合成發票 XML;由呼叫端提供有效的 XML,並仍然是發票的開立者。

驗證。InvoiceXmlValidator 會對照 EN 16931 語意資料模型以及 ZUGFeRD / Factur-X 容器期望檢查發票 XML,包含 EN 16931 業務規則 BR-1 所要求的 BT-24 規範識別碼。它以兩種模式之一執行:COMPAT(預設;臨界的 EN 16931 基數發現會以警告形式回報,以保留現有 fixture 的向後相容性)與 STRICT(BT-24 基數為硬性錯誤,對應外部驗證器的語意)。模式可逐次呼叫選擇、以環境覆寫設定,或依一致性原則決定。

Schematron。SchematronValidator 會使用行程內的 PHP XSLT 處理器,對發票 XML 執行預先編譯的 Schematron 規則集(CEN EN 16931 .sch 規則於建置時編譯為 XSLT),並將 SVRL 報告剖析為結構化發現。ZugferdProfile enum 對一致性設定檔建模——MINIMUM、BASIC WL、BASIC、EN 16931、EXTENDED,以及建構於 EN 16931 之上的德國 XRechnung B2G CIUS。

本模組會產出並檢查結構化發票資料。它主張任何文件是合法合規的發票、已獲稅務機關核可,或保證會被任何機關接受。

  • 驗證器僅檢查 EN 16931 語意模型以及 ZUGFeRD / Factur-X / UBL 容器。它不是稅務機關驗證器。各國延伸與清算平台——例如義大利 SDI、法國 Chorus Pro、德國 XRechnung 傳輸——在傳輸層級皆不在範圍內。
  • 正如 EN 16931-1 本身所述,核心語意模型承載電子發票支援法律與財稅合規所需的必要資訊;發票開立者有責任符合相關法規的規定。這不是稅務機關驗證器。
  • 支援某項標準不等於符合該標準。請洽詢你的稅務與合規顧問,以判斷在你所在司法管轄區的法規充分性。

本模組刻意絕不合成發票 XML。嵌入、EN 16931 驗證與 Schematron 執行,是建構於呼叫端提供並擁有的 XML 之上的三個獨立介面。這讓 NextPDF 始終是產出者與檢查者,而絕非開立者,因為法律責任無法委派給函式庫。驗證預設為 COMPAT,因此臨界的基數發現是警告而非回歸。當你需要外部驗證器的語意時,STRICT 為選擇性啟用。其結果是一種清晰的分工:NextPDF 回報它所觀察到的內容,而由開立者決定該文件是否符合法律。 設計背景:Invoices and e-invoicing

類別職責
ZugferdEmbedder將 ZUGFeRD / Factur-X CII XML 附加到 PDF/A-4f 或 PDF/A-3b 載體。
ZugferdXmpSchema注入 Factur-X XMP 擴充結構描述宣告。
ZugferdProfile一致性設定檔 enum(MINIMUM … EXTENDED、XRECHNUNG)。
PeppolEmbedder將 Peppol BIS 3.0 UBL 發票/貸項通知單 XML 附加到 PDF/A 載體。
InvoiceXmlValidator對照 EN 16931 資料模型檢查 XML;COMPAT 或 STRICT 模式。
InvoiceValidatorMode驗證模式 enum: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-safe)、DOCTYPE 遭拒,且解壓縮有界限。XSLT 處理器在停用網路與檔案系統資源載入的情況下執行,且絕不註冊 PHP 函式,因此 document()xsl:includexsl:importresult-document 都無法觸及網路或磁碟。請將來自不可信來源的發票 XML 視為具敵意。

發票 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 模式金鑰保管不在此範圍內;請參閱 Signature 模組。

不可信的發票 XML 是主要輸入。緩解措施:XXE-safe 剖析、拒絕 DOCTYPE、有界的解壓縮、停用網路與檔案資源載入的 XSLT 處理器,以及不進行任何主張合成——由呼叫端提供並擁有發票內容。

  • ZugferdEmbedder / PeppolEmbedder 會將呼叫端提供的發票 XML 附加到 PDF/A-4f 或 PDF/A-3b 載體;NextPDF 絕不會合成發票 XML。
  • InvoiceXmlValidatorCOMPAT(預設;臨界的 EN 16931 基數為警告)或 STRICT(BT-24 基數為硬性錯誤)執行。
  • SchematronValidator 透過行程內的 XSLT 處理器執行預先編譯的規則集,並剖析 SVRL 發現;一份空白的發現清單並不會讓不符合規範的酬載變為符合規範。
  • 所有 XML 剖析皆為 XXE-safe:外部實體解析已停用、DOCTYPE 遭拒、解壓縮有界限。

本頁僅記錄外部可觀察的行為以及受支援的公開 API 介面。內部命名空間路徑、輔助類別、機制表格、runbook 檔名與工單前綴皆不在範圍內。

NextPDF Core 不會產生或驗證結構化發票。僅有 Core 的部署可以產出一份 PDF,但沒有任何 ZUGFeRD / Factur-X / Peppol 嵌入、沒有 EN 16931 驗證器,也沒有 Schematron 引擎。

在僅有 Pro 的部署中,受支援的介面是 Pro 層級的 Factur-X / ZUGFeRD 酬載電子發票偵測與驗證。Pro 不會產生 ZUGFeRD / Factur-X 或 Peppol-UBL 混合載體、不加入 XRechnung CIUS 設定檔,也不執行行程內的 Schematron 引擎;在僅有 Pro 的部署中,請求產生、XRechnung CIUS 設定檔或 Schematron 的設定,沒有任何 Enterprise 元件能滿足它。Pro 的偵測與驗證介面請參閱 Pro Compliance

內部機制細節保留在來源儲存庫的內部文件中,不在本手冊範圍內。

Schematron 引擎需要 ext-xsl PHP 擴充功能;佈建與啟用它是運維人員的責任。處理在行程內於本機進行;本模組在嵌入或驗證期間不進行任何對外網路呼叫。各國電子發票傳輸、清算平台與封存系統皆位於本模組之外,並屬於運維人員的責任。

NextPDF 會產出符合 EN 16931 所定義資料模型的結構化發票,並回報規則發現。它不會產出「合法合規的發票」、不提供「稅務機關核可」的輸出,也不保證任何發票會被稅務機關、法院或登記機構接受。發票開立者有責任符合相關法規的規定;這不是稅務機關驗證器。各國電子發票平台、清算模型、封存規範與數位簽章要求因司法管轄區而異,並屬於開立者的責任。請洽詢你的稅務與法律顧問。