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/{workOrderId}/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
Allowed values:
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)

Allowed values:
descriptionstring or nullOptional
titlestringOptional

Quote title (defaults to “Quote”)

servicePlanInstanceIdintegerOptional
siteIdintegerOptional

Response

Quote created successfully
idinteger
Quote identifier
statusenum
Quote status
Allowed values:
amountdouble

Total quote amount (dollars)

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

Unique quote number (uid)

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

Subtotal in dollars (before tax)

taxRatedouble or null
Applied tax rate
isArchivedboolean
Whether the quote is archived
sharedWithPortalboolean
Whether the quote is shared with the client portal
accountobject or null
recordobject or null
lineItemslist of objects

Errors

400
Bad Request Error
401
Unauthorized Error