# Excel to ZUGFeRD

Fill the template, drop the workbook, get one ZUGFeRD PDF per invoice: an invoice your customer can simply read, with the e-invoice data inside it.

Source: https://tally-stick.com/excel-to-zugferd

## How it works

Download the template, fill it in, drop it back, and you get one PDF per invoice row. The PDF is a normal-looking invoice a person can read, and the machine-readable invoice rides inside it as `factur-x.xml` in UN/CEFACT CII syntax at the EN 16931 profile. That is the file to send a customer who is not set up for e-invoicing yet.

Nothing is uploaded. The workbook is read and every PDF is built in your own browser, which is why there is no limit on how many you make.

Two sheets, and the names matter: `Invoice` with one row per invoice, `Lines` with one row per line item keyed by invoice number. It is the same workbook the XRechnung tool reads, so one filled template feeds both.

## Standards it can write

A **Standard** selector picks what the file declares. The default is XRechnung 3.0. The choice is remembered in this browser and shared by the three writing tools, and it also sets the usual currency, decides whether a Leitweg-ID applies, and drives how many decimal places the amounts carry: a JPY invoice is written without them.

| Standard | CustomizationID | ProfileID |
| --- | --- | --- |
| XRechnung 3.0 (Germany) | `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0` | `urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` |
| NLCIUS / SI-UBL 2.0 (Netherlands) | `urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0` | `urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` |
| Peppol BIS Billing 3.0 (Europe and international) | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | `urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` |
| EN 16931 (no national rules) | `urn:cen.eu:en16931:2017` | not written |
| Peppol PINT A-NZ (Australia, New Zealand) | `urn:peppol:pint:billing-1@aunz-1` | `urn:peppol:bis:billing` |
| Peppol PINT Japan | `urn:peppol:pint:billing-1@jp-1` | `urn:peppol:bis:billing` |
| Peppol PINT Malaysia | `urn:peppol:pint:billing-1@my-1` | `urn:peppol:bis:billing` |
| Peppol PINT Singapore (InvoiceNow) | `urn:peppol:pint:billing-1@sg-1` | `urn:peppol:bis:billing` |
| Peppol PINT United Arab Emirates | `urn:peppol:pint:billing-1@ae-1` | `urn:peppol:bis:billing` |

The invoice body is EN 16931 in every case. What the standard changes is the two identifiers, the currency rounding, whether a Leitweg-ID applies, the scheme the electronic address is registered under, and which identifiers a national rule insists on: NLCIUS refuses an invoice without a KVK or OIN number on both parties and without a means of payment.

## What is checked before anything is written

An invoice is refused before it reaches the PDF writer when a field EN 16931 treats as mandatory is missing, and the refusal names the invoice number so you know which row to fix. The rest of the workbook still converts. Totals are computed rather than trusted, and the figures printed on the page are the same ones written into the XML.

## Questions

### What is the difference between ZUGFeRD and XRechnung?

ZUGFeRD is one PDF that a person can read with the invoice data embedded inside it, so it works with a customer who is not set up for e-invoicing yet. XRechnung is XML only and is what German public authorities require. Same invoice, two deliverables: use [Excel to XRechnung](https://tally-stick.com/excel-to-xrechnung) for the XML.

### Which ZUGFeRD version comes out?

A PDF/A-3 file carrying factur-x.xml at the EN 16931 profile, which is the ZUGFeRD 2.x and Factur-X attachment name and profile that receiving software looks for.

### What does the Standard selector change here?

The XML inside the PDF is always UN/CEFACT CII at the EN 16931 profile, because that is the syntax ZUGFeRD is built on. What the standard changes is the invoice itself: which currency is assumed, how many decimal places the amounts carry, and whether a Leitweg-ID counts as the buyer reference.

### Can I put several invoices in one workbook?

Yes. One row per invoice on the Invoice sheet, its line items on the Lines sheet keyed by invoice number, and you get one PDF per invoice.

### I would rather type the invoice than fill a sheet.

[Create XRechnung](https://tally-stick.com/create-xrechnung) is a form, and it exports the same ZUGFeRD PDF at the bottom.

## The other writing tools

- [Create XRechnung](https://tally-stick.com/create-xrechnung)
- [Excel to XRechnung](https://tally-stick.com/excel-to-xrechnung)
