Saltearse al contenido

Documentos de venta

Pedidos de venta

GET /api/sales # Listar pedidos
GET /api/sales/:id # Detalle
GET /api/sales/:id/pdf # Descargar PDF
POST /api/sales # Crear pedido
POST /api/sales/:id/cancel # Cancelar

Estados: O (Abierto) → P (Parcial) → C (Cerrado) / X (Cancelado)

Albaranes de venta

GET /api/sales/delivery-notes # Listar
GET /api/sales/delivery-notes/:id # Detalle
GET /api/sales/delivery-notes/:id/pdf # PDF
POST /api/sales/delivery-notes # Crear
POST /api/sales/delivery-notes/:id/cancel # Cancelar

Estados: O (Abierto) → C (Facturado) / X (Cancelado)

Al crear un albaran se descuenta stock del almacen.

Facturas de venta

GET /api/sales/invoices # Listar
GET /api/sales/invoices/:id # Detalle
GET /api/sales/invoices/:id/pdf # PDF
POST /api/sales/invoices # Crear
POST /api/sales/invoices/:id/post # Asentar (borrador → asentada)
POST /api/sales/invoices/:id/cancel # Cancelar
DELETE /api/sales/invoices/:id # Eliminar (solo borradores)

Estados: D (Borrador) → O (Asentada) / X (Cancelada)

Crear un documento

{
"seriesId": "uuid-serie",
"periodId": "uuid-periodo",
"partnerId": "uuid-socio",
"date": "2026-04-16",
"warehouseId": "uuid-almacen",
"lines": [
{
"itemId": "uuid-articulo",
"quantity": 10,
"price": 25.50,
"taxGroupId": "uuid-impuesto",
"warehouseId": "uuid-almacen",
"zoneId": "uuid-zona"
}
]
}

Flujo de documentos

Pedido de venta (SO)
→ Albaran de venta (SDN) — descuenta stock
→ Factura de venta (SINV) — cierra el albaran

Las lineas pueden referenciar el documento base con baseType y baseId:

{
"itemId": "uuid",
"quantity": 10,
"price": 25.50,
"taxGroupId": "uuid",
"baseType": "SDN",
"baseId": "uuid-albaran"
}

Campos de las lineas

CampoDescripcion
itemIdArticulo
quantityCantidad
pricePrecio unitario
taxGroupIdGrupo de impuestos
warehouseIdAlmacen
zoneIdZona del almacen
uomIdUnidad de medida alternativa
uomFactorFactor de conversion
baseTypeTipo de documento base (SO, SDN)
baseIdID del documento base
pluginDataDatos de plugins (JSONB)