📌 Key Differences Between ZUGFeRD Versions
ZUGFeRD (Zentraler User Guide des Forums elektronische Rechnung Deutschland) is a hybrid e-invoicing format that combines a PDF/A-3 file with an embedded XML invoice based on the CII (Cross-Industry Invoice) standard from UN/CEFACT. Each version of ZUGFeRD has differences in the CII XML structure, elements, and schema versions. Here's a comparison of the key differences across versions:
📜 Overview of ZUGFeRD Versions
Version | Release Year | XML Standard | Major Changes |
---|---|---|---|
ZUGFeRD 1.0 | 2014 | CII (Cross Industry Invoice) | First version, hybrid PDF/A-3 + CII XML. |
ZUGFeRD 2.0 | 2019 | EN 16931 (EU Standard) + CII | Fully compliant with European XRechnung standards. |
ZUGFeRD 2.1 / Factur-X 1.0 | 2020 | EN 16931 + CII & UBL | Added UBL XML support, aligned with Factur-X (France). |
ZUGFeRD 2.2 / Factur-X 1.0.06 | 2022 | EN 16931 + CII & UBL | Minor fixes, better PEPPOL integration. |
ZUGFeRD 2.2.1 | 2023 | EN 16931 + CII & UBL | Small refinements for international use. |
🔍 Key Differences in XML Structures
1️⃣ ZUGFeRD 1.0 (2014) – Basic CII XML
- Based on CII (Cross Industry Invoice) XML.
- Does not support UBL.
- Example:
<rsm:CrossIndustryInvoice> <ram:ExchangedDocument> <ram:ID>INV-10001</ram:ID> </ram:ExchangedDocument> </rsm:CrossIndustryInvoice>
2️⃣ ZUGFeRD 2.0 (2019) – EU Compliant (XRechnung Aligned)
- Complies with EN 16931 (EU invoicing standard).
- Uses CII XML, but with new structured tax information.
- Example:
<rsm:CrossIndustryInvoice> <ram:ExchangedDocument> <ram:ID>INV-10001</ram:ID> <ram:TypeCode>380</ram:TypeCode> <!-- Invoice Type --> </ram:ExchangedDocument> <ram:SupplyChainTradeTransaction> <ram:ApplicableHeaderTradeSettlement> <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode> </ram:ApplicableHeaderTradeSettlement> </ram:SupplyChainTradeTransaction> </rsm:CrossIndustryInvoice>
3️⃣ ZUGFeRD 2.1 (2020) – Factur-X & UBL Added
- Now supports both CII and UBL XML inside the PDF/A-3.
- Aligns with Factur-X 1.0 (French standard).
- Example (UBL format):
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"> <cbc:ID>INV-10001</cbc:ID> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> </Invoice>
4️⃣ ZUGFeRD 2.2 (2022) – Improved PEPPOL Integration
- Enhancements for PEPPOL BIS Billing 3.0 compatibility.
- Minor fixes in CII & UBL tax codes.
- No major structural changes.
5️⃣ ZUGFeRD 2.2.1 (2023) – Refinements
- Small refinements for better international invoice exchange.
- Better multi-language support.
📌 Summary of Key Differences
Feature | ZUGFeRD 1.0 | ZUGFeRD 2.0 | ZUGFeRD 2.1 (Factur-X 1.0) | ZUGFeRD 2.2 / 2.2.1 |
---|---|---|---|---|
XML Format | CII | CII | CII + UBL | CII + UBL |
EU Compliance | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes |
PEPPOL Support | ❌ No | ❌ No | ⚠️ Partial | ✅ Full |
XRechnung Alignment | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes |
France Compatibility (Factur-X) | ❌ No | ❌ No | ✅ Yes | ✅ Yes |
UBL Support | ❌ No | ❌ No | ✅ Yes | ✅ Yes |
🚀
- ZUGFeRD 1.0: Basic, Germany-only.
- ZUGFeRD 2.0: Aligned with XRechnung, but CII only.
- ZUGFeRD 2.1: Supports UBL, same as Factur-X (France).
- ZUGFeRD 2.2+: Better PEPPOL & global compliance.
1. ZUGFeRD 1.0 (2014)
- XML Standard: Based on UN/CEFACT CII D16B.
- Profiles: Basic, Comfort, and Extended.
- CII Structure:
- Uses UN/CEFACT’s Cross-Industry Invoice (CII) XML format.
- Contains standard invoice elements (buyer, seller, invoice lines, tax details).
- Limited adoption due to lack of alignment with EN 16931 (European Norm).
2. ZUGFeRD 2.0 (2019)
- XML Standard: Now fully compliant with EN 16931 (EU e-invoicing standard).
- Profiles: BASIC, EN 16931, EXTENDED.
- CII Structure Changes:
- Uses UN/CEFACT CII D16B, but aligned with EN 16931 for better EU compliance.
- New mandatory fields added for VAT compliance in the EU.
- Improved handling of invoice corrections and tax codes.
- Naming conventions updated to match EU specifications.
3. ZUGFeRD 2.1 / Factur-X 1.0 (2020)
- XML Standard: Still based on UN/CEFACT CII D16B, but introduces Factur-X (French e-invoicing standard).
- Profiles: MINIMUM, BASIC, BASIC WL (Without Lines), EN 16931, EXTENDED.
- CII Structure Changes:
- Factur-X compatibility (France's version of ZUGFeRD).
- Introduces "BASIC WL" profile (without line-item details).
- Some elements restructured to match newer business cases.
- More flexible handling of optional fields for invoices outside the EU.
4. ZUGFeRD 2.2 / Factur-X 1.0.06 (2022)
- XML Standard: UN/CEFACT CII D16B, still compliant with EN 16931.
- Profiles: Same as 2.1 (MINIMUM, BASIC, BASIC WL, EN 16931, EXTENDED).
- CII Structure Changes:
- Minor refinements and fixes in XML structure for improved validation.
- Better support for public procurement e-invoices in France and Germany.
- More structured handling of multi-tax rates and allowances.
5. ZUGFeRD 2.3 / Factur-X 1.0.07 (2024)
- XML Standard: UN/CEFACT CII D16B, with latest refinements.
- Profiles: No major changes from ZUGFeRD 2.2.
- CII Structure Changes:
- Further refinements for PEPPOL BIS Billing 3.0 compatibility.
- Updates for French B2B e-invoicing compliance (new legal mandates).
- Small enhancements for invoice line item details and corrections.
Summary of Differences in CII XML Across ZUGFeRD Versions
Version | CII XML Standard | Key Changes |
---|---|---|
ZUGFeRD 1.0 | UN/CEFACT CII D16B (basic) | Limited adoption, missing EN 16931 alignment. |
ZUGFeRD 2.0 | UN/CEFACT CII D16B | Aligned with EN 16931, improved VAT handling. |
ZUGFeRD 2.1 | UN/CEFACT CII D16B | Introduced Factur-X, new BASIC WL profile. |
ZUGFeRD 2.2 | UN/CEFACT CII D16B | Minor fixes, better tax and procurement handling. |
ZUGFeRD 2.3 | UN/CEFACT CII D16B | PEPPOL BIS 3.0 compatibility, B2B France updates. |
Below are sample XML snippets showing the differences in CII XML across ZUGFeRD versions.
Example: A Simple Invoice Comparison
1️⃣ ZUGFeRD 1.0 (2014) - Basic CII XML
- Uses UN/CEFACT CII D16B but lacks compliance with EN 16931.
- No structured VAT details (limited tax category handling).
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:zugferd:1p0:basic</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1200.00</GrandTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:zugferd:1p0:basic</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1200.00</GrandTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
🔹 Key Points:
✔️ Basic invoice structure.
❌ No detailed VAT breakdown.
❌ No compliance with EN 16931.
2️⃣ ZUGFeRD 2.0 (2019) - EN 16931 Compliance
- Includes tax category codes (required for EU compliance).
- Uses ZUGFeRD 2.0 profiles (
EN 16931
, EXTENDED
).
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:zugferd:2p0:EN16931</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1200.00</GrandTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>S</CategoryCode>
<RateApplicablePercent>19</RateApplicablePercent>
<CalculatedAmount>228.00</CalculatedAmount>
</ApplicableTradeTax>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
EN 16931
, EXTENDED
).<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:zugferd:2p0:EN16931</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1200.00</GrandTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>S</CategoryCode>
<RateApplicablePercent>19</RateApplicablePercent>
<CalculatedAmount>228.00</CalculatedAmount>
</ApplicableTradeTax>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
🔹 Key Points:
✔️ VAT category code (S
for Standard Rate, E
for Exempt, etc.).
✔️ Tax calculation details included.
✔️ EN 16931 compliance added.
3️⃣ ZUGFeRD 2.1 / Factur-X 1.0 (2020) - Factur-X Support
- Supports French Factur-X standard.
- Introduces BASIC WL (Without Line Items) profile.
- More structured invoice tax information.
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:factur-x:1p0:EN16931</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>S</CategoryCode>
<RateApplicablePercent>19</RateApplicablePercent>
<CalculatedAmount>228.00</CalculatedAmount>
</ApplicableTradeTax>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1200.00</GrandTotalAmount>
<TaxBasisTotalAmount>1000.00</TaxBasisTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:factur-x:1p0:EN16931</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>S</CategoryCode>
<RateApplicablePercent>19</RateApplicablePercent>
<CalculatedAmount>228.00</CalculatedAmount>
</ApplicableTradeTax>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1200.00</GrandTotalAmount>
<TaxBasisTotalAmount>1000.00</TaxBasisTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
🔹 Key Points:
✔️ Factur-X ID introduced (urn:factur-x:1p0:EN16931
).
✔️ More structured tax details (added TaxBasisTotalAmount
).
✔️ More flexible handling for French invoicing laws.
4️⃣ ZUGFeRD 2.3 (2024) - PEPPOL BIS 3.0 Support
- Improved support for PEPPOL BIS Billing 3.0.
- Better handling of multi-tax rates.
- More structured document referencing.
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:zugferd:2p3:PEPPOLBIS</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>S</CategoryCode>
<RateApplicablePercent>19</RateApplicablePercent>
<CalculatedAmount>228.00</CalculatedAmount>
</ApplicableTradeTax>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>R</CategoryCode>
<RateApplicablePercent>7</RateApplicablePercent>
<CalculatedAmount>70.00</CalculatedAmount>
</ApplicableTradeTax>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1270.00</GrandTotalAmount>
<TaxBasisTotalAmount>1000.00</TaxBasisTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
<InvoiceReferencedDocument>
<IssuerAssignedID>INV-2024-001</IssuerAssignedID>
</InvoiceReferencedDocument>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
<CrossIndustryInvoice xmlns="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
<ExchangedDocumentContext>
<GuidelineSpecifiedDocumentContextParameter>
<ID>urn:zugferd:2p3:PEPPOLBIS</ID>
</GuidelineSpecifiedDocumentContextParameter>
</ExchangedDocumentContext>
<SupplyChainTradeTransaction>
<ApplicableSupplyChainTradeAgreement>
<SellerTradeParty>
<Name>ABC Ltd</Name>
<PostalTradeAddress>
<CityName>Berlin</CityName>
</PostalTradeAddress>
</SellerTradeParty>
<BuyerTradeParty>
<Name>XYZ GmbH</Name>
</BuyerTradeParty>
</ApplicableSupplyChainTradeAgreement>
<ApplicableSupplyChainTradeSettlement>
<InvoiceCurrencyCode>EUR</InvoiceCurrencyCode>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>S</CategoryCode>
<RateApplicablePercent>19</RateApplicablePercent>
<CalculatedAmount>228.00</CalculatedAmount>
</ApplicableTradeTax>
<ApplicableTradeTax>
<TypeCode>VAT</TypeCode>
<CategoryCode>R</CategoryCode>
<RateApplicablePercent>7</RateApplicablePercent>
<CalculatedAmount>70.00</CalculatedAmount>
</ApplicableTradeTax>
<SpecifiedTradeSettlementMonetarySummation>
<GrandTotalAmount>1270.00</GrandTotalAmount>
<TaxBasisTotalAmount>1000.00</TaxBasisTotalAmount>
</SpecifiedTradeSettlementMonetarySummation>
<InvoiceReferencedDocument>
<IssuerAssignedID>INV-2024-001</IssuerAssignedID>
</InvoiceReferencedDocument>
</ApplicableSupplyChainTradeSettlement>
</SupplyChainTradeTransaction>
</CrossIndustryInvoice>
🔹 Key Points:
✔️ Support for PEPPOL BIS Billing 3.0.
✔️ Multiple VAT rates (S = 19%
, R = 7%
).
✔️ Invoice referencing (InvoiceReferencedDocument
) for better tracking.
Conclusion
Version | Key Differences |
---|---|
ZUGFeRD 1.0 | Basic structure, no VAT details. |
ZUGFeRD 2.0 | Aligned with EN 16931, added VAT tax categories. |
ZUGFeRD 2.1 | Introduced Factur-X, structured tax handling. |
ZUGFeRD 2.3 | Supports PEPPOL BIS 3.0, improved multi-tax rates. |
- ZUGFeRD 1.0 had limited adoption due to missing EU compliance.
- ZUGFeRD 2.x series significantly improved by aligning with EN 16931, making it widely accepted in the EU and France (Factur-X).
- Each newer version refines XML structures for better compliance, multi-country invoicing, and smoother integration with PEPPOL and public procurement platforms.
Let me know if you need specific XML samples for comparison! 🚀
No comments:
Post a Comment