---
title: "Invoicing"
description: "Brouillons, validation, numérotation. Chaque application est un module sur un même modèle de données."
canonical: "https://obop.dev/fr/apps/invoicing/"
lang: "fr"
---

# Invoicing

## À quoi elle sert

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.

## Ce que fait et ne fait pas le paquet

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

## Détails du module

- **Version:** `0.2.0`, suit les versions du noyau
- **Auteur:** SpaceCorps
- **Licence:** [AGPL-3.0-or-later](https://spdx.org/licenses/AGPL-3.0-or-later.html)
- **Noyau requis:** `^0.2` (le noyau actuel est 0.2.0)
- **Maturité:** Stable
- **Catégories:** Finance

## Modèles

### `invoice`

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

Groupe de lecture: `invoicing.user`. Groupe d'écriture: `invoicing.user`.

| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
| `sale_order_id` | ref → sale_order | `none` | non | `invoicing.user` | en clair | Source sale order id |
| `state` | select (draft, posted, cancelled) | `none` | non | `invoicing.user` | en clair | Lifecycle: draft, posted or cancelled |
| `total_minor` | money | `none` | non | `invoicing.user` | en clair | Invoice total in minor units |
| `number` | text | `none` | non | `invoicing.user` | en clair | Gapless legal number, set when posted |

## Flux de travail

### `invoice`

| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
| `invoice.post` | state: draft → posted | `invoicing.manager` | oui |
| `invoice.cancel` | state: draft → cancelled | `invoicing.user` | non |

## Groupes de permissions

Groupes utilisés par cette application :

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

## Étapes d'approbation

Étapes qu'un agent ne peut que proposer :

- `invoice.post`

## Ce que les agents peuvent et ne peuvent pas faire

Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.

Il ne peut que proposer ces étapes, qu'une personne doit approuver : `invoice.post`, `invoice.delete`.

## Dépendances

Chaque dépendance indique les versions qu’elle accepte. Les applications intégrées suivent les versions du noyau : une exigence à leur égard est donc vérifiée par rapport à la version du noyau.

- [Contacts](/fr/apps/contacts/): `*` (intégré)
- [Sales](/fr/apps/sales/): `*` (intégré)

## Installation

Intégrée. Elle est disponible dans chaque instance et ne peut pas être supprimée.

## Créer la vôtre

[Le guide des modules montre comment sont écrites les applications de ce type](/fr/docs/reference/module-manifest/)
