Founding offer: 50,000 invoices (€500) free for your first month. Only 5 of 5 slots left.
Claim yours →Don't build e-invoicing compliance. Integrate it.
E-invoicing infrastructure for software companies
Add German e-invoicing to your product with one API. Generate and validate XRechnung and ZUGFeRD invoices without building or maintaining the compliance logic yourself.
- XRechnung + ZUGFeRD
- EN 16931 based
- Zero invoice data retention
No credit card required · API key in seconds.
500 free trial invoices — 30-day expiry. Generate your first compliant invoice in under a minute.
- XRechnung version
- 3.0.2
- ZUGFeRD profiles
- 6
- XML syntaxes (UBL + CII)
- 2
- Data retention
- 0
E-invoicing shouldn't become your product team's maintenance burden
Supporting German e-invoicing means more than generating XML. Your team has to understand XRechnung, ZUGFeRD, EN 16931, syntax mappings, validation rules, profiles, and specification updates.
InvoiceSpec keeps that infrastructure behind one stable API, so your team can focus on the product you're actually building.
Create
Create compliant invoices
Generate XRechnung XML and ZUGFeRD PDF/A-3 documents from structured invoice data.
Validate
Catch compliance problems before invoices leave your system
Validate documents against the relevant structural and business rules and return actionable errors your application can work with.
Maintain
Stop maintaining invoice standards
InvoiceSpec tracks supported specification and validator updates so your integration does not need to be rebuilt every time the underlying standards evolve.
JSON Input
Canonical invoice data
InvoiceSpec compliance layer
Map · Generate · Validate
Compliant Output
Your developers integrate once, against one stable API. InvoiceSpec handles the format-specific implementation underneath.
One API call from your data to a compliant invoice
Send structured invoice data using one stable API model. InvoiceSpec handles the XRechnung or ZUGFeRD representation and validation underneath.
/v1/invoice/xrechnungReal output{"invoice": {"invoiceNumber": "INV-DEMO-001","issueDate": "2025-07-01","invoiceTypeCode": "380","currencyCode": "EUR","buyerReference": "991-12345-67","seller": {"name": "Acme GmbH","legalRegistrationIdentifier": "HRB98765","vatIdentifier": "DE123456789","electronicAddress": "DE123456789","electronicAddressSchemeId": "9930","postalAddress": {"addressLine1": "Musterstr. 1","city": "Berlin","postcode": "10115","countryCode": "DE"},"contact": {"contactPoint": "Max Mustermann","telephone": "+49 30 12345678","email": "billing@acme.de"}},"buyer": {"name": "Example Corp","electronicAddress": "FR12345678901","electronicAddressSchemeId": "9930","postalAddress": {"addressLine1": "12 Rue de Rivoli","city": "Paris","postcode": "75001","countryCode": "FR"}},"deliveryInformation": {"actualDeliveryDate": "2025-07-01"},"paymentInstructions": {"meansCode": "30","creditTransfer": {"accountIdentifier": "DE89370400440532013000"}},"documentTotals": {},"vatBreakdowns": [{"vatCategoryCode": "S","vatCategoryRate": 19}],"invoiceLines": [{"lineIdentifier": "1","quantity": 10,"unitCode": "C62","priceDetails": {"netPrice": 150},"lineVatInformation": {"vatCategoryCode": "S","vatRate": 19},"itemInformation": {"name": "Consulting Services"}}]},"config": {"spec": "xrechnung","syntax": "cii"}}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><rsm:CrossIndustryInvoice xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"><rsm:ExchangedDocumentContext><ram:BusinessProcessSpecifiedDocumentContextParameter><ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID></ram:BusinessProcessSpecifiedDocumentContextParameter><ram:GuidelineSpecifiedDocumentContextParameter><ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID></ram:GuidelineSpecifiedDocumentContextParameter></rsm:ExchangedDocumentContext><rsm:ExchangedDocument><ram:ID>INV-DEMO-001</ram:ID><ram:TypeCode>380</ram:TypeCode><ram:IssueDateTime><udt:DateTimeString format="102">20250701</udt:DateTimeString></ram:IssueDateTime></rsm:ExchangedDocument><rsm:SupplyChainTradeTransaction><ram:IncludedSupplyChainTradeLineItem><ram:AssociatedDocumentLineDocument><ram:LineID>1</ram:LineID></ram:AssociatedDocumentLineDocument><ram:SpecifiedTradeProduct><ram:Name>Consulting Services</ram:Name></ram:SpecifiedTradeProduct><ram:SpecifiedLineTradeAgreement><ram:NetPriceProductTradePrice><ram:ChargeAmount>150.0</ram:ChargeAmount><ram:BasisQuantity>1</ram:BasisQuantity></ram:NetPriceProductTradePrice></ram:SpecifiedLineTradeAgreement><ram:SpecifiedLineTradeDelivery><ram:BilledQuantity unitCode="C62">10</ram:BilledQuantity></ram:SpecifiedLineTradeDelivery><ram:SpecifiedLineTradeSettlement><ram:ApplicableTradeTax><ram:TypeCode>VAT</ram:TypeCode><ram:CategoryCode>S</ram:CategoryCode><ram:RateApplicablePercent>19</ram:RateApplicablePercent></ram:ApplicableTradeTax><ram:SpecifiedTradeSettlementLineMonetarySummation><ram:LineTotalAmount>1500.00</ram:LineTotalAmount></ram:SpecifiedTradeSettlementLineMonetarySummation></ram:SpecifiedLineTradeSettlement></ram:IncludedSupplyChainTradeLineItem><ram:ApplicableHeaderTradeAgreement><ram:BuyerReference>991-12345-67</ram:BuyerReference><ram:SellerTradeParty><ram:Name>Acme GmbH</ram:Name><ram:SpecifiedLegalOrganization><ram:ID>HRB98765</ram:ID></ram:SpecifiedLegalOrganization><ram:DefinedTradeContact><ram:PersonName>Max Mustermann</ram:PersonName><ram:TelephoneUniversalCommunication><ram:CompleteNumber>+49 30 12345678</ram:CompleteNumber></ram:TelephoneUniversalCommunication><ram:EmailURIUniversalCommunication><ram:URIID>billing@acme.de</ram:URIID></ram:EmailURIUniversalCommunication></ram:DefinedTradeContact><ram:PostalTradeAddress><ram:PostcodeCode>10115</ram:PostcodeCode><ram:LineOne>Musterstr. 1</ram:LineOne><ram:CityName>Berlin</ram:CityName><ram:CountryID>DE</ram:CountryID></ram:PostalTradeAddress><ram:URIUniversalCommunication><ram:URIID schemeID="9930">DE123456789</ram:URIID></ram:URIUniversalCommunication><ram:SpecifiedTaxRegistration><ram:ID schemeID="VA">DE123456789</ram:ID></ram:SpecifiedTaxRegistration></ram:SellerTradeParty><ram:BuyerTradeParty><ram:Name>Example Corp</ram:Name><ram:PostalTradeAddress><ram:PostcodeCode>75001</ram:PostcodeCode><ram:LineOne>12 Rue de Rivoli</ram:LineOne><ram:CityName>Paris</ram:CityName><ram:CountryID>FR</ram:CountryID></ram:PostalTradeAddress><ram:URIUniversalCommunication><ram:URIID schemeID="9930">FR12345678901</ram:URIID></ram:URIUniversalCommunication></ram:BuyerTradeParty></ram:ApplicableHeaderTradeAgreement><ram:ApplicableHeaderTradeDelivery><ram:ActualDeliverySupplyChainEvent><ram:OccurrenceDateTime><udt:DateTimeString format="102">20250701</udt:DateTimeString></ram:OccurrenceDateTime></ram:ActualDeliverySupplyChainEvent></ram:ApplicableHeaderTradeDelivery><ram:ApplicableHeaderTradeSettlement><ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode><ram:SpecifiedTradeSettlementPaymentMeans><ram:TypeCode>30</ram:TypeCode><ram:PayeePartyCreditorFinancialAccount><ram:IBANID>DE89370400440532013000</ram:IBANID></ram:PayeePartyCreditorFinancialAccount></ram:SpecifiedTradeSettlementPaymentMeans><ram:ApplicableTradeTax><ram:CalculatedAmount>285.00</ram:CalculatedAmount><ram:TypeCode>VAT</ram:TypeCode><ram:BasisAmount>1500.00</ram:BasisAmount><ram:CategoryCode>S</ram:CategoryCode><ram:RateApplicablePercent>19</ram:RateApplicablePercent></ram:ApplicableTradeTax><ram:SpecifiedTradePaymentTerms><ram:Description>Payment due</ram:Description></ram:SpecifiedTradePaymentTerms><ram:SpecifiedTradeSettlementHeaderMonetarySummation><ram:LineTotalAmount>1500.00</ram:LineTotalAmount><ram:TaxBasisTotalAmount>1500.00</ram:TaxBasisTotalAmount><ram:TaxTotalAmount currencyID="EUR">285.00</ram:TaxTotalAmount><ram:GrandTotalAmount>1785.00</ram:GrandTotalAmount><ram:DuePayableAmount>1785.00</ram:DuePayableAmount></ram:SpecifiedTradeSettlementHeaderMonetarySummation></ram:ApplicableHeaderTradeSettlement></rsm:SupplyChainTradeTransaction></rsm:CrossIndustryInvoice>
Real engine output from the request on the left — a complete, KoSIT-validated XRechnung 3.0.2 CII document.
Try it with curl
curl -X POST https://api.invoicespec.com/v1/invoice/xrechnung \-H "Authorization: Bearer YOUR_API_KEY" \-H "Content-Type: application/json" \-H "Accept: application/xml" \-d '{"invoice":{"invoiceNumber":"INV-DEMO-001","issueDate":"2025-07-01","invoiceTypeCode":"380","currencyCode":"EUR","buyerReference":"991-12345-67","seller":{"name":"Acme GmbH","legalRegistrationIdentifier":"HRB98765","vatIdentifier":"DE123456789","electronicAddress":"DE123456789","electronicAddressSchemeId":"9930","postalAddress":{"addressLine1":"Musterstr. 1","city":"Berlin","postcode":"10115","countryCode":"DE"},"contact":{"contactPoint":"Max Mustermann","telephone":"+49 30 12345678","email":"billing@acme.de"}},"buyer":{"name":"Example Corp","electronicAddress":"FR12345678901","electronicAddressSchemeId":"9930","postalAddress":{"addressLine1":"12 Rue de Rivoli","city":"Paris","postcode":"75001","countryCode":"FR"}},"deliveryInformation":{"actualDeliveryDate":"2025-07-01"},"paymentInstructions":{"meansCode":"30","creditTransfer":{"accountIdentifier":"DE89370400440532013000"}},"documentTotals":{},"vatBreakdowns":[{"vatCategoryCode":"S","vatCategoryRate":19}],"invoiceLines":[{"lineIdentifier":"1","quantity":10,"unitCode":"C62","priceDetails":{"netPrice":150},"lineVatInformation":{"vatCategoryCode":"S","vatRate":19},"itemInformation":{"name":"Consulting Services"}}]},"config":{"spec":"xrechnung","syntax":"cii"}}'
Compliance infrastructure you don't have to maintain
- EN 16931 based
InvoiceSpec maps your invoice data to the European semantic model used by supported German e-invoice formats.
- XRechnung validation
Generated and uploaded XRechnung documents are checked using the supported KoSIT validation rules.
- Version-aware
Use the current supported specification or pin a supported version when deterministic behavior matters.
- Actionable errors
Receive structured validation results instead of exposing raw validator output directly to your users.
- Zero invoice data retention
Invoice documents are processed without being persisted after the request.
Everything your product needs for German e-invoicing
Generation and validation for both German e-invoice formats, plus the compliance maintenance underneath them.
XRechnung
Generate and validate German XML e-invoices using the supported CII and UBL syntaxes (XRechnung 3.0.2).
Explore XRechnung APIZUGFeRD
Generate and validate hybrid PDF/A-3 invoices with EN 16931 CII XML embedded inside them, across six profiles.
Explore ZUGFeRD APIValidation
Validate existing XRechnung and ZUGFeRD invoices and receive structured, actionable compliance errors.
Try the free validatorsCompliance maintenance
InvoiceSpec keeps your integration stable while it maintains supported format and validator updates underneath.
Read the docsZUGFeRD: one invoice for people and software
Generate a human-readable PDF/A-3 with structured invoice XML embedded in the same document. A ZUGFeRD invoice carries a human-readable invoice page and the machine-readable EN 16931 CII XML embedded inside it — generated from one canonical JSON so they never diverge. See the real document on the ZUGFeRD API page.

How it works
From structured invoice data to a standards-compliant document — the engine handles the format mapping and rule checking.
- 1
Send structured data
POST a canonical JSON invoice to the API. No XML hand-authoring, no PDF layout work.
- 2
Engine maps to the standard
InvoiceSpec maps your data to the XRechnung / ZUGFeRD / EN 16931 model and applies the format's syntax and business rules.
- 3
Receive a compliant document
Get back a standards-compliant XML or PDF/A-3 document, or a structured validation result listing any issues.
Add German e-invoicing without building it from scratch
Start with the API for free. Generate and validate real XRechnung and ZUGFeRD invoices before committing to a paid plan.
- XRechnung + ZUGFeRD
- EN 16931 based
- Zero invoice data retention
No credit card required · API key in seconds — first compliant invoice in under a minute.
500 free trial invoices (30-day trial) — see pricing for after that.