Saturday, February 8, 2025

EInvoice - Key Difference of ZuGFERD - Germany Standard.

 

📌 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 structureelements, 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>

🔹 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>

🔹 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>

🔹 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>

🔹 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: