Invoices

Overview
The invoice is the document with the strictest rules in the whole system — and everything that feels inconvenient here follows from one sentence:
On finalisation a gapless invoice number is drawn, and after that the invoice is immutable. Correction happens exclusively through reversal and a credit note. The application asks explicitly beforehand, because the step cannot be taken back.
Five states: draft, finalised, paid, overdue, cancelled. Five types: invoice, partial invoice, final invoice, recurring invoice, invoice correction.
Core tasks
Create an invoice. Two routes: blank or from an order. The second is the normal case — it takes the line items across rather than retyping them.
Enter line items. Description, quantity, unit, unit price and VAT rate.
Finalise. Finalise draws the number and closes the invoice. From here it is a document — a draft is not one yet.
Record a payment. Record payment books an incoming amount; alongside the total, the list shows the remaining open amount.
Cancel. Reversal + credit note cancels the invoice and creates the reversal credit note automatically. Both documents remain — that is the point.
Produce an e-invoice. E-invoice (XRechnung) generates the structured format. For that the buyer reference / routing ID is mandatory — without it, public-sector customers reject the invoice, mechanically and without asking.
Run dunning. Dunning run marks overdue invoices and creates reminders; the message names both counts. The levels live in Invoicing settings.
Produce a PDF. Layout and brand come from the document templates.
Fields in detail
The What it does column answers what changes in the system — not what the field is called. The grey name behind the label is the API field: the same thing runs under that name through automation, import and AI tools.
Draft and issued are two states. While the invoice is a draft, every field can be changed. Issuing turns it into a document: number, amounts and taxes are fixed, and a correction then runs through an invoice correction, not through editing.
Document header
| Field | Required | Values / format | What it does |
|---|---|---|---|
Customer customerId | yes to issue | an existing customer | The invoice recipient. Address, payment terms, language and e-invoice format come along as defaults; the country of the billing address decides the tax case. |
Type type | no | standard, partial, final, recurring, credit note, proforma | What kind of document is created. Partial and final belong together: the final invoice deducts the partials already raised. Proforma is not an invoice for tax purposes and creates no receivable. |
Brand brandId | no | one of your brands | Which brand invoices. Determines number range, document template, sender address and bank details — which is why changing it later is a real change, not cosmetics. |
Currency currency | no | a configured currency | The currency of the document. The rate is frozen on issue; later rate changes no longer touch the document. |
Supply or service date supplyDateMode | no | none, delivery date, service date, delivery period, service period | The single switch for the mandatory entry under § 14 UStG. Day modes fill the delivery date, period modes the period; the other fields are cleared on save so the document never shows both. |
Delivery date deliveryDate | no | date | When the service was delivered. For tax purposes this is the decisive date — not the invoice date. |
Service period from / to servicePeriodFrom, servicePeriodTo | no | date | A period instead of a single day, as maintenance and subscriptions need. It appears on the document. |
Payment term (days) paymentTermDays | no | 0 or more | How many days until due. 0 means due immediately. |
Payment terms paymentTermUlid | no | master data "payment terms" | Deadline and early-payment discount in one. Chosen, it overrides the plain payment term and supplies the discount schedule that dunning and payment matching calculate with. |
Document template documentTemplateId | no | a configured template | The layout of the PDF. Empty means the brand's standard template. |
Tax mode taxMode | no | standard, small business, exempt | How VAT is handled. Small business and exempt show no tax and put the prescribed note on the document instead. |
Tax display taxDisplayMode | no | net, gross, tax free | Whether prices are calculated and shown net or gross. Switching recalculates the whole document rather than swapping a label. |
E-invoice format eInvoiceFormat | no | XRechnung or ZUGFeRD | Which structured format the invoice is produced in. Comes from the customer; empty means a PDF without embedded data. |
Buyer reference buyerReference | with public authorities | text, max. 100 characters | The reference the recipient requires for routing. With XRechnung to public authorities it is mandatory — without it the receiving office rejects the invoice. |
Debtor account debtorAccount | no | digits and letters, max. 20 characters | Which personal account the document posts to. Editable in the draft, frozen once finalised. Empty means "let the account determination decide", not "no account". |
Cost centre costCenter | no | text, max. 36 characters | KOST1 of the document. Pre-fills every line that carries no cost centre of its own. |
Cost object costObject | no | text, max. 36 characters | KOST2 of the document — what the cost is carried by, a project or an order for instance. |
MRN (export) exportMrn | no | one or more numbers of 18 characters each, separated by commas | The movement reference numbers of the export declarations. Taken over from the order's delivery notes (one number per partial delivery to a third country), or the order's own if no delivery note carries one — frozen and correctable in the draft; each number is checked on its own. They are printed on the PDF. A later change to the order does not shift the issued invoice. |
Header text headerText | no | formatted text | Printed above the line items. New invoices get the default header text of document type invoice from the text blocks. Editable in the draft only. |
Footer text footerText | no | formatted text | Printed below the total and the payment terms. Prefill and editability as for the header text. |
Line items
Every row is an article, a heading, free text, a subtotal, a separator or a page break. Only articles are calculated.
| Field | Values / format | What it does |
|---|---|---|
| Description | text | What appears on the document. A chosen product pre-fills it; overwriting is allowed — the document records what was sold, not what the catalogue says today. |
| Quantity | number, 0 or more | How much. The permitted decimals come from the product's unit. |
| Unit | text or master-data unit | Piece, hour, kilogram … It appears on the document and governs the decimals of the quantity. |
| Unit price | amount | Price per unit. Comes from pricing (customer price, tier, promotion) and can be overwritten. |
| Discount % | 0 to 100 | Reduction on this item. Applied before the document discount. |
| VAT % | tax rate | The tax rate of this item. Comes from the product or the customer's tax case; each rate is reported separately on the document. |
| Optional | yes/no | The item is shown but does not count towards the total. Meant for quotes that make variants visible. |
Document discount and dispatch
| Field | Values / format | What it does |
|---|---|---|
Document discount percent documentDiscountPercent | 0 to 100 | Reduction on the whole invoice, after the item discounts. Spread proportionally across the tax rates so the tax report stays correct. |
Document discount amount documentDiscountAmount | amount | The same as a fixed amount. Percent and amount exclude each other — whichever is set last applies. |
Correction reason correctionReason | text, max. 500 characters | For credit notes and corrections only: why the correction is made. It appears on the document and is the reason an audit will look for. |
Dispatch dispatch | recipients, subject, body, attachments | Mailing the document. Recipients come from the contacts with a matching role, subject and body from the mail template. The document PDF is always attached; further attachments can be dropped. Dispatch creates an entry in the communication history, not a ticket. |
Interface and automation only
| Field | Values / format | What it does |
|---|---|---|
orderUlid | identifier of an order | Creates the invoice from an order and carries over its items. |
orderUlids | several orders | Consolidated invoice: several orders of the same customer and brand on one invoice. The first order leads (brand, currency, tax mode, payment term); every order named must be released for it and match the first in currency, tax mode and document discount. |
sourceContractId | identifier of a contract | Marks the invoice as the result of a contract billing run. |
items | list of items | The items as a whole. Sending it replaces the list rather than adding single rows. |
Settings & permissions
- Module
module.invoicing. - Tightly cut permissions:
invoicing.invoice.view,.create,.issue(finalise),
.cancel (reversal), .send, .einvoice, plus invoicing.payment.record for incoming payments and invoicing.dunning.manage for dunning.
- The due date comes from the payment term and is frozen on finalisation, see
- The early-payment discount is shown on the invoice itself: the detail view lists the date and
the amount payable for each discount step, then the net due date — calculated from the frozen schedule, exactly as on the PDF. A discount that was granted appears with the totals.
- The number comes from the number scheme — gapless schemes cannot be deleted, see
FAQ & troubleshooting
I can no longer change an invoice. It is finalised. Reversal and credit note, then start afresh — any other route would not be proper bookkeeping.
The e-invoice is rejected. Check the buyer reference (routing ID). It is a mandatory field of the XRechnung format.
The dunning run produces nothing. Either nothing is overdue, or no dunning levels are configured.
The due date is wrong. It comes from the payment term as it stood at finalisation, not from today's.