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
{
"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 /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 namesConfirmar una línea de recepción#
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#
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=1Ciclo 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.