EN 16931 準拠性: 公式ルールに基づく Peppol、Factur-X、ZUGFeRD の検証結果
Nordlet が生成するインボイスファイルを公式の EN 16931 検証ルールに通しました。Peppol およびルーマニアのファイルは合格しましたが、Factur-X ファイルは 2 つのルールに違反しています。この記事ではその具体的な内容を明らかにします。
EN 16931 は、電子インボイスの内容に関する欧州規格です。売手、買手、明細行、VAT(付加価値税)の内訳、合計金額などのビジネス用語(ビジネス用語: business terms)や、VAT の内訳の合計がインボイスの総額と一致することなど、それらの用語が満たすべきビジネスルールを定義しています。この規格は、UBL 2.1 と UN/CEFACT Cross Industry Invoice (CII) の 2 つの XML 形式で記述することができます。
欧州の電子インボイス形式のほとんどは、EN 16931 を基盤として構築されています。
- Peppol BIS Billing 3.0 は、追加の Peppol ルールを含む UBL 形式の EN 16931 です。
- ルーマニアの e-Factura (CIUS-RO) は、追加のルーマニアのルールを含む UBL 形式の EN 16931 です。
- Factur-X(フランス)および ZUGFeRD 2.3(ドイツ)は、CII 形式で EN 16931 を伝送します。Nordlet が出力する「EN 16931」プロファイルでは、これら 2 つの形式で同じ XML が使用されます。
インボイスが EN 16931 のルールに違反した場合、その上位に構築されているすべての形式のルールにも違反することになります。
検証方法
欧州委員会(European Commission)は、電子インボイスに関する CEN 技術委員会 (CEN/TC 434) が GitHub上で公開している検証ルールを参照しています。今回の検証では、UBL と CII の両方に対して、2026年10月12日付の最新リリースである 1.3.17 を使用しました。ルールは Schematron で記述され XSLT にコンパイルされており、Saxon-HE 12.5 XSLT エンジンを使用して実行しました。
検証に使用したインボイスファイルは、サンプルデータから Nordlet の現在のコードによって生成されたものです。売手はリトアニアの企業であり、買手はリトアニアの企業、ドイツの企業、および Peppol エクスポートの場合は米国の企業です。サンプルインボイスには、21% の VAT 明細行と、免税注記付きの 0% の明細行が含まれています。
結果
| Nordlet の出力形式 | 検証ファイル数 | 結果 |
|---|---|---|
| Peppol BIS Billing 3.0 (UBL) | 7件: 国内インボイス、クレジットノート(返金伝票)、EU内取引、輸出、リバースチャージ、VAT未登録の売手、割引付き米ドル建てインボイス | すべて合格: エラー 0、警告 0 |
| ルーマニアの e-Factura (UBL, CIUS-RO) | 4件: 国内インボイス、クレジットノート、EU内取引、割引付き米ドル建てインボイス | すべて合格 |
| Factur-X / ZUGFeRD (CII, EN 16931 プロファイル) | 4件: 国内インボイス、クレジットノート、EU内取引、割引付き米ドル建てインボイス | 4件すべて不合格、各 1 件のエラー |
Factur-X ファイルが違反する 2 つのルール
BR-Z-10: ゼロ税率の明細行には免税理由を記載してはならない
EN 16931 には、0% の税率を指す「Z」(ゼロ税率)と、免税供給を指す「E」(免税)の個別の VAT カテゴリがあります。免税供給の場合にのみ、その理由が記載されます。ルール BR-Z-10 は、カテゴリ「Z」の VAT 内訳に、免税理由コード (BT-121) または免税理由テキスト (BT-120) を含めてはならないと規定しています。
Factur-X のジェネレーターは、すべてのゼロ税率の内訳に対して「Taux zéro」という理由テキストを出力するため、4つのファイルのうち 3 つが不合格となります。また、明細行に入力された免税注記も無視されます。一方、Peppol のジェネレーターは同じ明細行を正しく処理します。0% の明細行に免税注記がある場合、その明細行を免税(「E」)として出力し、注記を理由として使用します。
BR-IC-12: EU内取引には配送国を記載しなければならない
ルール BR-IC-12 は、VAT 内訳のカテゴリが「K」(EU内供給: intra-Community supply)である場合、納品先国コード (BT-80) が空であってはならないと規定しています。配送国は、商品が売手の国から出荷されたことを示します。
Factur-X のジェネレーターは配送国を出力しないため、EU 内取引のファイルは不合格となります。Peppol のジェネレーターは、こうした取引において買手の国を配送国として出力します。
この検証に含まれないもの
- XML スキーマ: 今回検証したのはビジネスルールのみであり、UBL および CII のスキーマ (XSD) チェックは実行していません。
- Nordlet が出力しないフィールド: ファイルに含まれていない項目に関するルールは実行されていません。例として、文書レベルの手数料、前払金額、請求期間、発注書(PO)参照などが挙げられます。
- EN 16931 に上乗せされる国別ルール: フランスの電子インボイス改革ルールやドイツの XRechnung ルールは検証していません。Peppol 固有のルールについては、OpenPeppol のルールセットを使用する別の Nordlet スクリプトによって検証されます。
- Factur-X の PDF 部分: Factur-X インボイスは、XML が添付された PDF/A-3 ファイルです。今回の検証対象は XML のみです。