Write Off Lot
POST/api/inventory-expiry/lots/:fifoLayer/write-off
Write off a lot's remaining (or partial) quantity via an expired-stock DECREASE inventory adjustment (reason: expired). quantity is optional — when omitted the layer's full remaining available quantity is written off; when set, only that portion is consumed (partial write-off).
Authentication: Requires Bearer token. Scope: scope.rw:inventory (write) + permission inventory.adjust.
Path param: fifoLayer — the FIFO layer (lot) id, route-model-bound.
void_confirmations (array, optional) — when the write-off would consume stock that is hard-allocated to a fulfillment with a printed shipping label, list one entry per fulfillment to authorize voiding that label and proceeding. Omit it and the request is rejected with a 422 conflict if hard-allocated stock is in the way. void_confirmations[].fulfillment_id (integer, required) — the fulfillment whose label may be voided. void_confirmations[].attempt_void (boolean, required) — true to void the label and consume its stock. void_confirmations[].reason (string, optional) — free-text audit note for the void.
inventory:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.