Private preview of the new site. Not live.

materials.add

Record a material used on a job (optionally on one of its visits): from the price book (pricebook_item_id; its name, unit, price, cost and taxable are copied as they are now) or typed in (name, unit, and optionally the price and cost per unit). Any worker of the shop can record materials, including one who may not see prices.

WhoAgents can call this
RESTPOST /v1/materials
MCP toolmaterials_add
Writesyes, send an Idempotency-Key
AreaField work (checklists, forms, time, notes, change orders, subcontractors)

When to use it

Record what went into a job: materials.add from the price book (pricebook_item_id; its name, unit, price, cost and taxable are copied as they are today) or typed in, optionally on one visit. Afterwards only the quantity, visit and notes change (materials.update); for anything else remove it (materials.remove keeps it in history with who and why) and add it again.

What to tell the owner

Say what you did in plain words and what happens next.

Input

FieldTypeRequired
job_idstring (uuid)yes
visit_idstring (uuid)no
pricebook_item_idstring (uuid)no
namestringno
unitstringno
quantitynumberyes
unit_price_minorintegerno
unit_cost_minorintegerno
taxablebooleanno
notesstringno

Example

POST https://doingwork.work/v1/materials
content-type: application/json
Idempotency-Key: 3f1c...

{
  "job_id": "00000000-0000-4000-8000-000000000000",
  "quantity": "..."
}

Output

JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are {code, message, status}.

Errors

CodeStatusWhat to do
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.