Create Quote

Create a new quote on an opportunity (project/deal/account record). - `opportunityId`: Required — record ID used by the payment service. - `sections` or `lineItems`: At least one item required - `discountType` / `discountValue`: Optional discount - `taxId`: Optional tax - `issueDate` / `status`: `issueDate` only allowed with `status` of `SENT` or `APPROVED` To add or replace line items on a **work order**, use `PUT /work-orders/{work_order_id}/line-items` instead.

Authentication

x-api-keystring
API Key authentication via header

Request

This endpoint expects an object.
opportunityIdintegerRequired>=1

Opportunity / project / account record ID

sectionslist of objectsOptional

Grouped line items. Required if lineItems is not provided.

lineItemslist of objectsOptional

Flat line items (grouped into one section automatically). Required if sections is not provided.

discountTypeenumOptional
Discount type
discountValuedoubleOptional>=0
Discount amount or percentage
taxIdintegerOptional
Tax configuration ID
issueDatestringOptionalformat: "date-time"

Issue date. Requires status to be SENT or APPROVED.

statusenumOptional

Initial status (defaults to DRAFT)

descriptionstring or nullOptional
titlestringOptional

Quote title (defaults to “Quote”)

servicePlanInstanceIdintegerOptional
siteIdintegerOptional

Response

Quote created successfully
idinteger
Quote identifier
statusenum
Quote status
amountdouble

Total quote amount (dollars)

createdAtstringformat: "date-time"
Creation timestamp
updatedAtstringformat: "date-time"
Last update timestamp
quoteNumberinteger or nullOptional

Unique quote number (uid)

descriptionstring or nullOptional
Quote description
discountTypeenum or nullOptional
Discount type
discountValuedouble or nullOptional
Discount amount or percentage value
taxIdinteger or nullOptional
Tax configuration ID
issueDatestring or nullOptionalformat: "date-time"
Issue date when the quote has been issued
subtotaldouble or nullOptional

Subtotal in dollars (before tax)

taxRatedouble or nullOptional
Applied tax rate
isArchivedbooleanOptional
Whether the quote is archived
sharedWithPortalbooleanOptional
Whether the quote is shared with the client portal
accountobject or nullOptional
recordobject or nullOptional
lineItemslist of objectsOptional

Errors

400
Bad Request Error
401
Unauthorized Error