Add line items to a Beleg
Line items (Positionen) carry the amounts on a Beleg (receipt/expense document). This article shows you how to add them, what each field means, and the limits that apply. Adding line items requires the belege:transition permission and a Beleg in an editable state (Draft or Needs Clarification).
Add a line item
- Open the Beleg in Draft or Needs Clarification.
- In the Positionen grid, add a row.
- Enter the description, quantity, and unit price. Optionally set the VAT rate, cost center, and GL mapping, and the position type.
- Save the Beleg. All line items are sent together and the amounts and header totals are recomputed on save.
Note: Line items are submitted as a single array with the Beleg, not one at a time. Saving applies the whole set at once and recomputes every amount.
Line item fields
| Field | Required | Notes |
|---|---|---|
| Description | Yes | What the line covers, for example "Diesel" or "AdBlue". Up to 500 characters; leading/trailing spaces are trimmed. |
| Quantity | Yes | Must be greater than zero. Stored to 4 decimal places. |
| Unit price | Yes | Must be zero or greater. Stored to 2 decimal places. |
| VAT rate (USt) | No | Percentage, for example 19. Validated against your active VAT rate options. |
| Cost center (Kostenstelle) | No | Validated against your active cost center options (case-insensitive). |
| GL mapping | No | General-ledger account code, validated against your active GL mapping options. |
| Position type | No | Category of the line, for example fuel, washing, toll, maintenance_repair, or other. |
| Fuel type | No | References the fuel type catalog; relevant when the position type is fuel. |
| Sort order | No | Controls row order. If omitted, rows are numbered in the order you enter them. |
The 20 line item limit
A Beleg can hold at most 20 line items. Sending more is rejected with BELEG_LINE_ITEM_LIMIT_EXCEEDED ("Maximum of 20 line items reached") and nothing is saved. In the UI the Add action is disabled once you reach 20 rows.
Validation you should expect
- A blank description is rejected: "Line item {n} description is required".
- A quantity of zero or less is rejected: "Quantity must be greater than zero".
- A negative unit price is rejected: unit price must be zero or greater.
- A VAT rate, cost center, or GL mapping that is not an active reference option is rejected with
FINANCIAL_REFERENCE_NOT_ACTIVE.
When you update a Beleg (rather than creating one), at least one line item is required — an update with zero line items is rejected.
Tip: Rows are automatically renumbered 1…n by sort order on save, so you do not need to keep the numbering gap-free yourself. Reorder rows and the platform re-sequences them for you.
What happens on save
For each line item the platform computes the net, VAT, and gross amounts, then sums them into the Beleg header totals. It re-evaluates the applicable rules and records audit events for the line-item change and the totals recomputation, all within a single transaction.
Related
- Tag line items with VAT rate, cost center, and GL mapping
- How net, VAT, and gross amounts are calculated
- Edit line items: create, update, and delete
- How header totals are recomputed on every change