---
title: "Invoicing"
description: "Borradores, contabilización y numeración. Cada aplicación es un módulo sobre un único modelo de datos."
canonical: "https://obop-platform.sliplane.app/es/apps/invoicing/"
lang: "es"
---

# Invoicing

## Para qué sirve

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.

## Qué hace y qué no hace el paquete

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

## Modelos

### `invoice`

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

Grupo de lectura: `invoicing.user`. Grupo de escritura: `invoicing.user`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `sale_order_id` | ref → sale_order | `none` | no | `invoicing.user` | en claro | Source sale order id |
| `state` | select (draft, posted, cancelled) | `none` | no | `invoicing.user` | en claro | Lifecycle: draft, posted or cancelled |
| `total_minor` | money | `none` | no | `invoicing.user` | en claro | Invoice total in minor units |
| `number` | text | `none` | no | `invoicing.user` | en claro | Gapless legal number, set when posted |

## Flujos de trabajo

### `invoice`

| Acción | Mueve | Quién puede ejecutarla | Aprobación |
|---|---|---|---|
| `invoice.post` | state: draft → posted | `invoicing.manager` | sí |
| `invoice.cancel` | state: draft → cancelled | `invoicing.user` | no |

## Grupos de permisos

Grupos que usa esta aplicación:

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

## Pasos con aprobación

Pasos que un agente solo puede proponer:

- `invoice.post`

## Qué pueden y qué no pueden hacer los agentes

Un agente puede leer, buscar, crear y actualizar registros de esta aplicación, y ejecutar las acciones que no requieren aprobación, dentro de los grupos de permisos de su token.

Solo puede proponer estos pasos, y una persona debe aprobarlos: `invoice.post`, `invoice.delete`.

## Dependencias

- `base`
- `sales`

## Instalación

Incluida. Está disponible en todas las instancias y no se puede quitar.

## Crea la tuya

[La guía de módulos explica cómo se escriben aplicaciones como esta](/es/docs/reference/module-manifest/)
