---
title: "Invoicing"
description: "Entwürfe, Buchung, Nummerierung. Jede App ist ein Modul auf einem gemeinsamen Datenmodell."
canonical: "https://obop-platform.sliplane.app/de/apps/invoicing/"
lang: "de"
---

# Invoicing

## Wofür sie gedacht ist

Prepare customer invoices as drafts and post them to give each one its gapless legal number. Posting is the one step in the built-in apps that always needs a person: an agent can prepare the draft and propose the posting, and a human with the right permission approves it.

## Was das Paket leistet und was nicht

Customer invoices: drafts, posting with a gapless legal number, cancellation.

## Modelle

### `invoice`

A customer invoice; posted invoices are corrected only by credit notes

Lesegruppe: `invoicing.user`. Schreibgruppe: `invoicing.user`.

| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
| `sale_order_id` | ref → sale_order | `none` | nein | `invoicing.user` | im Klartext | Source sale order id |
| `state` | select (draft, posted, cancelled) | `none` | nein | `invoicing.user` | im Klartext | Lifecycle: draft, posted or cancelled |
| `total_minor` | money | `none` | nein | `invoicing.user` | im Klartext | Invoice total in minor units |
| `number` | text | `none` | nein | `invoicing.user` | im Klartext | Gapless legal number, set when posted |

## Workflows

### `invoice`

| Aktion | Bewegt | Wer sie ausführen darf | Freigabe |
|---|---|---|---|
| `invoice.post` | state: draft → posted | `invoicing.manager` | ja |
| `invoice.cancel` | state: draft → cancelled | `invoicing.user` | nein |

## Berechtigungsgruppen

Von dieser App verwendete Gruppen:

- `invoicing.manager`
- `invoicing.user`

## Freigabeschritte

Schritte, die ein Agent nur vorschlagen kann:

- `invoice.post`

## Was Agenten tun können und was nicht

Ein Agent kann Datensätze dieser App lesen, durchsuchen, anlegen und aktualisieren sowie Aktionen ausführen, die keine Freigabe brauchen, und zwar innerhalb der Berechtigungsgruppen seines Tokens.

Diese Schritte kann er nur vorschlagen, und eine Person muss sie freigeben: `invoice.post`, `invoice.delete`.

## Abhängigkeiten

- `base`
- `sales`

## Installation

Integriert. Sie ist in jeder Instanz verfügbar und kann nicht entfernt werden.

## Selbst bauen

[Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden](/de/docs/reference/module-manifest/)
