Skip to content

Push a fulfilment status update

PATCH
/api/v1/vendor/orders/{groupId}/status
curl --request PATCH \
--url https://api-omni.linra.net/api/v1/vendor/orders/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "status": "Pending", "trackingRef": "example" }'

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.

groupId
required
string format: uuid
Media typeapplication/json
object
status
required

Only Shipped, Delivered, or Cancelled are ever accepted from a vendor — any other value (including Packed, operator-only) is a clean no-op, never an error.

string
Allowed values: Pending Packed Shipped Delivered Cancelled Returned PendingSourcing
trackingRef

Optional carrier tracking reference.

string
nullable <= 128 characters

Whether the push applied, plus the group’s current state either way.

Media typeapplication/json
object
state
required
string
payload
required
details
object
payload
required
object
applied

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.

boolean
group

Deliberately EXCLUDES the reselling partner’s identity, any customer/external reference, and every money/tax field (order total, commission, VAT, currency, discounts, tax-registration numbers) and the internal saga correlation id — none of it is the vendor’s business. You are paid via your own commercial terms with Linra, tracked entirely on the offer/cost-push side, never derived from what a partner paid.

object
groupId
string format: uuid
orderGlobalId

Linra’s own canonical order id — stable across both sides for support/correlation. Never the partner’s own external reference.

string
status
string
Allowed values: Pending Packed Shipped Delivered Cancelled Returned PendingSourcing
vendorOrderId

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

string
nullable
trackingRef
string
nullable
packedAt
string format: date-time
nullable
shippedAt
string format: date-time
nullable
deliveredAt
string format: date-time
nullable
shipRecipient
string
shipLine1
string
shipLine2
string
nullable
shipCity
string
shipRegion
string
nullable
shipPostalCode
string
nullable
shipCountry
string
shipPhone
string
lines
Array<object>

Trimmed to exactly what’s needed to pack the shipment. No money field of any kind is present.

object
lineId
string format: uuid
variantId
string format: uuid
sku

The catalog SKU for this variant, resolved regardless of the variant’s current active state.

string
quantity
integer
Example
{
"state": "SUCCESS",
"payload": {
"group": {
"status": "Pending"
}
}
}

Request validation failed.

Media typeapplication/json
object
state
required
string
payload
details
object
Example
{
"state": "NOT_FOUND_VENDOR_OFFER"
}

Your token doesn’t carry the capability this endpoint requires.

Media typeapplication/json
object
state
required
string
payload
details
object
Examples
ExamplemissingCapability
{
"state": "FORBIDDEN_CAPABILITY_NOT_GRANTED",
"payload": null,
"details": {
"requiredCapability": "Orders"
}
}

Unknown fulfilment group id, or one belonging to another vendor.

Media typeapplication/json
object
state
required
string
payload
details
object
Examples
ExamplenotFound
{
"state": "NOT_FOUND_FULFILLMENT_GROUP",
"payload": null,
"details": {}
}

Too many requests. Retry after the Retry-After header (seconds).

Media typeapplication/json
object
state
required
string
payload
details
object
Example
{
"state": "NOT_FOUND_VENDOR_OFFER"
}
Retry-After
integer

Seconds to wait before retrying.