Creating: format, sections and mandatory fields
What for. To build a compliant e-invoice from a form — in any of the nine formats, or as a hybrid PDF.
The format comes first
Section titled “The format comes first”Without a format in the address, the page shows no form but the tiles of all nine invoice types:
“Please choose the target format first – the input fields depend on it.” After that you work under
/en/create/xrechnung, /en/create/fatturapa and so on; “Change format” leads back.
The six sections
Section titled “The six sections”| Step | Heading | Content |
|---|---|---|
| 1 | Key data | invoice type, invoice number, date, due date, currency, Leitweg-ID / buyer reference; expandable References (project, contract, preceding invoice) |
| 2 | Parties | seller and buyer (name, VAT ID with a check button, street, postcode, town, country); for the seller additionally the registration number and its scheme, in plain sight; expandable Further details as well as Alternative payee and Tax representative |
| 3 | Line items | per row: description, quantity, unit, unit price, VAT percentage, VAT category; expandable Details & discount |
| 4 | Payment | payment method, IBAN, BIC, account holder, remittance reference, payment terms, prepaid, rounding; below that Document-level allowances and charges |
| 5 | Further details | delivery date, service period, delivery address, notes, Tax exemption |
| 6 | Format & create | target format (a genuine choice only with ZUGFeRD), visual sources for the PDF, a live summary (net · VAT · gross · payable) |
With JavaScript this is a step wizard; without it, all six sections sit one below the other and the form is submittable in one go.
Prefilled are: today’s date, country DE for both parties, one line item with quantity 1, unit
piece, 19 % and the category standard rate, currency EUR, payment method bank transfer.
Mandatory fields
Section titled “Mandatory fields”The browser requires immediately: the invoice date and the name of seller and buyer; the invoice number only when not signed in — with an account it may be left empty, in which case finalising draws the next consecutive number; street, postcode and town for both parties only with XRechnung (BR-DE-4/-8/-9).
The server checks everything else collectively — on submission you get all shortcomings at once:
| Message (abridged) | The rule behind it |
|---|---|
| “Please provide a due date or payment terms …” | BR-CO-25; does not apply to FA_VAT, which has neither field |
| “Please provide a seller identifier (VAT ID or tax/registration number) …” | BR-CO-26 |
| “For line items at the standard, reduced or zero rate, the seller’s VAT ID is mandatory …” | BR-S-02 / BR-Z-02 / BR-G-02 — the tightening of the previous rule |
| “Line item {n}: quantity must be greater than 0” | a basic check in every format |
| “A negative unit price is not permitted – please enter the deduction as an allowance.” | BR-27 |
| “Please give a reason for every allowance or charge …” | BR-42 / BR-33 |
| “Line item {n}: at the standard rate … greater than 0 …” or “… the tax rate must be 0.” | rate and category must match — at line-item as well as document level |
| XRechnung: “For XRechnung the seller contact (name, telephone and email) is mandatory …” | BR-DE-2/5/6/7 — which is why this block is expanded for XRechnung and reads “Further details — mandatory for XRechnung” |
| XRechnung: “An XRechnung must contain payment details (BR-DE-1) …” / “… needs an IBAN (BR-DE-23) …” | hence the note above step 4 |
| XRechnung: “Card and direct-debit payment require … details … this form does not capture …” | BG-18/BG-19 are not captured |
The seller’s identifier requirement is stated up front at the field — and only there, because BR-CO-26 does not require an identifier for the buyer. The tax or registration number satisfies it just as well, and therefore sits in plain sight next to the VAT ID for those formats that can carry it.