Get one order by its global ID (unified view, any product type)
const url = 'https://api-omni.linra.net/api/v1/orders/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api-omni.linra.net/api/v1/orders/example \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”The unified order header plus exactly one populated product-detail field.
object
object
Exactly one of topupDetail/esimDetail/scentDetail is populated, matching header.productType.
object
object
The one status vocabulary every product’s order maps into. Today only Processing,
Failed, and PartiallyReturned are actually written — fulfillment-status sync into
Completed/Cancelled/Returned is a tracked future improvement, not yet live.
Set only when the partner’s preferred display currency differs from SAR.
object
Product-specific status detail carried on Topup/eSIM order responses.
object
object
Product-specific status detail carried on Topup/eSIM order responses.
object
Populated once provisioning succeeds.
Populated once provisioning succeeds.
Populated once provisioning succeeds.
Populated once provisioning succeeds.
object
Deliberately omits internal cost/wholesale fields.
object
object
object
Example
{ "state": "SUCCESS", "payload": { "header": { "productType": "Topup", "currency": "SAR", "status": "Processing" }, "topupDetail": { "currency": "SAR", "statusDetail": { "productType": "Topup", "statusCode": "TOPUP_SUCCESS" } }, "esimDetail": { "statusDetail": { "productType": "Topup", "statusCode": "TOPUP_SUCCESS" }, "currency": "SAR" }, "scentDetail": { "currency": "SAR" } }}Unknown order, or an order belonging to another partner (no existence leak — always 404, never 403).
The envelope every /api/v1 ERROR response uses. state carries the machine-readable error code (see the Errors guide).
object
Always null on an error response.
object
object
Examples
{ "state": "NOT_FOUND_ORDER", "payload": null, "details": { "orderGlobalId": "ORD-EXAMPLE-0001" }}Too many requests — see the Rate limits guide. Retry after the Retry-After header (seconds).
The envelope every /api/v1 ERROR response uses. state carries the machine-readable error code (see the Errors guide).
object
Always null on an error response.
object
object
Example
{ "state": "NOT_FOUND_ORDER", "payload": null}Headers
Section titled “Headers”Seconds to wait before retrying.