Skip to content

Get one order by its global ID (unified view, any product type)

GET
/api/v1/orders/{orderGlobalId}
curl --request GET \
--url https://api-omni.linra.net/api/v1/orders/example \
--header 'Authorization: Bearer <token>'
orderGlobalId
required
string

The unified order header plus exactly one populated product-detail field.

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

Exactly one of topupDetail/esimDetail/scentDetail is populated, matching header.productType.

object
header
object
orderGlobalId
string
partnerId
string format: uuid
productType
string
Allowed values: Topup Esim Scent
productOrderId
string format: uuid
nullable
externalReference
string
amount
number format: decimal
currency
string
status

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.

string
Allowed values: Processing Completed Failed Cancelled PartiallyReturned Returned
failureCode
string
nullable
createdAt
string format: date-time
completedAt
string format: date-time
nullable
displayCurrency

Set only when the partner’s preferred display currency differs from SAR.

string
nullable
rate
number
nullable
amountDisplay
number
nullable
topupDetail
object
orderId
string format: uuid
orderGlobalId
string
sagaId
string
partnerId
string format: uuid
partnerGlobalId
string
geoScopeGlobalId
string
externalReference
string
phoneNumber
string
amount
number format: decimal
currency
string
status
string
statusDetail

Product-specific status detail carried on Topup/eSIM order responses.

object
productType
string
statusCode
string
description
string
nullable
vendorOrderId
string
nullable
errorMessage
string
nullable
submittedAt
string format: date-time
completedAt
string format: date-time
nullable
currentRetryCount
integer
nextPollAt
string format: date-time
nullable
displayCurrency
string
nullable
rate
number
nullable
amountDisplay
number
nullable
esimDetail
object
orderId
string format: uuid
orderGlobalId
string
partnerId
string format: uuid
partnerGlobalId
string
geoScopeGlobalId
string
externalReference
string
status
string
statusDetail

Product-specific status detail carried on Topup/eSIM order responses.

object
productType
string
statusCode
string
description
string
nullable
productSku
string
email
string
dataAllowance
number format: decimal
validityDays
integer
amount
number format: decimal
currency
string
submittedAt
string format: date-time
completedAt
string format: date-time
nullable
esimIccid

Populated once provisioning succeeds.

string
nullable
esimQrCode

Populated once provisioning succeeds.

string
nullable
esimActivationCode

Populated once provisioning succeeds.

string
nullable
esimPlanDetails

Populated once provisioning succeeds.

string
nullable
errorMessage
string
nullable
displayCurrency
string
nullable
rate
number
nullable
amountDisplay
number
nullable
scentDetail
object
id
string format: uuid
orderGlobalId
string
sagaId
string
partnerId
string format: uuid
externalReference
string
customerRef
string
nullable
totalAmount
number format: decimal
totalCommission
number format: decimal
currency
string
status
string
lines
Array<object>

Deliberately omits internal cost/wholesale fields.

object
id
string format: uuid
variantId
string format: uuid
quantity
integer
returnedQuantity
integer
unitAmount
number format: decimal
lineTotal
number format: decimal
partnerCommission
number format: decimal
nullable
pricingMode
string
source
string
nullable
taxClassification
string
vatRateApplied
number format: decimal
lineGoodsVatAmount
number format: decimal
lineCommissionVatAmount
number format: decimal
nullable
unitAmountDisplay
number
nullable
lineTotalDisplay
number
nullable
partnerCommissionDisplay
number
nullable
fulfillmentGroups
Array<object>
object
id
string format: uuid
status
string
deliveredAt
string format: date-time
nullable
deliveryRollup
object
totalGroups
integer
deliveredGroups
integer
totalGoodsVatAmount
number format: decimal
totalCommissionVatAmount
number format: decimal
totalAmountWithVat
number
nullable
totalCommissionWithVat
number
nullable
taxPoint
string format: date-time
nullable
platformTaxRegistrationNumber
string
nullable
partnerTaxRegistrationNumber
string
nullable
partnerIsVatRegistered
boolean
displayCurrency
string
nullable
rate
number
nullable
totalAmountDisplay
number
nullable
detailUnavailableReason
string
nullable
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).

Media typeapplication/json

The envelope every /api/v1 ERROR response uses. state carries the machine-readable error code (see the Errors guide).

object
state
required
string
payload
required

Always null on an error response.

object
details
object
Examples
ExamplenotFound
{
"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).

Media typeapplication/json

The envelope every /api/v1 ERROR response uses. state carries the machine-readable error code (see the Errors guide).

object
state
required
string
payload
required

Always null on an error response.

object
details
object
Example
{
"state": "NOT_FOUND_ORDER",
"payload": null
}
Retry-After
integer

Seconds to wait before retrying.