API reference · Orders · Store Management
Send Item Tracking - Store
- Method
- POST
- Route
-
/partnerOrders/:id/complementaryInfo - Base URL
https://ws.autorei.net- Path parameters
:id- Token
- Requires Bearer token
Opens this request in the public API documentation, the official source of the reference.
Description
Reports, item by item, the status of each product in the order — what has already shipped, what is being prepared, what is pending. This is the tracking the customer sees during fulfillment.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
integer | Yes | Id of the partner order (partnerOrderId). |
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
skus |
array | Yes | The tracking items. From 1 to 250 per request. |
skus[].partnerPartCode |
string | Yes | Your part code for the product, the same one you registered in inventory. |
skus[].situation |
string | Yes | Item status. Free text — the platform does not validate it against a list. |
skus[].quantity |
integer | Yes | Quantity in that status. Integer greater than zero. |
Business rules
The submission only affects the parts it contains
The scope of the submission is the item, not the order: each request replaces the tracking of the parts it mentions and leaves the others untouched. You can send one product at a time, without resending the entire order.
Resending an item exactly identical to the one already saved does not recreate the record: it is preserved as is.
The same product in more than one status
partnerPartCode can repeat in the same submission, once per status — this is how you report three units shipped and two in preparation of the same product. The quantities add up; the records do not compete with each other.
The sum cannot exceed the item quantity in the order
For a given product, the sum of the quantities reported cannot exceed the quantity of that item in the order. If it does, the request is rejected and nothing is saved.
The product must be in the order
The partnerPartCode is resolved against the lines of that order. A code that matches no line, or matches more than one, rejects the request — and the response says which code caused the rejection.
Response · 200
The echo of what you sent, with the verdict for each item. For the set that is saved on the order, use Get Item Tracking.
| Field | Description |
|---|---|
orderId |
Id of the customer's order, derived from the order in the route. |
partnerOrderId |
Id of the partner order, the same as in the route. |
skus[].partnerPartCode |
The code you sent. |
skus[].quantity · skus[].situation |
Quantity and status reported. |
skus[].status |
valid on the accepted item · invalid on the item that caused the rejection. |
When the rejection is item by item
A business rule rejection responds 422 with the same structure as success, plus status and message at the top: the items that caused the rejection come with status: "invalid" and the others with valid, and message gathers the reasons, one per line. Nothing is saved — the rejection applies to the entire request. This way you locate the problem item without matching the message to the position in the array.
Errors
| Code | When |
|---|---|
| 400 | The body is not valid JSON. The detail comes in error. |
| 422 | skus missing, empty or with more than 250 items; item without partnerPartCode, without situation or with a quantity that is not an integer greater than zero; code that is not in the order or that appears in more than one line; sum above the item quantity. The body gives the reason in message and marks the rejected items. |
| 404 | The order does not exist or is not within your scope. |
| 401 | Token missing, malformed or expired. |
Example request
curl --request POST 'https://ws.autorei.net/partnerOrders/:id/complementaryInfo' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{
"skus": [
{
"partnerPartCode": "SKU-A-001",
"situation": "enviado",
"quantity": 2
},
{
"partnerPartCode": "SKU-A-001",
"situation": "preparando",
"quantity": 1
}
]
}' Example responses
200Success — product in two statuses
{
"orderId": 900100,
"partnerOrderId": 900201,
"skus": [
{
"partnerPartCode": "SKU-A-001",
"quantity": 2,
"situation": "enviado",
"status": "valid"
},
{
"partnerPartCode": "SKU-A-001",
"quantity": 1,
"situation": "preparando",
"status": "valid"
}
]
} 422Rejected — code that is not in the order
{
"status": "UNPROCESSABLE_ENTITY",
"message": "partnerPartCode não encontrado nas linhas do pedido: SKU-Z-999",
"orderId": 900100,
"partnerOrderId": 900201,
"skus": [
{
"partnerPartCode": "SKU-A-001",
"quantity": 2,
"situation": "enviado",
"status": "valid"
},
{
"partnerPartCode": "SKU-Z-999",
"quantity": 1,
"situation": "enviado",
"status": "invalid"
}
]
} Used in
- Use casesEcommerce ERP integration: the typical path through the API
- Use casesB2B marketplace: the typical path through the API
- Use casesB2B procurement and supplies: the typical path through the API
- Webhooks and eventsOrders webhook, full payload
Related endpoints
Generated from the public API collection, published on 2026-09-04: api-docs.cws.digital.