Show FIFO Layer
GET/api/v2/fifo-layers/:fifoLayer
Returns a single FIFO layer with product, warehouse, source-document link, and origin-movement relations loaded.
inventory:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
The origin block identifies the source document that created the layer and now includes origin.movement — the metadata of the inventory movement that created the layer (id, date, type, source link, quantity, unit_cost, inventory_status, reference, batch_number, expiry_date, warehouse, and warehouse_location). That origin movement is excluded from the layer's usage-movements listing by default, so its details are surfaced here instead.
Lot fields (batch_number, manufacture_date, expiry_date, days_to_expiry, lot_notes) are always included; days_to_expiry is a signed whole-day countdown (negative = already expired, null when the lot has no expiry).
Authentication: Requires Bearer token.
cost_version is the revaluation generation of the layer's current costs (starts at 1, advances with each posted revaluation). The origin movement's cost_version is the generation its unit_cost snapshot was recorded against — origin movements are immutable history, so a layer cost_version greater than the origin movement's means the layer has been revalued since receipt and the deltas are recorded as inventory revaluations.
The response includes review_status when the lot has been flagged or dispositioned — status (open, acknowledged, written_off, quarantined), a display label, the notes explaining why, the inventory_hold_id of any hold it placed, and reviewed_at. It is null for a lot that has never been flagged.
Note that available_quantity is layer accounting — original quantity minus fulfilled quantity — and is NOT available-to-promise. A quarantined lot keeps reporting its units here while the hold keeps them off sale, so read review_status alongside it.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
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.
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.