Bulk Resolve Cost Changes
POST/api/cost-changes/bulk-resolve
Resolves several cost changes in one call, oldest-first so that overlapping changes apply in the order they were staged. Every action is state-aware and never fails the batch outright: each selected set is either resolved, skipped with a reason, or failed with an error, and the response lists all three.
inventory:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
action:
- apply: applies sets awaiting review with the given
resolution; switches already-applied sets to that resolution; skips dismissed sets and sets already carrying it - dismiss: dismisses sets awaiting review; skips the rest
- revert: reverts applied or dismissed sets to the inbox; skips sets already there
When action is omitted, a resolution means apply and no resolution means dismiss.
With resolution: restate, any set whose original receipt months are behind the accounting lock date is reported under skipped with the restate-blocked sentence as its message, and the rest of the batch proceeds. A set blocked by an older pending change on the same layers is reported under failed.
Authentication: Requires Bearer token (inventory scope) and permission to resolve cost changes.
Body fields:
- ids (required, array of integers, min 1): cost change set IDs
- action (optional): apply, dismiss or revert
- resolution (optional, required when action is apply): restate or prospective
- prospective_anchor (optional): entered or document (a custom day is not available in bulk); defaults to entered
- notes (optional, max 2000 chars): recorded on every decision in the batch
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.
Unprocessable Content
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.