---
title: "Invoicing"
description: "Utkast, bokföring, numrering. Varje app är en modul i en gemensam datamodell."
canonical: "https://obop.dev/sv/apps/invoicing/"
lang: "sv"
---

# Invoicing

## Vad den är till för

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.

## Vad paketet gör och inte gör

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

## Modeller

### `invoice`

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

Läsgrupp: `invoicing.user`. Skrivgrupp: `invoicing.user`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `sale_order_id` | ref → sale_order | `none` | nej | `invoicing.user` | i klartext | Source sale order id |
| `state` | select (draft, posted, cancelled) | `none` | nej | `invoicing.user` | i klartext | Lifecycle: draft, posted or cancelled |
| `total_minor` | money | `none` | nej | `invoicing.user` | i klartext | Invoice total in minor units |
| `number` | text | `none` | nej | `invoicing.user` | i klartext | Gapless legal number, set when posted |

## Arbetsflöden

### `invoice`

| Åtgärd | Flyttar | Vem får köra den | Godkännande |
|---|---|---|---|
| `invoice.post` | state: draft → posted | `invoicing.manager` | ja |
| `invoice.cancel` | state: draft → cancelled | `invoicing.user` | nej |

## Behörighetsgrupper

Grupper som den här appen använder:

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

## Steg som kräver godkännande

Steg som en agent bara kan föreslå:

- `invoice.post`

## Vad agenter kan och inte kan göra

En agent kan läsa, söka, skapa och uppdatera poster i den här appen, och köra de åtgärder som inte kräver godkännande, inom behörighetsgrupperna för sin token.

Den kan bara föreslå de här stegen, och en person måste godkänna dem: `invoice.post`, `invoice.delete`.

## Beroenden

- `base`
- `sales`

## Installera

Inbyggd. Den finns i varje instans och kan inte tas bort.

## Bygg din egen

[Modulguiden visar hur appar som den här skrivs](/sv/docs/reference/module-manifest/)
