List my return requests
List every one of your own return requests.
Returns
/api/v1/scent/return-requestsAPI Docs Review effort, Phase N2 (D70): returns every one of the caller’s OWN return
requests (every status, across every order), newest first, optionally narrowed by
status, a fromDate/toDate window on requestedAt (fromDate inclusive, toDate
exclusive), a specific orderId, and/or customerRef. Every filter only narrows within
your own scope — never widens past it. status accepts ONLY the partner-facing vocabulary
this endpoint’s own response emits (Requested/Accepted/Processing/Refunded/
Rejected/Withdrawn) — an unrecognized value (including an internal status name, or a
numeric ordinal) is rejected with 400 VALIDATION_INVALID_RETURN_STATUS rather than
silently matching nothing.
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.
statusstringRequested/Accepted/Processing/Refunded/Rejected/Withdrawn.
fromDatestring (date-time)Only include requests made on or after this UTC instant (inclusive). Read as UTC when it carries no offset; a date-only value means 00:00Z. An unparseable value, or a from/to pair with from after to, returns 400 VALIDATION_INVALID_DATE.
toDatestring (date-time)Only include requests made strictly before this UTC instant (exclusive — half-open window with fromDate). Read as UTC when it carries no offset; a date-only value means 00:00Z. An unparseable value, or a from/to pair with from after to, returns 400 VALIDATION_INVALID_DATE.
orderIdstring (uuid)Optional narrowing filter — only this order’s return requests.
customerRefstringOptional per-customer filter (max 128 chars) — narrows to one end-customer’s own rows. Can only narrow, never widen, your own scope; omit to include every customer.
Response
itemsarray of objectpagination.pageintegerpagination.pageSizeintegerpagination.totalCountintegerpagination.totalPagesintegerpagination.hasPreviousbooleanWhether there is a previous page.
pagination.hasNextbooleanWhether there is a next page.
Other responses
400An unrecognized status value (VALIDATION_INVALID_RETURN_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/scent/return-requests \ --header 'Authorization: Bearer $TOKEN'const res = await fetch('https://api-omni.linra.net/api/v1/scent/return-requests', { headers: { Authorization: `Bearer ${token}`, },});const { payload } = await res.json();var response = await httpClient.GetAsync("https://api-omni.linra.net/api/v1/scent/return-requests");
var envelope = await response.Content.ReadFromJsonAsync<ApiResponse<PagedReturnRequestResponse>>();Response
{ "state": "SUCCESS", "payload": { "items": [ { "id": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "orderId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "fulfillmentGroupId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "returnRequestNumber": "string", "status": "Requested", "declineReason": "string", "timeline": { "requestedAt": "2026-08-22T09:14:03Z", "decidedAt": "2026-08-22T09:14:03Z", "waybillIssuedAt": "2026-08-22T09:14:03Z", "collectionScheduledAt": "2026-08-22T09:14:03Z", "inTransitAt": "2026-08-22T09:14:03Z", "refundReleasedAt": "2026-08-22T09:14:03Z" }, "logistics": { "waybillNumber": "string", "carrier": "string", "carrierNameOther": "string", "returnDestinationType": "SortingPoint" }, "inspection": { "receivedAt": "2026-08-22T09:14:03Z", "inspectionStartedAt": "2026-08-22T09:14:03Z", "decidedAt": "2026-08-22T09:14:03Z", "outcome": "Accepted", "shippingFeeRefundApplies": true }, "refund": { "currency": "SAR", "goods": { "net": 0, "vat": 0, "total": 0 }, "commissionClawback": 0, "shippingFeeRefund": 0, "total": 0 }, "lines": [ { "id": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "scentOrderLineId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "allocationId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "quantity": 0, "reasonCode": "string" } ] } ], "pagination": { "page": 0, "pageSize": 0, "totalCount": 0, "totalPages": 0, "hasPrevious": true, "hasNext": true } }, "details": null}
