Create an estimate
Create an estimate for a customer or lead.
POST https://cotlet.dev/api/v1/method-crm/contacts/{contact_id}/estimates
write Confirm
Returns the estimate ID and total. Items must exist in your Items App; an unknown item fails and the error lists nearby names. With the hold on, nothing reaches QuickBooks, and for a lead the conversion happens only when you release it. It sends nothing to the customer. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| contact_id string required | string | Customer or lead ID. |
| date string required | string | YYYY-MM-DD. |
| expiration_date string | string | YYYY-MM-DD. |
| lines array required | array | Objects with item (a name from your Items), quantity and optional rate. |
| customer_message string | string | Shown to the customer. |
| wait_for_sync_approval boolean | boolean | Ticks "Wait for approval before syncing" so QuickBooks stays untouched until you untick it in Method. Default true. |
Request
curl -X POST https://cotlet.dev/api/v1/method-crm/contacts/contact_8c41d2/estimates \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"date","lines":"lines"}' result = client.call("method-crm", "create_estimate", {"contact_id":"contact_8c41d2","date":"date","lines":"lines"}) const result = await cotlet.call('method-crm', 'create_estimate', {"contact_id":"contact_8c41d2","date":"date","lines":"lines"}); cotlet call method-crm create_estimate --data '{"contact_id":"contact_8c41d2","date":"date","lines":"lines"}' Example response
{
"estimate_id": "2230",
"customer": "Ortega Kitchens",
"total": 1850,
"status": "Pending",
"sync": "held"
}