---
title: "bills__create_bill"
method: POST
path: "/tools/bills__create_bill"
tags: ["Gastos"]
---

# bills__create_bill

`POST /tools/bills__create_bill`

### MCP
`create_bill` → `bills__create_bill`.

### HTTP
`POST /v1/bills` — Cuerpo JSON = objeto bill de alta.

### Requisitos
- `date`, `dueDate`, `provider.id` obligatorios.
- Líneas bajo `purchases.items` y/o `purchases.categories` (al menos una línea), salvo fusión válida con órdenes de compra (ver guía).
- **No enviar** en alta: id, status, total, totalPaid, balance, calculationScale, payments (solo lectura / calculados).
- **No usar** `idCostCenter` en raíz (rechazado); usar `costCenter: { id }` o atajo numérico `costCenter`.

### Impuestos en líneas
`tax` debe ser arreglo de `{ id }`. Códigos: 11048, 11058, 11081 (multiples impuestos), 11067/11059 ids inválidos.

### Respuesta exitosa
HTTP **201**: bill creado.

### Errores (selección)
| Código | Significado | Acción |
|--------|-------------|--------|
| 11004 | Proveedor no encontrado | Corregir `provider.id` |
| 2094 | Proveedor deshabilitado | Habilitar proveedor o usar otro |
| 11040 | Sin ítems ni categorías | Agregar líneas en `purchases` |
| 20007 | Resolución / numberTemplate.id inválida | Ajustar numeración según país |
| 11097 / 11101 | Retenciones o pagos no permitidos al timbrar (CR) | Quitar o ajustar retenciones/pagos para timbre |
| 900 | Límite de plan | Actualizar plan o borrar documentos |
| 907 | Plan solo lectura | Plan que no permite escritura |
| 3051 | Fallo timbre — puede ir `error` + `bill` parcial | No repetir POST a ciegas; usar `update_bill` con id (ver guía 3051) |
| 11108 | UUID ya asociado a otro bill | Usar otro UUID o factura existente |

Ver `error_3051_stamp_failure` y `error_code_reference` en la guía pública.

## Request body

- object — Body POST. Incluye date, dueDate, provider, purchases (items/categories), opcional numberTemplate, currency, warehouse, costCenter, stamp, retentions, purchaseOrders, etc. Ver request_body_shape y line_models en la fuente.

## Response `200`

Bill creado; o 400 con 3051 y bill parcial

---

[API](https://skmtc.net/alegra/apis/ingresos.md) · [All operations](https://skmtc.net/alegra/apis/ingresos/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/alegra/ingresos/versions/cd52d3f68f1b/schema)
