PDF Xpansion SDK

To the SDK

E-Invoices

in the PDF Xpansion SDK

Support for:XRechnungZUGFeRDFactur-XUN/CEFACT CIIUBLPeppol BIS BillingAll versions & extensions supported

ZUGFeRD / FACTUR-X

ZUGFeRD is a uniform, hybrid format for electronic invoices (e-invoices) developed by the Forum elektronische Rechnung Deutschland (FeRD). From version 2.1 onwards, it is technically identical to the French invoicing standard Factur-X 1.0 (both, of course, comply with EN 16931). The PDF Xpansion SDK supports all six profiles: EN 16931, EXTENDED, BASIC, BASIC WL, MINIMUM, XRECHNUNG.

Release 2.5.2 (= Factur-X 1.09.2) already added new functionality from the upcoming EU standard EN 16931-1:2026 to the EXTENDED profile. The aim is to support the requirements of the French B2B e-invoicing reform and the revised EN 16931 as early as possible.

The next ZUGFeRD release is expected in autumn 2026 and will likely include support for gross invoices and further functionality from the new revision of EN 16931.

Peppol BIS Billing 3.0

Peppol BIS Billing (Business Interoperability Specification) is a Europe-wide standard for electronic invoices in the Peppol network. It is very similar to XRechnung, but supports UBL syntax only, including CreditNote.

XRechnung

XRechnung is a standardised data set for electronic invoices in XML format, developed by the German federal and state governments (current version 3.0.2). There are two syntax variants for this format: UN/CEFACT CII and UBL. Both, of course, comply with EN 16931. By default, the UBL syntax is supplemented by an extension to represent third-party payments and sub-line items. The UBL syntax also supports the CreditNote document type.

The upcoming version XRechnung 4.0 is the German implementation of the new EU standard EN 16931-1:2026 and builds on the established XRechnung standard. Many of the current changes to EN 16931-1:2026 address specific requirements of both German public administration and industry.
Important information on the e-invoicing obligation has been compiled on this page.
Our installable standard software Perfect E-Invoice also offers a wide range of powerful features.

The PDF Xpansion SDK offers the following functions for electronic invoicing

  • Format support: XRechnung 1.2–3.0.2 (UN/CEFACT CII, UBL and Extension), Factur-X 1.0, ZUGFeRD 1.0–2.4, Peppol BIS Billing 3.0
  • File formats: XML-based and PDF/A-based (Factur-X/ZUGFeRD) e-invoices see sample files
  • Read and technical validation (syntax, structure, completeness) of XML-based invoices, retrieve invoice data
  • Read and technical validation (PDF/A conformance, PDF metadata, embedded XML invoice) of Factur-X and ZUGFeRD-based invoices, extract the embedded XML invoice – including from non-standards-compliant files
  • Creation of XML-based invoices via SDK API – all invoice data can be created by calling the SDK methods, save e-invoices as XML files (UN/CEFACT CII and/or UBL)
  • Creation of PDF/A invoices from XML-based invoices and the classic invoice (rendered as a PDF file), save e-invoices as PDF/A files (Factur-X/ZUGFeRD)
  • Change the format, version or profile of existing XML-based invoices, for example from ZUGFeRD 2.4 to XRechnung 3.0.2
  • Visualise existing XML-based invoices (create a PDF file from the invoice data and a template) see visualisation templates
  • Support for the XRechnung Extension "SubInvoiceLine" (UBL format only)
  • Support for credit notes (Credit Note, code 381) for XRechnung in UBL syntax
  • Support for CDATA elements in XML invoices
  • Calculate method for e-invoices with improved precision and compliance with rounding rules
  • Display the PDF part of the invoice in the PDF viewer
  • Print the PDF part of the invoice
  • Digital signatures for outgoing ZUGFeRD invoices, including all PAdES conformance levels
  • Stamp incoming invoices with "RECEIVED"

Process e-invoices quickly & easily with the PDF Xpansion SDK

Code example:

C++
C# / .NET
C++ SX::ObjPtr<SX::EInvoice:: IInvoiceDocument> ptrInvoiceDoc = m_pApp->get_Factory()->CreateEInvoiceDocument(); SX::ObjPtr<SX::EInvoice::IInvoiceData> ptrInvoice = ptrInvoiceDoc->CreateInvoice(); ptrInvoice->Create(SX::EInvoice::einv_standard_facturx, SX::EInvoice::einv_profile_EN16931); // invoice properties auto pInvDesc = ptrInvoice->get_Description(); pInvDesc->set_ID(L"EI4772485"); // invoice number pInvDesc->set_TypeCode(380); // invoice type "commercial invoice" pInvDesc->GetNote(true, 0)->set_Content(L"Contract V74-2925-678"); // ... auto pInvTrans = ptrInvoice->get_Transaction(); auto pAgr = pInvTrans->get_Agreement(); pAgr->set_BuyerReference(L"90320860-03083-12"); auto pSeller = pAgr->GetSeller(true); auto pAddr = pSeller->GetAddress(true); pSeller->set_Name(L"Seller GmbH"); pAddr->set_Line1(L"Berlinerstr. 225"); pAddr->set_Postcode(80333); pAddr->set_City(L"München"); // ... auto pBuyer = pAgr->GetBuyer(true); pAddr = pBuyer->GetAddress(true); pBuyer->set_Name(L"Buyer AG"); pAddr->set_Postcode(10178); pAddr->set_Line1(L"Jörg Müller"); pAddr->set_Line2(L"Münchener. 96"); pAddr->set_City(L"Berlin"); // ...
Visual invoice partSeller GmbH | Berlinerstr. 225 | 80333 München Buyer AG Jörg Müller Münchener. 96 10178 Berlin Commercial Invoice EI4772485 Contract V74-2925-678 Buyer reference 90320860-03083-12 ...
XML (FACTUR-X)... <rsm:ExchangedDocument> <ram:ID>EI4772485</ram:ID> <ram:TypeCode>380</ram:TypeCode> ... <ram:SellerTradeParty> ... <ram:Name>Seller GmbH</ram:Name> <ram:PostalTradeAddress> <ram:PostcodeCode>80333</ram:PostcodeCode> <ram:LineOne>Berlinerstr. 225</ram:LineOne> <ram:CityName>München</ram:CityName> ... </ram:SellerTradeParty> ... <ram:BuyerTradeParty> ... <ram:Name>Buyer AG</ram:Name> <ram:PostalTradeAddress> <ram:PostcodeCode>10178</ram:PostcodeCode> <ram:LineOne>Jörg Müller</ram:LineOne> <ram:LineTwo>Münchener. 96</ram:LineTwo> <ram:CityName>Berlin</ram:CityName> </ram:PostalTradeAddress> ... </ram:BuyerTradeParty> ...

Further Resources

Background information on e-invoicing:
Homepage (e-rechnung-bund.de)
XRechnung – XStandards Procurement (xeinkauf.de)
What is ZUGFeRD | Forum elektronische Rechnung Deutschland (ferd-net.de)
Draft bill "Wachstumschancengesetz", e-invoicing provisions anchored in VAT regulations (see Articles 29 and 30): DIP – Act to Strengthen Growth Opportunities, Investment and Innovation as well as Tax Simplification and Tax Fairness (bundestag.de)
Peppol BIS Billing


soft Xpansion Support
Perfect PDF 12 & PDF Xpansion SDK
🗑 ✕
▶