Create an estimate
item_id or a description, qty must be greater than 0, rate must be 0 or more.
One difference from invoices: a line item on an estimate can’t carry
expense_id. There’s no expense-linking on this resource at all, since bb_estimate has no balance or paid columns to reconcile against, only invoices affect accounts receivable. Sending expense_id on an estimate line gets rejected by validation.subtotal, discount, taxtotal, nettotal) are computed the same way as invoices: always server-side from items, any submitted total-shaped value in the request body is ignored.
Update an estimate
items is a full replace on update, not a patch, submit the complete desired line set every time. Every other field is a genuine partial patch.
Converting an estimate to an invoice
There’s no dedicated “convert” endpoint on this API. To turn an accepted estimate into a bill, create a new invoice through the Invoices endpoint using the sameclient_id and line items. That keeps the two resources’ side effects properly separated: the estimate itself never touches stock or client balance, only the resulting invoice does.
Deleting an estimate
What’s next
- Create and send an invoice for turning an accepted estimate into a bill
- Build your item catalog for the
item_idvalues estimates reference