# Create an XRechnung

Fill in the invoice, download the XRechnung 3.0 file your customer can process. Every line item you need, and the ZUGFeRD PDF as well.

Source: https://tally-stick.com/create-xrechnung

## How it works

Type the invoice on the page: document number and dates, your own company, your customer, the line items, and optionally IBAN and payment terms. Totals and VAT per rate are recalculated as you type. Two buttons at the bottom write the file.

`Download XRechnung XML` produces UBL 2.1 declaring the standard chosen at the top of the form, XRechnung 3.0 by default. `Download ZUGFeRD PDF` produces a PDF/A-3 invoice a person can read, carrying `factur-x.xml` in UN/CEFACT CII syntax at the EN 16931 profile.

Nothing is uploaded. The form is turned into XML in your own browser, which is also why there is no daily limit. Your own company details are kept in this browser's local storage so the next invoice starts half filled; the customer and the line items are not.

No box is filled in for you, and the Document type and Unit dropdowns start on nothing. A pre-filled issue date is a date nobody checked, and a pre-filled unit is an assumption about your invoice: what is missing is refused rather than quietly guessed.

## 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

The download is refused, with the missing fields listed, when a field EN 16931 treats as mandatory is absent: the invoice number, a valid `YYYY-MM-DD` issue date, the document type, the currency, a buyer reference or Leitweg-ID, seller and buyer name, street, city, postcode and a two-letter country code, an electronic address for each party, at least one line, a positive quantity, a description and a unit per line, and a VAT rate inside 0 to 100. Totals are computed rather than trusted: net per line, taxable base per VAT rate, tax per rate, and the gross total.

## Questions

### How many line items can I add?

As many as the invoice needs. There is no cap and no paid tier that unlocks one.

### What do I get out?

An XRechnung 3.0 file in UBL 2.1 syntax, which is what German public buyers accept, and optionally a ZUGFeRD PDF that carries the same data inside a readable invoice.

### What is a Leitweg-ID?

The routing code a German public authority gives you so its system knows which department the invoice belongs to. It looks like 04011000-1234512345-06. If your customer gave you a plain order or buyer reference instead, put that in the buyer reference field and leave the Leitweg-ID empty.

### Can I write something other than XRechnung?

Yes. The Standard selector at the top also writes NLCIUS for the Netherlands, Peppol BIS Billing 3.0 (which is also Norway's EHF Billing 3.0), plain EN 16931, and Peppol PINT for Australia and New Zealand, Japan, Malaysia, Singapore and the United Arab Emirates. The form stays the same, but the checks follow the standard.

### Do I need an account?

No. There is no sign-up and no limit on how many invoices you write.

### I already have the data in a spreadsheet.

Then skip the form. [Excel to XRechnung](https://tally-stick.com/excel-to-xrechnung) takes a filled workbook and writes one file per invoice, and [Excel to ZUGFeRD](https://tally-stick.com/excel-to-zugferd) does the same as PDFs.

### Is the file checked?

The EN 16931 mandatory fields are checked before anything is written, and without them there is no file. To check an invoice somebody sent you, use the [EN 16931 validator](https://tally-stick.com/en16931-validator): it names the rule and the amounts it is about.

## The other writing tools

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