ZUGFeRD
German Invoice Template
A free German invoice template that generates ZUGFeRD e-invoices: a readable PDF/A-3 with the EN 16931 XML inside, accepted for German B2B invoicing. Edit the layout in your browser, then send your invoice data to the E-Invoice API and get one compliant file per invoice.
German VAT invoice layout
EN 16931 XML embedded
Same data as XRechnung
API, n8n or AI agent
Live template
Open the ZUGFeRD invoice template in the editor
The real template is open above with a sample German invoice. Move fields, translate the labels, add your logo and switch to Preview to see the PDF. You do not need an account to try it. Create a free one when you want to keep your version and generate ZUGFeRD files from it.
At a glance
What is a ZUGFeRD invoice?
The German Invoice format ZUGFeRD is a standardized electronic invoicing format that combines a human readable PDF invoice with embedded structured XML data. Technically, a ZUGFeRD invoice is a PDF/A-3 file with an XML attachment that follows the European EN 16931 data model, so your customer reads a normal invoice while their accounting software reads every amount and VAT figure without retyping. ZUGFeRD and the French Factur-X are the same format under two names. Since January 1, 2025, every business in Germany must be able to receive e-invoices, and a plain PDF no longer counts as one.
This free ZUGFeRD invoice template is the visual part of that file: a German Rechnung with seller, buyer, line items, VAT summary and bank details, bound to the field names of the e-invoice standard. Edit it in the browser, then send your invoice JSON to the E-Invoice API, which returns the finished ZUGFeRD PDF with the validated XML inside.
| Document type | German invoice (Rechnung) as a hybrid e-invoice |
|---|---|
| Standard | ZUGFeRD 2.x, identical to Factur-X, built on EN 16931 |
| Output | One PDF/A-3 file with the invoice XML embedded |
| Profiles | EN 16931 (default) or BASIC, both valid e-invoices in Germany |
| Data fields | UBL names in the Peppol BIS Billing 3.0 shape, root ubl:Invoice |
| Language | German labels, change them in the editor |
| Generate | POST /api/v4/einvoice/facturx, the n8n node or an AI agent through MCP |
| XML only | XRechnung or EN 16931 from the same JSON, no template needed |
| Price | Free template, 14 day sandbox account |
Last reviewed October 2026 by the PDF Generator API team. The German rules below are taken from § 14 UStG and the BMF letters of October 15, 2024 and October 15, 2025.
Template contents
What does a German invoice need to include?
Section 14 (4) of the German VAT Act (UStG) lists what every invoice must show. The template places each item where a German accountant expects it, and each one is bound to the EN 16931 field the XML needs, so the visible invoice and the embedded data always match.
- 01SellerName, address, contact person and VAT ID of the business issuing the invoice.
cac:AccountingSupplierPartycbc:EndpointID - 02BuyerCompany, contact, address and VAT ID of the customer.
cac:AccountingCustomerParty - 03Invoice detailsSequential invoice number, customer number, invoice date and date of service.
cbc:IDcbc:BuyerReferencecbc:IssueDatecac:InvoicePeriod - 04Line itemsPosition, description, quantity, unit code, unit price and line total, one table row per item.
cac:InvoiceLine[ ]cbc:InvoicedQuantitycac:Price - 05VAT summaryNet subtotal, VAT rate and amount, total due, and the legal reason when a line is VAT exempt.
cac:LegalMonetaryTotalcac:TaxTotalcbc:TaxExemptionReason - 06PaymentPayment terms, IBAN and BIC of the seller’s account.
cac:PaymentTermscac:PaymentMeans
| Placeholder | What it holds | Sample value |
|---|---|---|
{ubl:Invoice::cbc:ID} |
Invoice number (Rechnungsnummer) | M2025/015 |
{ubl:Invoice::cbc:BuyerReference} |
Customer number or buyer reference | K-10010 |
{ubl:Invoice::cbc:IssueDate} |
Invoice date, ISO format | 2025-01-28 |
{ubl:Invoice::cac:InvoicePeriod::cbc:StartDate} |
Date of service (Leistungsdatum) | 2025-01-21 |
{cac:Item::cbc:Name} |
Line item name | Erste-Hilfe Ausbildung BG |
{cbc:InvoicedQuantity@unitCode} |
UN/ECE unit code, C62 means one piece | C62 |
{cac:Price::cbc:PriceAmount} |
Unit price before VAT | 44.10 |
{cbc:TaxExemptionReason} |
Legal reason for a 0 % VAT line | § 4 Nr. 21 a) bb) UStG |
{ubl:Invoice::cac:PaymentTerms::cbc:Note} |
Payment terms | Zahlbar ohne Abzug innerhalb von 14 Tagen |
Keep the UBL field names when you adapt the template. The E-Invoice API reads the same names, so a field renamed to something like {invoice_number} prints blank in the PDF.
German rules
When do businesses in Germany have to send e-invoices?
The Growth Opportunities Act (Wachstumschancengesetz) made the e-invoice the standard for domestic B2B invoices between businesses based in Germany. The obligation arrives in three steps, and ZUGFeRD is one of the formats the tax office accepts at every step.
| From | Who | What changes | |
|---|---|---|---|
| January | January 1, 2025 | Every business in Germany | Must be able to receive and process e-invoices. Sending paper or plain PDF invoices is still allowed during the transition. |
| January | January 1, 2027 | Businesses with prior year turnover above €800,000 | Must issue e-invoices for domestic B2B sales. |
| January | January 1, 2028 | All businesses | Must issue e-invoices for domestic B2B sales. Invoices up to €250 remain exempt. |
Which ZUGFeRD profiles count as an e-invoice in Germany?
| Profile | Valid e-invoice in Germany | With this template |
|---|---|---|
| MINIMUM, BASIC WL | No, they do not carry the full invoice data | Not used |
| BASIC | Yes, for simple invoices | "profile": "basic" |
| EN 16931 | Yes, the full European data set | Default, "profile": "en16931" |
| EXTENDED | Yes, with extra fields for industry use | Talk to us |
Sources: § 14 UStG and the BMF letter of October 15, 2025, which accepts ZUGFeRD from version 2.0.1 without the MINIMUM and BASIC WL profiles. In a hybrid invoice the XML part is the legally leading one, and at least the XML must be archived unchanged. This page is not tax advice. Your tax advisor confirms which obligations apply to your business.
Choose a format
ZUGFeRD, XRechnung or a PDF invoice?
All three can come out of the same invoice data. The recipient decides which one you send: public authorities often ask for XRechnung, businesses accept ZUGFeRD, and a plain PDF only works until your issuing obligation starts.
| Question | Plain PDF invoice | ZUGFeRD (this template) | XRechnung |
|---|---|---|---|
| What the recipient gets | A picture of an invoice | A readable PDF/A-3 with the XML inside | An XML file only, no visible layout |
| Counts as an e-invoice | No | Yes, with the BASIC or EN 16931 profile | Yes |
| Typical recipient | Consumers | German and French businesses | Federal and state authorities, and businesses that ask for it |
| Endpoint | /documents/generate |
/einvoice/facturx with this template |
/einvoice/xrechnung, UBL or CII |
XRechnung adds the German BR-DE rules on top of EN 16931: seller contact name, phone and email (BT-41 to BT-43) and a buyer reference (BT-10) become mandatory. Send them in every payload and one JSON passes all three formats. See e-invoicing in Europe for the formats in other countries.
Automate it
How do you generate ZUGFeRD invoices automatically?
Copy the template into your account, then send each invoice as JSON from your billing system, an n8n workflow or an AI agent. The API validates the data against EN 16931 and returns one ZUGFeRD file per invoice.
- Copy the template. Create a free account, open this ZUGFeRD template and save it to your workspace.
- Add your branding. Change the logo, colors and labels in the editor, or ask the AI template builder. Keep the UBL field names.
- Send the invoice data. Post it to
/einvoice/facturxwith your template ID. CallGET /einvoice/schemaonce to see every field the API accepts. - Send and archive. Email the PDF to your customer or pass it to your ERP, and archive the file so the XML stays unchanged.
curl -X POST https://us1.pdfgeneratorapi.com/api/v4/einvoice/facturx \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"template": {
"id": <your-template-id>,
"data": {
"ubl:Invoice": {
"cbc:ID": "M2025/015",
"cbc:IssueDate": "2025-01-28",
"cbc:InvoiceTypeCode": "380",
"cbc:DocumentCurrencyCode": "EUR",
"cbc:BuyerReference": "K-10010",
"cac:AccountingSupplierParty": { ... },
"cac:AccountingCustomerParty": { ... },
"cac:TaxTotal": [{ ... }],
"cac:LegalMonetaryTotal": { ... },
"cac:InvoiceLine": [{ ... }]
}
}
},
"profile": "en16931",
"output": "base64"
}'
The payload is trimmed. The full sample loads with the live template, and the API documentation lists every field. Leave out cbc:CustomizationID, the API sets it for each format.
mcp.pdfgeneratorapi.com/mcp with a Bearer JWT. The e-invoice endpoints are among its tools.“Create a ZUGFeRD invoice for order 2026-0042 with the EN 16931 profile”
See the MCP server page for setup in each client.
Customer story
From this free template to compliant e-invoices
“I used your template from the Free Templates Library basically as a start.”
Jörg Braner, Founder, Kursretter
Kursretter runs first aid course billing for around 1,500 training providers in Germany. Its founder started from this ZUGFeRD template, learned the EN 16931 fields from a document that already passed validation, and now sends offers, B2B and B2C invoices and reversals from one document layer. Read the Kursretter story.
Data handling: we never store the data you send or the documents we generate, only the template structure. PDF Generator API is ISO 27001 certified and GDPR compliant, and can run as a dedicated instance in Frankfurt when your invoice data has to stay in the EU.
Pricing
How much does it cost to generate ZUGFeRD invoices?
The ZUGFeRD invoice template is free, and so is the 14 day sandbox account you use to build and test the integration. In production, documents are billed by credits on a monthly or annual plan, with no separate fee per template or per e-invoice format. Software vendors that offer e-invoicing to their own customers can embed it through the partner program.
Adding e-invoicing to your ERP or billing software?
On a short call we look at where your invoice data lives, which countries you invoice into and which formats your customers ask for. We can map your first payload with you, and your users keep editing their invoice layout in the embedded editor under your brand.
FAQ