Procurement
Material requests, orders, and receipts.
Route: /projects/[projectId]/procurement. Registers: requests, receipts, commitments, bid invitations, lien waivers.
Request
createProcurementRequestWithLine. "A procurement request requires a bounded, non-empty line set".
Order
placeProcurementOrder after transitionProcurementRequestStatus moves draft to submitted.
Receive
recordMaterialReceipt. "Accepted receipts exceed the ordered quantity for a request line" blocks over-receipt.
Lien waivers are tracked here and on Billing.