Documentation API
Centre d'aide/Documentation API/API de réception WMS

API de réception WMS

Dernière mise à jour 2026-10-13

Créer et consulter les bons de réception, confirmer les lignes, réception en un clic et tâches.

Créer un bon de réception#

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.
  • Le numéro généré receipt_no (RCPT-YYYYMMDD-XXXX) est renvoyé dans data.
  • Permission : wms.inbound.create.

Consulter les bons#

GET — liste et détail
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

Confirmer une ligne de réception#

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": "外箱轻微破损"
}
  • Lot / péremption / numéros de série strictement validés (v2).
  • Réception en un clic (bureau) : POST /api/wms/inbound-receipts/[id]/receive-all avec { lines: [{ line_id, received_qty, location_id }] }.
  • Terminer : POST /api/wms/inbound-receipts/[id]/complete-receive ; verrouiller : POST /api/wms/inbound-receipts/[id]/close (received → closed, immuable ensuite).

Tâches de réception#

Créer une tâche de réception
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
Cycle de vie : imported / new → receiving → received → closed. Les lignes exigent new / imported / receiving. Après création de la tâche, la réception directe bureau est verrouillée.