Unfirm Planned Orders
POST/api/manufacturing/mrp/planned-orders/unfirm
Release the pin on firmed planned orders (firm -> planned), so the next run is free to re-plan them.
Authorization: requires the mrp.run permission and a token carrying the mrp:run scope (manufacturing:write also satisfies it).
Selection payload — either an explicit list of ids, or every planned order matching a set of filters:
- scope:
selected(default) acts onids;filteredacts on every row matchingfilter/filter_groupswithinmrp_run_id. - ids[]: planned-order ids. Required unless
scope=filtered. At most 1000 — usescope=filteredbeyond that. Ids that no longer exist come back as a 422 naming them (a planned order is replaced on every run, so a stale selection means the plan was re-run). - mrp_run_id: required when
scope=filtered— the run the filters are resolved against. - exclude_ids[]: rows to leave out after selecting everything matching the filters (max 1000).
- filter / filter_groups / sort: the same filters and sort GET /api/manufacturing/mrp/runs/{mrpRun}/planned-orders accepts, replayed to resolve the filtered set.
Rows that are not in the
firmstate are skipped rather than refused;skippedin the response says how many.
mrp:run|manufacturing:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
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.