Create and manage international shipments

POST /v1/fulfillment/shipments/create {#create}

Same core fields as preview, plus optional:

  • external_shipment_id — idempotency key
  • remark

total.payment should match preview total:

"total": {
  "freight": { "amount": 8900, "currency": "CNY" },
  "services": { "amount": 1500, "currency": "CNY" },
  "discount": { "amount": 200, "currency": "CNY" },
  "payment": { "amount": 10200, "currency": "CNY" }
}

Returns shipment_id and status (e.g. wait_payment).

POST /v1/fulfillment/shipments/pay {#pay}

{
  "shipment_id": "shp_01HXYZ"
}

Charges fulfillment wallet. Insufficient balance → INSUFFICIENT_BALANCE.

POST /v1/fulfillment/shipments/cancel {#cancel}

{
  "shipment_id": "shp_01HXYZ",
  "cancel_reason": "buyer_request"
}

POST /v1/fulfillment/shipments/detail {#detail}

{
  "shipment_id": "shp_01HXYZ"
}