List my open unfulfillable line notices
List your own open unfulfillable-line notices.
Unfulfillable Notices
/api/v1/scent/unfulfillable-noticesSelf-serve recovery path: your own OPEN (still AwaitingPartnerResponse) unfulfillable-line
notices, newest first — use this when the 72-hour order.line-unfulfillable webhook was
missed or never arrived. A notice is raised when a line becomes unfulfillable AFTER you’ve
already been charged for it (a receiving-time shortage/damage that couldn’t be replaced in
time, or a lost shipment), and gives you 72 hours to choose CancelWhole (cancel the whole
outstanding line, full refund) or ShipAvailable (ship what’s available, cancel + refund
only the shortfall) via PATCH .../{id}/respond below. If you don’t respond in time, the
system applies its own documented default and the notice leaves this list (no longer open).
Each row carries the affected line’s context and the projected money impact of each choice.
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.
Response
itemsarray of objectpagination.pageintegerpagination.pageSizeintegerpagination.totalCountintegerpagination.totalPagesintegerpagination.hasPreviousbooleanWhether there is a previous page.
pagination.hasNextbooleanWhether there is a next page.
Other responses
400A query parameter was rejected. Unknown parameter name: VALIDATION_UNKNOWN_QUERY_PARAMETER (details.allowedParameters). Value that does not parse (id, enum, number, boolean): VALIDATION_INVALID_QUERY_PARAMETER (enums add details.allowedValues). Unknown include token: VALIDATION_UNKNOWN_INCLUDE (details.allowedValues). pageSize outside 1–100: VALIDATION_INVALID_PAGE_SIZE. page below 1: VALIDATION_INVALID_PAGE. Unparseable date, or a from/to pair with from after to: VALIDATION_INVALID_DATE. details.errors names every offending parameter.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/unfulfillable-notices \ --header 'Authorization: Bearer $TOKEN'const res = await fetch('https://api-omni.linra.net/api/v1/scent/unfulfillable-notices', { headers: { Authorization: `Bearer ${token}`, },});const { payload } = await res.json();var response = await httpClient.GetAsync("https://api-omni.linra.net/api/v1/scent/unfulfillable-notices");
var envelope = await response.Content.ReadFromJsonAsync<ApiResponse<PagedUnfulfillableLineNoticeResponse>>();Response
{ "state": "SUCCESS", "payload": { "items": [ { "id": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "scentOrderId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "reason": "OutOfStock", "status": "AwaitingPartnerResponse", "responseChoice": "CancelWhole", "notifiedAt": "2026-08-22T09:14:03Z", "responseDeadlineAt": "2026-08-22T09:14:03Z", "hasShipmentDeparted": true, "respondedAt": "2026-08-22T09:14:03Z", "line": { "scentOrderLineId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "variantId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "sku": "string", "orderedQuantity": 0, "availableQuantity": 0, "shortfallQuantity": 0 }, "impact": { "cancelWhole": { "currency": "SAR", "goods": { "net": null, "vat": null, "total": null }, "commissionClawback": 0, "shippingFeeRefund": 0, "total": 0 }, "shipAvailable": { "currency": "SAR", "goods": { "net": null, "vat": null, "total": null }, "commissionClawback": 0, "shippingFeeRefund": 0, "total": 0 } } } ], "pagination": { "page": 0, "pageSize": 0, "totalCount": 0, "totalPages": 0, "hasPrevious": true, "hasNext": true } }, "details": null}
