نماذج استجابة Fulfillment API

Standard responses (response_format omitted or "standard") include a top-level field:

FieldValueMeaning
monetary_unit"CNY_minor"Every { amount, currency } in the response uses CNY fen (minor unit); 1 yuan = 100 fen

Present on money-bearing routes: balance, freight estimate, create, cancel (with refund), list, detail, services. Omitted on pay, logistics trace, item-attributes, and on response_format: "upstream".

Freight estimate — quotes[] {#freight-estimate-quotes}

FieldDescription
shipping_channel_codePass to create
shipping_channel_name / descriptionLocalized copy (language in body)
freight / totalIndicative — binding on create
estimated_days_min / maxTransit range when provided

Create — pricing {#preview-create-pricing}

FieldDescription
freightInternational line-haul
servicesValue-added services total
discountPromotional deduction
total / total.paymentfreight + services − discount
id / order_snCreate: Public id is warehouse numeric PK as a string; order_sn is the warehouse order number
statusPENDING, WAIT_PAYMENT, WAIT_SHIP, SHIPPED, SIGNED, CANCELLED

Shipment list {#shipment-list}

GET /v1/fulfillment/shipments returns lightweight rows. Example: Shipments · list.

FieldDescription
id / order_snPublic id is warehouse numeric PK as a string; order_sn is the warehouse order number
external_shipment_idISV idempotency key from create; empty warehouse string → null
statusPENDING / WAIT_PAYMENT / WAIT_SHIP / SHIPPED / SIGNED / CANCELLED
international_tracking{ tracking_number, carrier }. No top-level tracking_number
receiver / shipping_channel / services[]Same shape as detail
totalDetail-style charges / discount / payable / paid / outstanding
payment_statusUNPAID / PAID / PARTIAL
timescreated_at / packed_at / paid_at / shipped_at / delivered_at / cancelled_at
paginationpage / page_size / total / total_pages

List omits boxes, timeline, files, charges, shipping_legs, source_packages, and interception.

Shipment detail {#shipment-detail}

GET /v1/fulfillment/shipments/{id} is the full shipment view. Create / pay still use summary total.freight / services / discount / payment. Amounts are fen. Example: Shipments · detail.

FieldDescription
id / order_snPublic id (path param) is warehouse numeric PK as a string; order_sn is the warehouse order number
external_shipment_idISV idempotency key from create; empty warehouse string → null
statusPENDING / WAIT_PAYMENT / WAIT_SHIP / SHIPPED / SIGNED / CANCELLED
source_packages[]Inbound domestic packages (id may be null in a transition payload)
receiverInternational recipient; country_code is uppercase ISO; district may be null
shipping_channel{ code, name }
multi_boxtrue when boxes.length > 1
boxes[]Outbound cartons: box_no (warehouse box_sn), source_package_ids (warehouse package_ids), weight / dimensions, optional tracking
international_tracking{ tracking_number, carrier }; empty warehouse strings → null
timeline[]Warehouse business events { code, title, occurred_at }. Empty codenull
shipping_legs[]FIRST_MILE / LAST_MILE when numbers exist; otherwise []
files[]PACKING_IMAGE / PACKING_VIDEO
services[]VAS on this shipment (service_code, name, quantity, status)
charges[]Line items. Discount rows are negative
totalcharges (positive fees) / discount (positive) / payable / paid / outstanding
payment_statusUNPAID / PAID / PARTIAL
timescreated_at / packed_at / paid_at / shipped_at / delivered_at / …; unused = null

charges[].type: FREIGHT, VALUE_ADDED_SERVICE, CHANNEL_SERVICE_FEE, CHANNEL_RULE_FEE, INSURANCE, DUTIES_AND_TAXES, PACKAGE_SERVICE, COUPON_DISCOUNT, POINTS_DISCOUNT.

Tracking numbers live on international_tracking / boxes[].tracking / shipping_legs. Warehouse timeline is business events (packed / paid). Scan events stay on international tracking.

Balance {#balance}

FieldDescription
balance.availableSpendable for pay
balance.frozenHeld for pending shipments
balance.totalAvailable + frozen

International trace — events[] {#international-trace-events}

FieldDescription
statuspending, in_transit, customs, delivered, exception
events[].descriptionCarrier scan text
tracking_numberLine-haul / last-mile number

These are carrier scan events. Warehouse business events (CREATED / packed / paid) live on shipment detail timeline[], not here.

Get Support

Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days

Email support