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"
}