Skip to content
Linra Omni Vendor Docs

Push vendor order status

Update a shipment's status.

Orders

PATCH/api/v1/scent/orders/{groupId}/status

Vendors may push ONLY Shipped, Delivered, or Cancelled (from Pending/Shipped) — forward-only. Packed and any backward/stale/invalid target are rejected as a clean no-op (HTTP 200, applied: false, the group’s UNCHANGED current state) — never an error, so your automation can distinguish “my push landed” from “the group was already past that point.” Re-pushing the identical, already-applied status is also a no-op. Requires the Orders capability.

Path parameters

groupIdstring (uuid)Required

Body parameters

statusobjectRequired
trackingRefstring

Carrier tracking reference — REQUIRED when status is Shipped (or a Pending/Packed -> Delivered jump); a Shipped push missing it is rejected 422 BUSINESS_SHIPMENT_MISSING_TRACKING, not a no-op.

carrierobject

One of the three fixed carriers, or Other (requires carrierNameOther on the request).

carrierNameOtherstring

Required alongside carrier == Other.

Response

appliedboolean

False when the push was a no-op (stale/backward/duplicate/invalid target) — the group’s state is UNCHANGED by this call, never an error.

group.groupIdstring (uuid)
group.statusstring (enum)
group.vendorOrderIdstring

Your own order/reference id at your end, if previously pushed.

group.packedAtstring (date-time)
group.shippedAtstring (date-time)
group.deliveredAtstring (date-time)
group.shipToobject

Shipping destination — genuinely needed to pack and ship. Nothing else about the order/partner is exposed alongside it.

group.trackingobject

The group’s own shipment tracking facts — always “your own shipment,” never a sibling group/vendor’s.

group.linesarray of object

Other responses

400Request validation failed.
401No bearer token (UNAUTHORIZED_MISSING_TOKEN), an invalid token (UNAUTHORIZED_INVALID_TOKEN) or an expired one (UNAUTHORIZED_TOKEN_EXPIRED — mint a new token). UPSTREAM_AUTH_FAILED is different: a dependent service refused the Gateway itself. That is a server-side fault — retry later and do NOT re-mint your token. See the Rate limits & errors guide.
403Your token doesn’t carry the capability this endpoint requires.
404Unknown fulfilment group id, or one belonging to another vendor.
415The request body is not sent as application/json (UNSUPPORTED_MEDIA_TYPE).
429Too many requests. Retry after the Retry-After header (seconds).
502A dependent service returned an invalid response (BAD_GATEWAY). Retry with backoff.
503The service is temporarily unavailable (SERVICE_UNAVAILABLE). Retry with backoff.
504A dependent service did not respond in time (GATEWAY_TIMEOUT). Retry with backoff.
curl --request PATCH \
--url https://api-omni-vendors.linra.net/api/v1/scent/orders/5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b/status \
--header 'Authorization: Bearer $TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"status": {},
"trackingRef": "string",
"carrier": {},
"carrierNameOther": "string"
}'

Response

{
"state": "SUCCESS",
"payload": {
"applied": true,
"group": {
"groupId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b",
"status": "Pending",
"vendorOrderId": "string",
"packedAt": "2026-08-22T09:14:03Z",
"shippedAt": "2026-08-22T09:14:03Z",
"deliveredAt": "2026-08-22T09:14:03Z",
"shipTo": {
"recipient": "string",
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string",
"phone": "string"
},
"tracking": {
"ref": "string",
"carrier": {},
"carrierNameOther": "string"
},
"lines": [
{
"lineId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b",
"variantId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b",
"sku": "string",
"quantity": 0
}
]
}
},
"details": null
}