List commission periods
List your commission periods.
Commission Periods
/api/v1/commission-periodsLists your own commission operating-cycle periods (paged, newest window first; each period
follows your statement cadence and ends on the same day as a statement period)
as lean summary rows — the full ledger detail (per-order lines) is available only via the
by-id read with ?include=document. A period is generated PROVISIONAL at close, becomes
ISSUED once its objection window passes (frozen figures; commission due by the end of that same
issue day, Saudi time), and is
marked SETTLED once Linra records your commission invoice as received. See
Commission periods for the full lifecycle.
Query parameters
pageinteger1-based page number (default 1). A value below 1, or one that is not a whole number, returns 400 VALIDATION_INVALID_PAGE.
pageSizeintegerItems per page, 1 to 100 (default 20). Any other value returns 400 VALIDATION_INVALID_PAGE_SIZE; it is never silently clamped.
statusarray of string (enum)Repeatable match-any filter (?status=Provisional&status=Issued). Omit for every status.
Response
itemsarray of objectpagination.pageintegerpagination.pageSizeintegerpagination.totalCountintegerpagination.totalPagesintegerpagination.hasPreviousbooleanWhether there is a previous page.
pagination.hasNextbooleanWhether there is a next page.
Other responses
400An unparseable or undefined status value (VALIDATION_INVALID_COMMISSION_PERIOD_STATUS). Any other rejected query input uses the shared query codes (VALIDATION_UNKNOWN_QUERY_PARAMETER, VALIDATION_INVALID_QUERY_PARAMETER, VALIDATION_INVALID_PAGE_SIZE, VALIDATION_INVALID_PAGE, VALIDATION_INVALID_DATE) — see the Errors guide.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 Errors guide.403The route is not available to your credential (FORBIDDEN).404No API route matches this path (NOT_FOUND_ROUTE). A missing resource on a real route returns that service’s own NOT_FOUND_* code instead.429Too many requests — see the Rate limits guide. 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 GET \ --url https://api-omni.linra.net/api/v1/commission-periods \ --header 'Authorization: Bearer $TOKEN'const res = await fetch('https://api-omni.linra.net/api/v1/commission-periods', { headers: { Authorization: `Bearer ${token}`, },});const { payload } = await res.json();var response = await httpClient.GetAsync("https://api-omni.linra.net/api/v1/commission-periods");
var envelope = await response.Content.ReadFromJsonAsync<ApiResponse<PagedPartnerCommissionPeriodSummary>>();Response
{ "state": "SUCCESS", "payload": { "items": [ { "id": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "period": { "from": "2026-08-22T09:14:03Z", "to": "2026-08-22T09:14:03Z" }, "issueDate": "2026-08-22T09:14:03Z", "dueDate": "2026-08-22T09:14:03Z", "currency": "SAR", "status": "Provisional", "generatedAt": "2026-08-22T09:14:03Z", "isObjected": true, "objectedAt": "2026-08-22T09:14:03Z", "overdue": true, "netDue": 0, "totals": { "gross": 0, "net": 0, "vat": 0, "commission": 0, "commissionVat": 0 } } ], "pagination": { "page": 0, "pageSize": 0, "totalCount": 0, "totalPages": 0, "hasPrevious": true, "hasNext": true } }, "details": null}
