Estimates

Create a new Estimate

Changed on

Beta: Breaking changes may occur without notice.

Creates a new Estimate for a client. When jobId is provided, the estimate is attached to that job or lead (which must belong to the client) and numbered after it; otherwise a standalone estimate is created for the client. The estimate starts with no line items and the account default tax, deposit and template settings.

post/v2/estimates

Request

Headers

Authorizationstring required
Example:Bearer <token>

Bearer Token

Request body

clientIdstring required

The ID of the client the estimate is created for (prefix CL-).

jobIdstring

The ID of the job or lead to attach the estimate to (prefix JOB- or LD-). It must belong to the given client. When omitted, a standalone estimate is created for the client.

namestring

The name of the estimate.

descriptionstring

The description of the estimate.

createdDatestring date-time

The date and time when the estimate record was created, in the account timezone. If not provided, defaults to the current timestamp.

Example request

{
  "clientId": "CL-OvmDp2yvv1yqMwRl",
  "jobId": "JOB-BA5r7o4bqzR9MONa",
  "name": "Estimate 1",
  "description": "This is a description for the estimate",
  "createdDate": "2026-01-01 10:00:00"
}

Response

The created Estimate.

idstring

The ID of the estimate (prefix ES-).

statusstring

The status of the estimate.

serialIdstring

The interval of the estimate.

namestring

The name of the estimate.

descriptionstring

The description of the estimate.

notesstring

The estimate note.

imageUrlstring

The image URL of the estimate.

clientIdstring

The ID of the associated client (prefix CL-).

jobIdstring

The ID of the associated job or lead (prefix JOB- or LD-).

discountAmountnumber

The estimate discount amount.

taxPercentnumber

The estimate tax percent.

taxableAmountnumber

The estimate taxable amount.

taxAmountnumber

The estimate tax amount.

isDepositPercentageboolean

The estimate deposit percentage or amount.

depositnumber

The deposit amount or percentage needed.

subTotalnumber

The estimate subtotal before tax and discounts.

totalnumber

The total amount of the estimate.

declineReasonstring

The decline reason of the estimate.

sentDatestring date-time

The sent date of the estimate.

estimateDatestring date-time

The date of the estimate.

lastViewedDatestring date-time

The last viewed date of the estimate.

statusUpdatedAtstring date-time

The date and time the status was last updated.

updatedstring date-time

The date and time the estimate was last updated.

createdstring date-time

The date and time the estimate was created.

Example response

{
  "id": "ES-LwqGJnRwvZPaNe5E",
  "status": "Pending",
  "serialId": "1-1",
  "name": "Estimate 1",
  "description": "This is a description for the estimate",
  "notes": "This is a note for the estimate",
  "imageUrl": "https://example.com/image.png",
  "clientId": "CL-LwqGJnRwvZPaNe5E",
  "jobId": "JOB-BA5r7o4bqzR9MONa",
  "discountAmount": 10,
  "taxPercent": 10,
  "taxableAmount": 100,
  "taxAmount": 10,
  "isDepositPercentage": true,
  "deposit": 100,
  "subTotal": 10,
  "total": 10,
  "declineReason": "This is a decline reason for the estimate",
  "lineItems": [
    {
      "id": "ELI-BA5r7o4bqzR9MONa",
      "productId": 1000,
      "name": "Deadbolt",
      "description": "Deadbolt replacement, any color and size",
      "price": 100,
      "quantity": 1,
      "total": 100,
      "cost": 100,
      "taxable": true,
      "discountable": true,
      "inventoryManaged": true,
      "inventorySync": true,
      "optionalConverted": true
    }
  ],
  "payments": [
    {
      "id": "PAY-BA5r7o4bqzR9MONa",
      "date": "2026-01-01 10:00:00",
      "amount": 250.5,
      "tipAmount": 10,
      "type": "charge",
      "status": "succeeded",
      "estimateId": "ES-LwqGJnRwvZPaNe5E",
      "confirmationCode": "ch_3QwErTyUiOp12345",
      "collectedById": "USR-38c1ee5c4efa38a4"
    }
  ],
  "attachments": [
    {
      "id": "FLE-BA5r7o4bqzR9MONa",
      "name": "file.pdf",
      "fileUrl": "https://example.com/file.pdf"
    }
  ],
  "signatureImage": {
    "id": "IMG-BA5r7o4bqzR9MONa",
    "signedByName": "John Doe",
    "imageUrl": "https://example.com/image.png"
  },
  "sentDate": "2026-01-01 00:00:00",
  "estimateDate": "2026-01-01 00:00:00",
  "lastViewedDate": "2026-01-01 00:00:00",
  "statusUpdatedAt": "2026-01-01 00:00:00",
  "updated": "2026-01-01 00:00:00",
  "created": "2026-01-01 00:00:00"
}

Changes