jobs.complete
Mark a job done (owner or office). Refused with checklist_open while a job checklist, a checklist on a visit not yet done, or a sign-off checklist on a cancelled visit, has required items open or a sign-off missing; the owner, signed in on the hosted override page (/p/checklist/override), may pass override_reason to mark it done anyway (recorded and audited). Agents, keys and office staff cannot override.
| Who | Agents can call this |
| REST | POST /v1/jobs/complete |
| MCP tool | jobs_complete |
| Writes | yes, send an Idempotency-Key |
| Area | Shop |
When to use it
Keep checklist templates (checklists.saveTemplate) and put a checklist on a job or on one visit (checklists.create). Required items gate done: visits.done refuses a visit with open required items or a missing sign-off, and jobs.complete refuses a job while its own checklists, or those of visits not yet done, are open.
What to tell the owner
Say what you did in plain words and what happens next.
Input
| Field | Type | Required |
|---|---|---|
job_id | string (uuid) | yes |
override_reason | string | no |
Example
POST https://doingwork.work/v1/jobs/complete
content-type: application/json
Idempotency-Key: 3f1c...
{
"job_id": "00000000-0000-4000-8000-000000000000"
}Output
JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are {code, message, status}.
Errors
| Code | Status | What to do |
|---|---|---|
invalid_input, invalid_token, rate_limited | Can happen on any call. See errors. |