Move a deal to another commercial stage
Moves a deal to a new commercial stage and records the move. Stages: contracted, active, complete, declined (production — script/video/posting — is tracked per deliverable, not on the deal). Forward moves (including skips, e.g. contracted straight to complete) are allowed and need no reason. A backward move — including reopening a completed or declined deal — requires a reason. declined is reachable from any stage. Body: toStage and an optional reason. Returns the recorded move. 400 if the move is illegal or a backward move omits a reason; 404 if the deal doesn't exist or you can't see it.
A Supabase-issued OAuth user access token. On collection endpoints, pair with a Passo-Workspace header to pick a workspace.
In: header
Path Parameters
1 <= lengthRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/deals/string/moves" \ -H "Content-Type: application/json" \ -d '{ "toStage": "contracted" }'{ "id": "string", "dealId": "string", "fromStage": "contracted", "toStage": "contracted", "reason": "string", "actorUserId": "string", "createdAt": "string"}