Switch Cost Change Resolution
POST/api/cost-changes/:costChange/switch
Switches an applied cost change between restate and going forward. Every revaluation the change produced is re-dated to the new convention (and its ledger entries with it), rather than reversed and re-posted, so the cost history stays attributable to this one decision. Switching to the resolution the change already carries is a no-op.
inventory:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
For prospective, prospective_anchor and prospective_date choose the posting day exactly as on apply. Switching to restate clears any stamped anchor.
Responds 422 when switching to restate and any of the set's original receipt months are behind the accounting lock date - the message is the same restate_blocked_reason the listing and previews show. Responds 409 when the change is not in the applied state, or the chosen posting day is outside the allowed window. Use Get Decision Impact first to see which ledger entries and provider records the switch touches.
Authentication: Requires Bearer token (inventory scope) and permission to resolve cost changes.
Path params:
- costChange: Cost change set ID
Body fields:
- resolution (required): restate or prospective
- prospective_anchor (optional): entered, document or custom; defaults to entered. Ignored for restate
- prospective_date (optional, Y-m-d): required when prospective_anchor is custom
- notes (optional, max 2000 chars): recorded on the decision
Request
Responses
- 200
- 401
- 403
- 404
- 409
- 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
Response Headers
Conflict
Response Headers
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.