Documentação da API

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
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 — lista e detalhe
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 uma linha de recebimento#

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 / 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#

Criar uma tarefa 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=1
Ciclo de vida: imported / new → receiving → received → closed. As linhas exigem new / imported / receiving. Após criar a tarefa, o recebimento direto no desktop é bloqueado.