Add vendor return evidence
Upload inspection evidence (a damage photo or document).
Returns
POST
/api/v1/scent/returns/{id}/evidenceUploads one piece of evidence against your own return request’s inspection. At least one
Photo must exist before inspection/propose accepts a proposal. Requires the request to
already be Received (BUSINESS_RETURN_REQUEST_NOT_RECEIVED otherwise). Same ownership
scope as markVendorReturnReceived. Requires the Orders capability.
Path parameters
idstring (uuid)RequiredThe return request id.
Body parameters
urlstring (uri)RequiredMust be an absolute https:// URL.
kindstring (enum)RequiredResponse
idstring (uuid)urlstring (uri)kindstring (enum)uploadedAtstring (date-time)Other responses
400Request validation failed.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 Rate limits & errors guide.403Your token doesn’t carry the capability this endpoint requires.404Unknown return request id, one belonging to another vendor, or one not destined to a supplier at all (a Linra-sorting-point-bound return — never reachable on this API).415The request body is not sent as application/json (UNSUPPORTED_MEDIA_TYPE).422The request has not been received yet.429Too many requests. 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 POST \ --url https://api-omni-vendors.linra.net/api/v1/scent/returns/5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b/evidence \ --header 'Authorization: Bearer $TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "url": "https://your-integration.example.com/webhooks/linra", "kind": "Photo" }'const res = await fetch('https://api-omni-vendors.linra.net/api/v1/scent/returns/5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b/evidence', { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ url: 'https://your-integration.example.com/webhooks/linra', kind: 'Photo' }),});const { payload } = await res.json();var response = await httpClient.PostAsJsonAsync( "https://api-omni-vendors.linra.net/api/v1/scent/returns/5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b/evidence", new { url = "https://your-integration.example.com/webhooks/linra", kind = "Photo" });
var envelope = await response.Content.ReadFromJsonAsync<ApiResponse<VendorReturnEvidenceResponse>>();Response
{ "state": "SUCCESS", "payload": { "id": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "url": "https://your-integration.example.com/webhooks/linra", "kind": "Photo", "uploadedAt": "2026-08-22T09:14:03Z" }, "details": null}
