changes.invoice
Bill approved change orders on a normal invoice (draft; send it with invoices.send). Each change order's lines are copied, labelled with its number. Leave out change_order_ids to bill every approved change order on the job not yet invoiced. They must share one tax rate. Credits (change orders under 0) come off as discounts and need priced work on the same invoice.
| Who | Agents can call this |
| REST | POST /v1/change-orders/invoice |
| MCP tool | changes_invoice |
| Writes | yes, send an Idempotency-Key |
| Area | Field work (checklists, forms, time, notes, change orders, subcontractors) |
When to use it
A change order is a priced change to a job's scope: extra work, or a credit for work taken out. A worker writes the lines (changes.create; never fill prices in yourself).
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 |
change_order_ids | array | no |
due_on | string | no |
memo | string | no |
Example
POST https://doingwork.work/v1/change-orders/invoice
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. |