freshbooks_update_estimate
Update an existing estimate by adjusting line items, notes, terms, or other fields. Changes are previewed and confirmed before being applied.
Instructions
Update an existing estimate. Only the supplied fields are sent; anything omitted is left alone. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Supplying lines REPLACES the whole line set — include each existing line's lineid to keep it. Returns the re-fetched estimate.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate id | |
| lines | No | Full replacement line set. Include lineid on a line to update it in place. | |
| notes | No | Notes shown on the estimate | |
| terms | No | Terms shown on the estimate | |
| fields | No | Additional raw FreshBooks estimate fields, merged into the payload — e.g. {"vis_state": 1} to soft-delete. Field names are not validated. | |
| po_number | No | ||
| customerid | No | Client the estimate is for | |
| create_date | No | Estimate date, YYYY-MM-DD | |
| description | No | Estimate description / summary line | |
| confirmToken | No | ONLY for the two-step confirmation fallback (a client without MCP elicitation). The confirmToken from this same tool's phase-1 "confirmation-required" response, passed back ONLY after the user has seen that preview and explicitly approved it in chat — never on the first call, never invented, never reused. Call again with the same arguments. Ignored when the client supports elicitation. | |
| presentation | No | Presentation block — theme_primary_color, theme_font_name, image_logo_src, date_format and friends. | |
| currency_code | No | Currency code, e.g. "USD" | |
| discount_value | No | Discount percentage as a decimal string, e.g. "30" | |
| estimate_number | No | User-visible estimate number, e.g. "0000654" |