Get your own wallet balance
const url = 'https://api-omni.linra.net/api/v1/wallet/balance';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/wallet/balance \ --header 'Authorization: Bearer <token>'Self-only by construction — there is no partnerId parameter anywhere on this endpoint;
the partner is whoever the bearer token identifies. availableBalance already accounts for
active reservations (it is what you can actually spend right now).
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The caller’s wallet balance.
object
object
Deliberately narrower than the internal-admin wallet view — omits minBalanceThreshold (an
internal risk/floor setting) and walletStructure/isActive (internal account topology).
object
CurrentBalance minus every active, non-expired reservation — the same figure the reserve/debit paths enforce.
Example
{ "state": "SUCCESS", "payload": { "currency": "SAR" }}The partner has no wallet provisioned.
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_WALLET", "payload": null, "details": {}}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.