1. Introduction
Need to connect to Qianyi's third-party warehouse, please refer to this document
Order business process diagram:

2. Environment Requirements
Authorization: accessId (customer ID), secretKey (key, used to verify message information).
Interface address: The third party provides the service address for Qianyi to call. Request method:
- Method: POST
- Content-Type: application/x-www-form-urlencoded
Common request:
Field | DataType | Require | Description |
---|---|---|---|
accessId | String | Yes | Third-party authorization ID for Qianyi |
method | String | Yes | Interface method name |
content | String | Yes | Business Params |
sign | String | Yes | Signature |
headerParams:
Field | DataType | Require | Description |
---|---|---|---|
warehouseType | String | N | Warehouse type |
secret | String | N | Third-party warehouse secret/Token |
Common response:
Field | DataType | Require | Description |
---|---|---|---|
success | boolean | Yes | Whether the business processing was successful |
message | String | No | Business processing exception message |
Signature method:
- Compose accessId and content into a json string
{"accessId":"accessId","content":" Specific business Params "} , content is empty when
{"accessId":"accessId"}
- Add the secretKey allocated by the third party to the end of the json, to get the string to be encrypted
{"accessId":"accessId","content":"Specific business Params"}secretKey
- Encrypt the string to be encrypted using sha1 to get the signature
(org.apache.commons.codec.digest.DigestUtils.sha1Hex(待加密字串))
- Assign the signature to the sign field of the public request
Sample string before encryption: {"accessId":"ibxakq31y","content":"{\"pageSize\":1000,\"page\":1,\"warehouseCode\":\"WH000005\"}"}30534885b3eb4625c8c279822651683a
3. Warehouse List
Description: Get all the shipping warehouses, used for subsequent Inbound order, inventory synchronization, and Order issuance processes
Method name:
- warehouses

Return information:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
warehouseList | Warehouse information | Array | ||
└ warehouseCode | Warehouse code | String | Require | Must be unique |
└ warehouseName | Warehouse name | String | Require | Must be unique |
Request example:
{ "accessId" : "3215435",
"method" : "warehouses",
"content" : "",
"sign" : "11fbd649164860b5571cb60dfc99baccb375f392"
}
Return example:
{ "success":"true",
"message":"",
"warehouseList":[
{ "warehouseCode":"CA1",
"warehouseName":"CA Warehouse"
},
{ "warehouseCode":"CA2",
"warehouseName":" CA Warehouse 2"
}
] }
4. Warehouse Logistics List
Description: Order in erp review requires selecting logistics, we support the warehouse providing logistics list, users select in erp and then issue to the warehouse, channels interface is used to get which logistics the warehouse supports
Method name:
- channels
Interface Params:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
warehouseCode | Warehouse code | String | N |
Return information:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
channelList | ArrayList | |||
└ channelCode | Warehouse logistics code | String | Require | Must be unique |
└ channelName | Warehouse logistics name | String | Require | |
└ warehouseCode | Warehouse code | String | N | |
└ carrierName | Carrier name | String | N |
Request example:
{ "accessId": "3215435", "method": "channels", "content": "", "sign": "11fbd649164860b5571cb60dfc99baccb375f392" }
Return example:
{ "success": "true", "message": "", "channelList": [ { "channelCode": "FedexGround", "channelName": "FedEx Ground", "carrierName": "FEDEX" } ] }
5. Create Order
Description: After creating an Order in Qianyi, it will request the warehouse to create an Order, so that the warehouse can prepare and ship the goods
Method name:
- createOrder
Interface Params:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
orderNumber | Qianyi Order number | String | Require | |
onlineOrderId | Platform Order number | String | Require | Original Order number, parent number |
shopName | Shop Name | String | Require | |
warehouseCode | Warehouse code | String | Require | |
logisticsCode | Shipping channel code | String | Require | |
platform | Platform | String | Require | |
freight | Freight | BigDecimal | Require | |
packageType | Package type | String | N | Default NORMAL regular package OWN_PAKAGE self-provided package |
trackingNumber | trackingNumber | String | N | Customer-provided waybill, required when package type is self-provided |
labelData | Waybill | String | N | Customer-provided waybill, required when package type is self-provided, waybill data in PDF BASE64 |
codEnabled | Whether it is a cod Order | Integer | Require | 1:cod Order 0:Non-cod Order |
codPayAmount | cod Order amount | BigDecimal | N | cod amount, required for cod Order |
codCurrency | cod amount currency | String | N | cod currency, required for cod Order |
orderCreate | Order creation time | Date | N | |
deliveryTime | Delivery commitment time | Date | N | |
onlineShopId | Online Shop id | String | N | Online Shop id, used for some warehouses only |
receiver | Recipient Information | Object | Require | |
└ name | Contact person | String | Require | |
└ phone | Contact phone | String | Require | |
Contact email | String | Y | ||
└ country | Two-letter country code | String | Require | |
└ state | Province/State | String | Require | |
└ city | City | String | Require | |
└ district | District | String | N | |
└ address1 | Address 1 | String | Require | |
└ address2 | Address 2 | String | N | |
└ postalCode | Zip code | String | Require | |
skuList | Order product information | Array | Require | |
└ erpSku | Product code | String | Require | |
└ sku | warehouse Product code | String | Require | |
└ name | Product title | String | Require | |
└ quantity | Quantity | String | Require | |
└ amount | Product amount | BigDecimal | Require | |
└ shippingPrice | Product freight | BigDecimal | N | |
└ hsCode | Customs code | String | N | |
└ chineseCustomsDeclarationName | Chinese customs name | String | N | |
└ englishCustomsDeclarationName | English customs name | String | N |
Request example:
{ "accessId" : "3215435",
"method" : "createOrder",
"content" : "
{\"orderNumber\":\"CESH210204147401\",\"onlineOrderId\":\"11319575377 9\",\"shopName\":\"Test
\",\"logisticsCode\":\"FedexGround\",\"platform\":\"tiktok\",\"warehouseCode\":\"QY_01\",\"fr eight\":20.0, \"receiver\":{\"name\":\"Kimberly White\",\"phone\":\"1889838055188\",\"email\":\"\",\"country\":\"US\"
,\"state\":\"AR\",\"city\":\"Harrison\",\"district\":null,\"address1\ ":\"TestStreet1\",\"address2\":\"\",\"postalCode\":\"72601\"},\"skuLi st\":[{\"sku\":\"CL0000000000001\",\"name\":null,\"quantity\":1,\"amo unt\":120.0,\"shippingPrice\":20.0,\"hsCode\":\"CL0000000000001\",\"c hineseCustomsDeclarationName\":\" 测 试 商 品
\",\"englishCustomsDeclarationName\":\"TEST\"}]}",
"sign" : "11fbd649164860b5571cb60dfc99baccb375f392"
}
Return example:
{ "success":"true",
"message":"", "data": { "warehouseOrderNumber":"S111111-09987666" }
}
6. Cancel Order
Description: Used to cancel an Order in Qianyi
Method name:
- cancelOrder

Interface Params:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
orderNumber | Qianyi Order number | String | Require | |
warehouseCode | Warehouse code | String | N | |
warehouseOrderNumber | Warehouse Order number | String | N |
Request example:
{ "accessId" : "3215435",
"method" : " cancelOrder",
"content" : " {\"orderNumber\":\"CESH210204147401\",\"warehouseOrderNumber\":\"CESH210204147401\"}",
"sign" : "11fbd649164860b5571cb60dfc99baccb375f392"
}
Return example:
{ "success":"true",
"message":""
}
7. Query Order Information
Description: Used to synchronize the trackingNumber and Order status from the warehouse to Qianyi
Method name:
- getOrder
Interface Params:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
orderNumber | Qianyi Order number | String | Require | |
warehouseCode | Warehouse code | String | N | |
warehouseOrderNumber | Warehouse Order number | String |
Return information:
Field | Field Description | DataType | Require | Description | |
---|---|---|---|---|---|
orderNumber | Qianyi Order number | String | Require | ||
wmsStatus | Outbound Order status in the third-party system | String | Require | ||
status | Qianyi Outbound order status | String | Require | Need to be mapped from wmsStatus to SENDING (shipping), SUCCESS (shipped, shipped out), CANCEL (cancelled), FAILED (failed or abnormal) | |
carrierName | Carrier name | String | N | ||
trackingNumber | Tracking number | String | N | Required when status is SUCCESS | |
failedReason | Failure reason | String | N | Required when status is FAILED |
Request example:
{ "accessId" : "3215435",
"method" : " getOrder",
"content" : " {\"orderNumber\":\"CESH210204147401\"}",
"sign" : "11fbd649164860b5571cb60dfc99baccb375f392"
}
Return example:
{ "success":"true",
"message":"",
"data": {
"orderNumber": "S0000001",
"wmsStatus": "Shipped",
"status": "SUCCESS",
"carrierName": "FEDEX",
"trackingNumber": "TEST0001"
}
}
8. Inventory Synchronization
Description: Synchronize the sku and sku inventory information from the warehouse to Qianyi
Method name:
- syncInventory
Interface Params:

Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
pageSize | Number per page | Integer | Require | |
page | Current page | Integer | Require | |
warehouseCode | Warehouse code | String | Require | |
warehouseSku | Warehouse product code | String | N | |
Return information: | ||||
Field | Field Description | DataType | Require | Description |
isLastPage | Whether it is the last page | Boolean | Require | true: last page false: not the last page |
currentPage | Current page | Integer | Require | |
pageCount | Total pages | Integer | Require | |
data | Inventory information | List\ | ||
warehouseCode | Warehouse code | String | Require | |
warehouseSku | Warehouse product code | String | Require | |
onwayQuantity | On-way quantity | String | Y | Default 0 |
pendingQuantity | Pending quantity | String | Y | Default 0 |
sellableQuantity | Sellable quantity | String | Require | |
unsellableQuantity | Unqualified quantity | String | Y | Default 0 |
reservedQuantity | Pending Outbound quantity | String | Y | Default 0 |
useQuantity | Occupied quantity | String | Y | Default 0 |
totalQuantity | Total inventory quantity | String | Require |
Request example:
{ "accessId" : "3215435",

"method" : " syncInventory",
"content" : " {\"pageSize \":\"50\",\"page \":\"1\",\"warehouseCode
\":\"wms\",\"warehouseSku \":\"sku\"}",
"sign" : "11fbd649164860b5571cb60dfc99baccb375f392"
}
Return example:
{ "success": "true",
"message": "",
"isLastPage": true,
"currentPage": 1,
"pageCount": 1,
"data": [
{ "warehouseCode": "wms",
"warehouseSku": "sku",
"onwayQuantity": "11",
"pendingQuantity": "22",
"sellableQuantity": "33",
"unsellableQuantity": "0",
"reservedQuantity": "22",
"useQuantity": "11",
"totalQuantity": "99"
}
]
}
9. Inbound Order Creation
Description: After creating an Inbound order in Qianyi, it will request the warehouse to create an Inbound order, the purpose is to increase the inventory of skus in the warehouse
Method name:
- createAsnOrder
Interface Params:

Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
asnNumber | Qianyi Inbound order number | String | Require | |
warehouseCode | Warehouse code | String | Require | |
estimatedArrivalDate | Estimated time of arrival | Long | Optional | |
trackNumber | Tracking number | String | Optional | |
orderNumber | orderNumber | String | Optional | sale return order number |
onlineOrderId | onlineOrderId | String | Optional | sale return online Order Id |
saleReturnReason | saleReturnReason | String | Optional | |
skuList | Product information | Array | Require | |
└ sku | Product code | String | Require | |
└ name | Product title | String | Optional | |
└ quantity | Quantity | Number | Require | |
asnMarkSku | Packing information | List | Optional | |
type | asn order type | String | Optional | PURCHASE |
└boxNumber | Box number | Number | Optional | |
└ markCode | Box code | String | Optional | |
└ quantity | Packing quantity | Number | Optional | |
└ sku | Product code | String | Optional | |
└ name | Product title | String | Optional |
Request example:
{ "accessId": "67436532", "method": "createAsnOrder", "content": "{\"skuList\":[{\"sku\":\"CLO-CNQM5069BL\",\"quantity\":2}],\"trackNumber\":\"A240925139551\",\"asnNumber\":\"A240925139551\",\"asnMarkSku\":[{\"sku\":\"CLO-CNQM5069BL\",\"quantity\":2,\"markCode\":\"QY556553-A240925139551-1\",\"boxNumber\":\"1\",\"length\":1.0,\"width\":1.0,\"height\":1.0}],\"estimatedArrivalDate\":null,\"warehouseCode\":\"53\"}", "sign": "1f04df03d527653ab65beafb4aa59c778ff3bd73" }
Return example:
{ "success": true, "message": "", "results": [ { "asnNumber": "A1234", "operation": "CANCEL", "info": "" } ] }
"success":"true",
"message":""
}
10. Inbound Order Query
Method name: Description: Used to synchronize the status of the warehouse Inbound order
- getAsnList
Interface Params:

Field | Field Description | DataType | Require | Description | |
---|---|---|---|---|---|
asnNumbers | Qianyi Inbound order number (batch) | List <String> |
Require | ||
warehouseCode | Warehouse code | String | Optional | ||
Return information: | |||||
Field | Field Description | DataType | Require | Description | |
asnNumber | Qianyi Inbound order number | String | Require | ||
wmsStatus | Inbound Order status in the third-party system | String | Require | Need to be mapped from wmsStatus, see the mapping table below for details 「Inbound order status」 | |
referenceNumber | Warehouse Inbound order number | String | Require | ||
finishTime | Completion time | String | Require | ||
skuList | Product information | Array | Require | ||
└ sku | Product code | String | Require | ||
└ name | Product title | String | Optional | ||
└estimatedQuantity | Expected quantity | Number | Require | ||
└receivedQuantity | Received quantity | Number | Require | ||
└goodQuantity | Good quantity | Number | Require | ||
└badQuantity | Bad quantity | Number | Require |
11. Inbound order status
Enum value | Description |
---|---|
NEW | New |
DELETED | Deleted |
SHIPPING | In transit |
RECEIVING | Receiving |
FINISHED | Finished |
CLOSED | Closed |
Request example:
{ "accessId" : "3215435", "method" : " getAsnList", "content" : " {\"asnNumbers\":[\"CESH210204147401\",\"warehouseCode\":\"warehouse1\"]}", "sign" : "11fbd649164860b5571cb60dfc99baccb375f392" }
Return example:
{ "success":"true", "message":"", "asnList":[{ "asnNumber": "sja11122", "wmsStatus": "NEW", "finishTime": "2024-10-26 12:23:34", "referenceNumber":"A123445", "skuList": [ { "sku":"acs", "name":"Cup", "estimatedQuantity":12, "receivedQuantity":12, "goodQuantity":5, "badQuantity":7 }]}] }
12. Inbound Order Cancellation
Description: Used to cancel the warehouse Inbound order
Method name:
- cancelAsnOrder

Interface Params:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
asnNumbers | Qianyi Inbound order number (batch) | List <String> |
Require | |
warehouseCode | Warehouse code | String | Optional | |
Return information: | ||||
Field | Field Description | DataType | Require | Description |
success | Whether the operation on the current sku was successful | String | Require | true: success, false: failure |
message | Failure information | String | Require | |
results | Results | List | Optional | |
└asnNumber | Qianyi Inbound order number | String | Require | |
└operation | Operation on the Inbound order | String | Require | Cancel: CANCEL |
└info | Description information | String | Optional | Failure information |
Request example:
{ "accessId" : "3215435", "method" : " cancelAsnOrder", "content" : " {\"asnNumbers\":[\"CESH210204147401\"],\"warehouseCode\":\"warehouse1\"}", "sign" : "11fbd649164860b5571cb60dfc99baccb375f392" }
Return example:
{ "success": true, "message": "", "results": [ { "asnNumber": "A1234", "operation": "CANCEL", "info": "" } ] }
13. Product Issuance to Warehouse
Description: After creating sku and warehouse sku in Qianyi, issue the mapping relationship to the warehouse, so as to maintain the sku mapping relationship between Qianyi and the warehouse, if the warehouse product does not exist, create a new one, if it exists, update it
Method name:
- insert_sku_info

Interface Params:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
warehouseCode | Warehouse code | String | Optional | |
sku | warehouse sku, max 255 characters | String | Require | |
erpSku | sku, max 255 characters | String | Require | |
title | Product title, max 255 characters | String | Optional | |
barcode | Product barcode, max 255 characters | String | Optional | |
specifications | Product specifications | String | Optional | |
imageUrl | Image link | String | Optional | |
weight | Gross weight | Decimal | Optional | |
netWeight | Net weight | Decimal | Optional | |
weightUnit | Weight units | String | Optional | |
length | Length | Decimal | Optional | |
width | Width | Decimal | Optional | |
height | Height | Decimal | Optional | |
dimensionUnit | Length units | String | Optional | |
itemPackage | Packaging quantity | Number | Optional | |
Return information: | ||||
Field | Field Description | DataType | Require | Description |
success | Whether the operation on the current sku was successful | String | Require | true: success, false: failure |
message | Failure information | String | Require | |
results | Failure result set | List | Optional | |
└sku | Product code | String | Require | |
└operation | Operation on sku | String | Require | Create: CREATE |
└info | Description information | String | Optional | Failure information |
Request example:
{ "method": "insert_sku_info", "accessId": "67436532", "content": "{\"itemPackage\":null,\"dimensionUnit\":\"cm\",\"length\":\"1\",\"weight\":\"1\",\"title\":\"A1234 name\",\"specifications\":\"Yellow-M\",\"warehouseCode\":\"53\",\"netWeight\":\"1\",\"imageUrl\":\"http://qianyierp-test.oss.aliyuncs.com/image/NjRhNzU5YWU3Y2M1NjI4YjZlNzIyZjJkYzUxYmYxNjk%3D.jpg\",\"width\":\"1\",\"sku\":\"A1234\",\"barcode\":\"A1234 barcode\",\"weightUnit\":\"KG\",\"height\":\"1\"}", "sign": "d6c07b78107f3fd6819e038257b9236a7e48e297" }
Return example:
{ "success": true, "message": "", "results": [ { "sku": "A1234", "operation": "CANCEL", "info": "" } ] }
14. WebHooks
14.1. Outbound order status push interface
Description: The warehouse pushes the outbound order information to Qianyi ERP please contact with qianyi for the param ‘warehouseExtraType’
方法名:
- pushOrderInfo
POST /sys/automatic/receiveOdo/{warehouseExtraType}
接口参数:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
orderNumber | ERP Order Number | String | Y | |
onlineOrderId | Online platform orders | String | N | |
warehouseCode | Warehouse code | String | Y | |
customerCode | customer code | String | N | |
carrier | carrier | String | N | |
trackNumber | Waybill number | String | Y | |
warehouseOrderNumber | Warehouse outbound order number | String | N | |
wmsStatus | Warehouse document status | String | Y | |
status | status | String | Y | WMsStatus needs to map SENDING (in stock), JOIN (shipped, out of stock), CANCEL (cancelled), FAILED (failed or abnormal) on its own |
shippingTime | shipping time | Long | N | 13 digit timestamp |
skuList | item info | List <sku> |
N | |
errorMsg | error message | String | N |
sku 信息:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
sku | Warehouse SKU | String | Y | |
quantity | Quantity of goods | Number | Y |
返回信息:
Field | Field Description | DataType | Require | Description |
---|---|---|---|---|
success | Is it successful | String | Y | true:success, false:failure |
message | Failure message | String | N |
请求示例:
{
"accessId": "QIANYI",
"method": "pushOrderInfo",
"content": "{\"orderNumber\":\"DA250117100074\",\"onlineOrderId\":\"\",\"warehouseCode\":\"XY002\",\"carrier\":\"\",\"trackNumber\":\"333\",\"warehouseOrderNumber\":\"\",\"wmsStatus\":\"error\",\"status\":\"FAILED\",\"skuList\":{\"sku\":\"60000-test02\",\"quantity\":4},\"errorMsg\":\"仓库接收失败\"}",
"sign": "a125ee2d535ab0811c6d9f74d52a525534b3aee8"
}
返回信息:
{
"success": true,
"message": ""
}
14.2. ASN Push Interface
Description: Warehouse pushes ASN (Advance Shipping Notice) information to Qianyi ERP. please contact with qianyi for the param ‘warehouseExtraType’
Method Name:
- pushAsnInfo
POST /sys/automatic/receiveAsn/{warehouseExtraType}
Request Parameters:
Field Name | Description | Type | Required | Remarks | |
---|---|---|---|---|---|
warehouseCode | Warehouse code | String | Y | ||
customerCode | Customer code | String | N | ||
asnNumber | Qianyi ASN number | String | Y | ||
wmsStatus | ASN status from 3rd-party WMS | String | Y | Mapped status provided by wmsStatus . See mapping table: ASN Status |
|
referenceNumber | Warehouse ASN number | String | N | ||
finishTime | Completion time | Long | N | 13-digit timestamp | |
updateTime | Receiving update time | Long | Y | 13-digit timestamp | |
skuList | Product details | Array | Y | ||
└ sku | Product code | String | Y | ||
└ name | Product name | String | N | ||
└ estimatedQuantity | Estimated quantity | Number | N | ||
└ receivedQuantity | Received quantity | Number | Y | Equal to goodQuantity + badQuantity |
|
└ goodQuantity | Good quantity | Number | N | ||
└ badQuantity | Defective quantity | Number | N | ||
batchNo | Batch number | String | N | In the incremental receiving scenario, To prevent "Qianyi" from repeatedly consuming the same asn push message, it is necessary to ensure uniqueness |
Response:
Field Name | Description | Type | Required | Remarks |
---|---|---|---|---|
success | Whether successful | String | Required | true for success, false for fail |
errorMsg | Error message | String | Optional |
Request Example:
{
"accessId": "QIANYI",
"method": "pushAsnInfo",
"content": "{\"customerCode\":null,\"asnNumber\":\"A241022159999\",\"warehouseCode\":\"Test-bin\",\"wmsStatus\":\"RECEIVING\",\"referenceNumber\":\"A241022159999\",\"finishTime\":null,\"updateTime\":1744098883894,\"skuList\":{\"sku\":\"V-012B-R\",\"name\":\"V-012B-R\",\"estimatedQuantity\":121,\"receivedQuantity\":2,\"goodQuantity\":2,\"badQuantity\":0},\"batchNo\":\"222222-1\"}",
"sign": "a125ee2d535ab0811c6d9f74d52a525534b3aee8"
}
Response Example:
{
"success": true,
"errorMsg": ""
}
14.3. asn-push-status
枚举值 | 备注 |
---|---|
FINISHED | finish asn |
CLOSED | close asn |
SHIPPING | shipping |
RECEIVING | warehouse receiving |
Smart cross-border e-commerce partner
