Open App

Estimates

Create and manage estimates (quotations).


List estimates

GET /v1/estimates

Query parameters

Parameter Type Description
pageSize integer Results per page (default 10, max 100)
pageIndex integer Zero-based page index (default 0)
search string Search by estimate number
est_status integer 0=Open 1=Invoiced 2=Cancelled
cstid integer Filter by contact
est_datetime_from date Filter estimates from date (YYYY-MM-DD)
est_datetime_to date Filter estimates to date (YYYY-MM-DD)
sortBy string Field to sort by
sortOrder string asc | desc

Example response

{
  "success": true,
  "data": {
    "data": [
      {
        "est_id": 3,
        "est_number": "EST-0003",
        "customer_id": 10,
        "est_status": 0,
        "total": 5250.00,
        "transaction_date": "2026-07-01",
        "expiry_date": "2026-08-01"
      }
    ],
    "current_page": 1,
    "total_records": 18,
    "total_pages": 2
  }
}

Get an estimate

GET /v1/estimates/{id}
Parameter Description
id The est_id

Returns the estimate with its full line items.


Create an estimate

POST /v1/estimates
Content-Type: application/json

Request body

Field Type Required Description
customer_id integer yes Contact cstid
template_id integer yes Document template ID
items array yes Line items (min 1)
items[].item_id integer yes Item ID
items[].item_name string yes Item name
items[].quantity number yes Quantity
items[].price number yes Unit price
items[].type string yes item | header
items[].description string no Line description
items[].discount number no Discount value
items[].discount_type integer no 1=fixed amount, 2=percentage
items[].tax_id string no Tax ID
items[].tax_rate number no Tax rate %
transaction_date date no Estimate date (YYYY-MM-DD)
expiry_date date no Expiry date (YYYY-MM-DD)
reference string no Reference / PO number (max 255)
notes string no Notes
terms_conditions string no Terms and conditions
deal_id integer no Link to a deal
org_currency_id integer no Currency ID
conversion_rate number no Currency conversion rate
overall_discount number no Discount applied to total
overall_discount_type integer no 1=fixed, 2=percentage
tag_ids integer[] no Array of tag IDs

Example request

{
  "customer_id": 10,
  "template_id": 1,
  "transaction_date": "2026-07-01",
  "expiry_date": "2026-08-01",
  "reference": "PO-2026-001",
  "items": [
    {
      "item_id": 12,
      "item_name": "Consulting Services",
      "quantity": 10,
      "price": 500.00,
      "type": "item",
      "tax_rate": 5
    }
  ]
}

Example response

{
  "success": true,
  "message": "Estimate EST-0003 has been created successfully",
  "data": {
    "est_id": 3,
    "est_number": "EST-0003"
  }
}

Update an estimate

PUT /v1/estimates/{id}
Content-Type: application/json

Same body structure as create. The id in the URL identifies the estimate.

Example response

{
  "success": true,
  "message": "Estimate EST-0003 has been updated successfully"
}

Delete an estimate

DELETE /v1/estimates/{id}
Parameter Description
id The est_id

Example response

{
  "success": true,
  "message": "Estimate deleted successfully"
}