International fulfillment overview
/v1/fulfillment/* covers international logistics after goods are in the HIOBuy warehouse. Domestic buying: Procurement orders.
Requires warehouse fulfillment on your app (Portal authorization). Self-fulfillment apps get 403 FULFILLMENT_MODE_NOT_SUPPORTED.
For inbound create, shipment create, and shipment pay, the optional Idempotency-Key header protects retries and concurrent calls. Use a new key for each logical operation and reuse it only for the identical request. Duplicate conflicts may include the existing package, shipment, or payment in error.details.existing_resource.
Monetary unit {#monetary-unit}
Standard JSON responses on money-bearing fulfillment routes include top-level monetary_unit: "CNY_minor". All { amount, currency } fields are CNY fen (1 yuan = 100 fen). See Fulfillment response models.
API availability {#availability}
| Path | Status |
|---|---|
/v1/fulfillment/inbounds/create | Live warehouse simple-store when warehouse mode; mock in sandbox |
/v1/fulfillment/packages | Live warehouse packages/index when warehouse mode; mock in sandbox |
/v1/fulfillment/packages/{package_id} | Live warehouse packages/detail/{id} when warehouse mode; mock in sandbox |
/v1/fulfillment/packages/{package_id}/tracking | Live warehouse packages/logs/{id} when warehouse mode; mock in sandbox |
/v1/fulfillment/unclaimed-packages | Live warehouse list + claim when warehouse mode; mock in sandbox |
/v1/fulfillment/returns | Mock — return-to-seller create/list/confirm/cancel |
/v1/fulfillment/locations | Live warehouse warehouse when warehouse mode; mock in sandbox |
/v1/fulfillment/value-added-services | Live warehouse services when warehouse mode; mock in sandbox |
/v1/fulfillment/service-requests | Mock — create/list/detail/confirm |
/v1/fulfillment/shipments/{id}/intercept | Live warehouse shipments/set-exceptional when warehouse mode; mock in sandbox |
/v1/fulfillment/shipments | Live warehouse shipments/index when warehouse mode; mock in sandbox |
/v1/fulfillment/shipping/channels | Live warehouse channel catalog when warehouse mode; mock in sandbox |
/v1/fulfillment/shipping/quotes | Live warehouse quotes when warehouse mode; mock in sandbox |
/v1/fulfillment/shipments/* | Available (mock / warehouse HTTP when configured) |
/v1/fulfillment/balance | Available |
/v1/shipments (legacy) | Deprecated |
End-to-end flow {#end-to-end-flow}
- Create procurement order → seller ships to warehouse
or Inbound notice for parcels you already control - Package detail / tracking → warehouse measurements / exceptions / VAS / fulfillment timeline
or Order detail →tracking_numbers[]when inbound from procurement - Shipping channels for capabilities, then Shipping quotes → pick
quotes[].channel.code - Create shipment →
id/order_sn(PENDING) - Warehouse packing & final measurement →
boxes[], final weight / dimensions, final freight - Shipment ready for payment (
WAIT_PAYMENT) → see detail; paying earlier returns409 SHIPMENT_NOT_READY_FOR_PAYMENT - Pay shipment → deduct wallet
- List / detail → lightweight rows, or boxes / packing files /
timeline/ first/last-mile numbers
Optional: Intercept if you need to hold aWAIT_SHIP/SHIPPEDshipment - International tracking → scan events
New to warehouse fulfillment? Follow the WH-DEV testing guide to test the complete workflow, including warehouse packing and settlement.
Endpoint guide
| Topic | Path | Doc |
|---|---|---|
| Inbound notice | POST .../inbounds/create | Inbounds |
| Package detail / tracking / unclaimed | GET .../packages/* · unclaimed-packages | Packages |
| Returns | POST/GET .../returns · confirm/cancel | Returns |
| Locations | GET .../locations | Locations |
| Value-added services | GET .../value-added-services | VAS |
| Service requests | POST/GET .../service-requests · confirm | Service requests |
| Shipping channels | GET .../shipping/channels | Shipping channels |
| Shipping quotes | POST .../shipping/quotes | Shipping quotes |
| Create / pay / cancel / intercept | POST .../shipments/create · {id}/pay · {id}/cancel · {id}/intercept | Shipments |
| Shipment list | GET .../shipments | Shipments · list |
| Shipment detail | GET .../shipments/{id} | Shipments · detail |
| International tracking | GET .../shipments/{id}/tracking | Tracking |
| Wallet balance | GET /v1/fulfillment/balance | Balance |
| Response fields | — | Fulfillment response models |
| Item attributes | GET .../item-attributes | Freight estimate |
Warehouse-mode procurement
/v1/orders/* paths unchanged; Gateway forwards to HIOBuy. Product APIs still call marketplaces directly.
Domestic trace: order logistics trace (proxied in warehouse mode).
Lifecycle diagrams {#lifecycle}
State diagrams: Packages, Shipments, Returns.
Errors
FULFILLMENT_MODE_NOT_SUPPORTED, SHIPMENT_CREATE_EXCEPTION, SHIPMENT_CREATE_FAILED, PARCEL_NOT_FOUND, EXTERNAL_ORDER_ID_ALREADY_EXISTS, SHIPMENT_NOT_READY_FOR_PAYMENT, SHIPMENT_ALREADY_PAID, INSUFFICIENT_BALANCE, NOT_FOUND (SHIPMENT_NOT_EXISTS), intercept codes (SHIPMENT_NOT_FOUND, SHIPMENT_NOT_INTERCEPTABLE, SHIPMENT_INTERCEPTION_ALREADY_REQUESTED) — see Errors and Shipments.
Get Support
Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days