Documentación de API

API de recepción WMS

Última actualización 2026-10-13

Crear y consultar albaranes de entrada, confirmar líneas, recepción en un clic y tareas de recepción.

Crear un albarán de entrada#

POST /api/wms/inbound-receipts
POST /api/wms/inbound-receipts
{
  "warehouse_id": "<uuid>",                       // required
  "source_type": "purchase",                      // required: purchase|manual|portal|drayage|return
  "source_id": "<purchase-order-uuid>",           // required when source_type=purchase
  "merchant_id": "<uuid>",                        // optional (auto-filled in standard edition)
  "container_no": "MSKU1234567",
  "seal_no": "S98765",
  "vendor_id": "<uuid>",
  "expected_date": "2026-10-20",
  "title": "货权标识(缺省为 merchant 名)",
  "lines": [
    { "item_id": "<uuid>", "expected_qty": 100, "uom": "CTN", "lot_no": "LOT-001" }
  ]
}
  • source_type: purchase / manual / portal / drayage / return.
  • Se devuelve el número generado receipt_no (RCPT-YYYYMMDD-XXXX) en data.
  • Permiso: wms.inbound.create.

Consultar albaranes#

GET — lista y detalle
GET /api/wms/inbound-receipts?q=MSKU1234567&status=receiving&warehouse_id=<uuid>&page=1&page_size=20
GET /api/wms/inbound-receipts/<id>   // lines + receiving progress + item names

Confirmar una línea de recepción#

POST /api/wms/inbound-receipts/[id]/receive-line
POST /api/wms/inbound-receipts/<receipt-id>/receive-line
{
  "receipt_line_id": "<uuid>",   // required
  "received_qty": 98,            // required, >= 0
  "damaged_qty": 2,
  "rejected_qty": 0,
  "location_id": "<uuid>",       // required (may be empty for cross-dock)
  "lot_no": "LOT-001",
  "manufacture_date": "2026-09-01",
  "expiry_date": "2027-09-01",
  "serial_nos": ["SN-001", "SN-002"],
  "is_cross_dock": false,
  "condition": "good",           // good | damaged
  "allow_over_receive": false,
  "note": "外箱轻微破损"
}
  • Lote / caducidad / números de serie se validan estrictamente (v2).
  • Recepción en un clic (escritorio): POST /api/wms/inbound-receipts/[id]/receive-all con { lines: [{ line_id, received_qty, location_id }] }.
  • Terminar: POST /api/wms/inbound-receipts/[id]/complete-receive; cerrar: POST /api/wms/inbound-receipts/[id]/close (received → closed, inmutable después).

Tareas de recepción#

Crear una tarea de recepción
POST /api/wms/receiving-tasks
{
  "receipt_id": "<uuid>",        // required
  "assignee_id": "<uuid>",       // optional
  "receiving_method": "decide"   // palletized | direct | decide (default decide)
}
// idempotent: an existing open task for the receipt returns meta.existing=true

GET /api/wms/tasks?task_type=receive&status=in_progress&warehouse_id=<uuid>&with_progress=1
Ciclo de vida: imported / new → receiving → received → closed. Las líneas requieren new / imported / receiving. Tras crear la tarea, la recepción directa de escritorio queda bloqueada.