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

The French invoicing standard is EN 16931-1 compliant and technically identical to ZUGFeRD from version 2.1 onwards. The PDF Xpansion SDK supports all six profiles: EXTENDED, EN 16931, BASIC, BASIC WL, MINIMUM, XRECHNUNG. From ZUGFeRD 2.4, non-linear, hierarchical structures of invoice line items are supported. XML data can also be extracted from Factur-X/ZUGFeRD files that are not fully standards-compliant.

Peppol BIS Billing 3.0

Unlike the other standards mentioned, this one also specifies the transmission channel for invoices (the Peppol network). The standard is exclusively XML-based.

XRechnung

With the PDF Xpansion SDK, outgoing invoices can be conveniently created, incoming invoices validated, and invoice data read out. Both UN/CEFACT CII and UBL syntax are supported. Invoices with sub-line items in accordance with the XRechnung Extension can also be processed via the SDK. Credit notes (Credit Note, code 381) in UBL syntax are supported as well.
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

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