PDF Generator API

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

ZUGFeRD invoice template · sample invoice M2025/015

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.

ZUGFeRD invoice template · sections and data fieldsTop to bottom, as printed
  1. 01SellerName, address, contact person and VAT ID of the business issuing the invoice.cac:AccountingSupplierPartycbc:EndpointID
  2. 02BuyerCompany, contact, address and VAT ID of the customer.cac:AccountingCustomerParty
  3. 03Invoice detailsSequential invoice number, customer number, invoice date and date of service.cbc:IDcbc:BuyerReferencecbc:IssueDatecac:InvoicePeriod
  4. 04Line itemsPosition, description, quantity, unit code, unit price and line total, one table row per item.cac:InvoiceLine[ ]cbc:InvoicedQuantitycac:Price
  5. 05VAT summaryNet subtotal, VAT rate and amount, total due, and the legal reason when a line is VAT exempt.cac:LegalMonetaryTotalcac:TaxTotalcbc:TaxExemptionReason
  6. 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.

nbsp;1, 2025

nbsp;1, 2027

nbsp;1, 2028

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.

  1. Copy the template. Create a free account, open this ZUGFeRD template and save it to your workspace.
  2. Add your branding. Change the logo, colors and labels in the editor, or ask the AI template builder. Keep the UBL field names.
  3. Send the invoice data. Post it to /einvoice/facturx with your template ID. Call GET /einvoice/schema once to see every field the API accepts.
  4. 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.

1Connect the MCP server
Point Claude, Cursor or Cline at mcp.pdfgeneratorapi.com/mcp with a Bearer JWT. The e-invoice endpoints are among its tools.
2Give it the order
Paste the order or let the agent read it from your billing system.
3Ask for the e-invoice
The agent maps the order to the UBL fields, calls the Factur-X endpoint with this template and returns the ZUGFeRD PDF.

“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.

Michal Líška, COO at PDF Generator API

Adding e-invoicing to your ERP or billing software?

Michal Líška · COO, PDF Generator API

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

ZUGFeRD invoice questions

What is a ZUGFeRD invoice?
A ZUGFeRD invoice is a PDF/A-3 file that shows a normal invoice and carries the same invoice data as embedded XML following the European EN 16931 standard. People read the PDF, and accounting software imports the XML without retyping. ZUGFeRD is the German name for the format the French call Factur-X.
Is a ZUGFeRD invoice a valid e-invoice in Germany?
Yes. The German tax office accepts ZUGFeRD from version 2.0.1 as an e-invoice, except the MINIMUM and BASIC WL profiles. This template is generated with the EN 16931 profile by default, or BASIC if you choose it, and both count as e-invoices.
What is the difference between ZUGFeRD and XRechnung?
ZUGFeRD is a hybrid format: a readable PDF with the XML embedded. XRechnung is XML only and adds German rules such as a mandatory seller contact and buyer reference. Public authorities often ask for XRechnung. Businesses accept either. The API produces both from the same JSON.
When do I have to send e-invoices in Germany?
Every business in Germany has had to be able to receive e-invoices since January 1, 2025. From January 1, 2027, businesses with prior year turnover above €800,000 must issue them for domestic B2B sales, and from January 1, 2028 all businesses must. Invoices up to €250 are exempt.
Is this ZUGFeRD invoice template free?
Yes. You can open and edit the template in the browser without an account. To save your version and generate ZUGFeRD files through the API, create a sandbox account, which is free for 14 days and needs no credit card.
Can I change the language and layout of the template?
Yes. The labels are in German, and you can translate them, add your logo and move every block in the drag and drop editor or with the AI template builder. Keep the UBL field names, because the E-Invoice API fills the PDF and the XML from the same fields.
Do I need to know XML to create ZUGFeRD invoices?
No. You send JSON in the Peppol BIS Billing 3.0 UBL shape, and the API builds and validates the XML and the PDF/A-3 file. When a rule fails, the response names the rule ID, for example BR-DE-5, so you know which field to add.
Can I create ZUGFeRD invoices without code?
Yes. The PDF Generator API node for n8n has an E-Invoice resource with a Create Factur-X E-Invoice operation. Map your invoice fields in a workflow, pick this template and the node returns the finished ZUGFeRD PDF.
Do you store the invoice data I send?
No. 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 a dedicated deployment in Frankfurt keeps processing inside the EU.

1,500+
companies trust us

6M+
documents generated monthly

Information security

Trusted by teams featured in our case studies