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 asks for the format the first time: XRechnung (pure XML, public authorities) or ZUGFeRD (PDF with embedded data, the usual case between businesses). Without a choice the invoice's format applies, otherwise the customer's, otherwise XRechnung. The file is produced once and is fixed afterwards (GoBD); every further click only downloads it — ZUGFeRD as .pdf, XRechnung as .xml. For XRechnung 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.
Dunning board. Dunning in the invoice list shows all overdue invoices grouped by their current dunning level — and, per invoice, which level the next run would create (preview, nothing is booked). From there you send a reminder or pause one.
Pause dunning. For a payment arrangement, Pause dunning takes the invoice out of the dunning run up to a date; a reason is required. The invoice stays marked overdue, it just gets no new level. End pause brings it back early.
Look up legacy documents. Legacy documents in the invoice list opens the read-only archive of documents taken over from the previous system: header data and PDF. Legacy documents have no accounting effect — they are no open item, run into no dunning run, count towards no revenue figure and are not exported. They come in through the import wizard (target Legacy documents, header data by file) or the API (with PDF); a faulty import is removed and imported again.
Cost document. Dunning fee and default interest (switch in the invoicing settings) as well as a passed-on chargeback fee are created as a separate, finalised document without VAT. It refers to the invoice, the reminder refers to it — the invoice itself stays unchanged. Cost documents are not dunned and not issued as e-invoices.
Redeem a voucher. In a draft, the Voucher card accepts a discount code; it is deducted as a line of its own per tax rate. If the invoice is cancelled, the voucher gets its value back. See Promotions & vouchers.
Export to lexoffice. The Export column and the card on the document show the state of the transfer (open, transferred, error, conflict) with the error text and a link to the document in lexoffice. Transfer again resets an error and transfers immediately. The Export filter pulls out every invoice with an error.
Bulk send. Select several finalised invoices and Send selected: each goes out the same way as a single send; the message names success or the reason per invoice.
Credit limit. If credit control blocks finalising an invoice without an order, the Credit release card on the draft grants a single release with a reason.
Invoice on shipment. The shipped automation Create invoice on shipment invoices the order as soon as a shipment is booked at the packing station. It is off by default — whether the invoice is created at the packing station or in the office is a commercial decision. Switch it on under Automations; there you can add conditions (only certain payment methods, countries, customers) and set two switches: When to invoice (on every shipment, i.e. partial invoices, or only once delivery is complete) and State of the invoice (draft or issued immediately). An order that already has a draft or is fully invoiced is skipped — the same goods are never charged twice.
Automations. Sending (InvoiceSent), becoming overdue (InvoiceOverdue), a finalised credit note (CreditNoteIssued), a sent reminder (DunningSent) and every incoming payment (InvoicePaymentRecorded) are triggers in Automations.
See a customer's invoices. The customer has an Invoices tab: every invoice of that customer with number, type, date, due date, status, total and open amount — a click opens the invoice. The tab appears with invoicing.invoice.view and only shows invoices of brands in which you hold that permission.
Produce a PDF. Layout and brand come from the document templates.
Change the owner — also once finalised. When an employee leaves or the account changes hands, reassign their invoices: select the invoices in the list (for example via the Owner filter) and choose Change owner in the selection bar, or use the Change owner action on a single finalised invoice. Only the owner changes — number, lines, totals and status stay as they are. Every change is recorded in the audit log, marked as "change owner". Invoices of a brand in which you lack the permission, and invoices the new owner could not read in their brand, are skipped; the feedback states how many.
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. A draft may be created without a customer; it is only finalised with one. |
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. Pre-filled from the brand (§ 19) or the customer (§ 4); an invoice from an order takes the order's mode. |
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 e-invoice is produced in. Empty means the customer's format, otherwise XRechnung; the choice in the E-invoice dialog takes precedence. Fixed once the file is produced. |
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. |
Owner ownerId | no | employee | Who looks after the invoice. From an order the invoice takes over its owner, a credit note or correction that of the original invoice, otherwise the creator becomes owner. If the team settings set invoices to "Own only" or "Own + team", only the owner (or their team) sees and edits the invoice — list, detail view, PDF, e-invoice, dunning and every action. In the draft anyone who may edit the invoice (invoicing.invoice.create) changes it in the field; once finalised only with the Change owner permission (invoicing.invoice.reassign_owner, recorded) via the action. |
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
Service period per line. If an invoice bundles services from different periods, each line carries its own period in the Details fold-out (servicePeriodFrom/servicePeriodTo, both or neither). It is printed under the line and sent per line in the e-invoice (BT-134/135); empty means the header period applies.
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. With the print output way you set the number of copies (1 to 20). |
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. |
Legacy document (read-only archive)
Brought in through the import wizard (target Legacy documents) or the API; unchangeable afterwards.
| Field | Values / format | What it does |
|---|---|---|
Previous system sourceSystem | text, max. 40 characters, required | Where the document comes from, e.g. lexoffice. |
ID externalId | text, max. 120 characters | Together with the previous system the origin key: the same origin a second time returns the existing document. |
Type documentType | invoice, credit note, quote, order, delivery note, other | Classification only. Default: invoice. |
Document number number | text, max. 64 characters, required | The number of the previous system — not from the own number range. |
Document date documentDate | date (YYYY-MM-DD or DD.MM.YYYY), required | When the document was issued. |
Due date dueDate | date | Information only — there is no dunning run for legacy documents. |
Customer customerId | existing customer | Assigns the legacy document to a customer. In the import also via the customer number. |
Customer name customerName | text, max. 255 characters | Name as on the document; without it the name of the assigned customer. |
Net / tax / gross netAmount, taxAmount, grossAmount | amounts in cents | Two are enough, the third follows. Net plus tax must equal gross. |
Currency currency | ISO code, default EUR | Currency of the legacy document. |
Note note | text | Free remark on the legacy document. |
Brand brandId | existing brand | Who may see the legacy document; without it brandless. |
PDF pdfBase64, pdfFileName | PDF (Base64), max. 10 MB | The document itself. An existing PDF is never replaced. |
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.
invoicing.invoice.reassign_ownerto change the owner (also finalised, also in bulk) — a
permission of its own because the owner controls who sees the invoice; granted to Accounting by default.
invoicing.invoice.view_alllifts the visibility rule for invoices (see all invoices) — not granted
to any role by default. The rule itself is set in the team settings.
- 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.