Saltearse al contenido

Documentos de compra

Pedidos de compra

GET /api/purchases # Listar
GET /api/purchases/:id # Detalle
GET /api/purchases/:id/pdf # PDF
POST /api/purchases # Crear
POST /api/purchases/:id/cancel # Cancelar

Albaranes de compra

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

Al crear un albaran de compra se suma stock al almacen.

Facturas de compra

GET /api/purchases/invoices # Listar
GET /api/purchases/invoices/:id # Detalle
GET /api/purchases/invoices/:id/pdf # PDF
POST /api/purchases/invoices # Crear
POST /api/purchases/invoices/:id/post # Asentar
POST /api/purchases/invoices/:id/cancel # Cancelar
DELETE /api/purchases/invoices/:id # Eliminar (borradores)

Flujo de documentos

Pedido de compra (PO)
→ Albaran de compra (PDN) — suma stock
→ Factura de compra (PINV) — cierra el albaran

Lotes en recepcion

Los albaranes de compra soportan lotes con fecha de caducidad:

{
"lines": [
{
"itemId": "uuid",
"quantity": 100,
"price": 10,
"taxGroupId": "uuid",
"batchDetails": [
{ "batchNum": "LOTE-2026-A", "quantity": 60, "expiryDate": "2027-01-01" },
{ "batchNum": "LOTE-2026-B", "quantity": 40, "expiryDate": "2027-06-01" }
]
}
]
}