Settle Inventory Debt Claims
POST/api/inventory/debt/claims/settle
Settle the selected inventory debt claims against stock that has since been received.
inventory:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Settlement runs per (product, warehouse) POOL and repays strictly oldest-first, so selecting a newer claim also settles the older claims ahead of it. That ordering is deliberate: letting a newer claim jump the queue would date the cost variance wrongly.
Consignment stock and layers dated after the debt was incurred are never used. Each repaid unit is restated from its provisional estimate to the layer's actual cost, and the difference posts as a dated cost variance.
Call Preview Inventory Debt Settlement first to see exactly which layers would be consumed and at what cost. Where no receipt will ever repay the debt, use Create Catch-Up Stock Takes instead.
Request body:
- claim_ids (array of integer, required, 1-200) - the claims to settle
Response 200:
- data.settlements (integer) - settlement slices written
- data.claims_settled (integer) - claims that moved out of Outstanding
- data.pools (integer) - distinct product/warehouse pools run
- data.message (string) - human summary
Request
Responses
- 200
- 401
- 403
- 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.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
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.