API de recebimento WMS
Última atualização 2026-10-13
Criar e consultar recibos de entrada, confirmar linhas, recebimento em um clique e tarefas.
Criar um recibo 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.
- O número gerado receipt_no (RCPT-YYYYMMDD-XXXX) é retornado em data.
- Permissão: wms.inbound.create.
Consultar recibos#
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 uma linha de recebimento#
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 / validade / números de série são validados rigorosamente (v2).
- Recebimento em um clique (desktop): POST /api/wms/inbound-receipts/[id]/receive-all com { lines: [{ line_id, received_qty, location_id }] }.
- Concluir: POST /api/wms/inbound-receipts/[id]/complete-receive; fechar: POST /api/wms/inbound-receipts/[id]/close (received → closed, imutável depois).
Tarefas de recebimento#
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. As linhas exigem new / imported / receiving. Após criar a tarefa, o recebimento direto no desktop é bloqueado.