create_estimate
Generate client estimates in FreshBooks using invoice-style line items to outline project costs and scope before billing.
Instructions
Create an estimate. Lines format same as invoices.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | ||
| lines | Yes | ||
| currency_code | No | USD | |
| notes | No |
Implementation Reference
- src/mcp_freshbooks/server.py:474-493 (handler)The create_estimate tool handler implementation in server.py, which uses the MCP tool decorator and calls the client's accounting_create method.
@mcp.tool() @_handle_errors async def create_estimate( customer_id: int, lines: list[dict], currency_code: str = "USD", notes: str = "", ) -> str: """Create an estimate. Lines format same as invoices.""" data = { "customerid": customer_id, "create_date": _today(), "currency_code": currency_code, "lines": lines, } if notes: data["notes"] = notes result = await client.accounting_create("estimates/estimates", "estimate", data) est = result.get("estimate", result) return f"Estimate #{est.get('estimate_number', '?')} created (ID: {est.get('id')})"