Quotes API
The Quote object
A quote is a priced list of line items for a buyer, optionally tied to a deal, a contact and a company. It starts as DRAFT, and its status records what happened to it: SENT once it has gone to the buyer, ACCEPTED or DECLINED when they answer.
| Field | Type | Notes |
|---|---|---|
id | string | CUID (read-only) |
number | integer | Per-workspace quote number, shown to people as #12 |
title | string | What the quote is for |
status | string | One of DRAFT, SENT, ACCEPTED, DECLINED |
total | number | Sum of quantity * unitPrice over every line (read-only) |
validUntil | string (ISO 8601) | null | When the offer expires |
notes | string | null | Terms or notes shown on the quote |
deal | object | null | { id, name } |
contact | object | null | { id, name }. Defaults from the deal when you create a quote on a deal |
company | object | null | { id, name }. Defaults from the deal the same way |
lineItems | array | The lines, in order. See below |
createdAt | string (ISO 8601) | Read-only |
updatedAt | string (ISO 8601) | Read-only |
Line item
| Field | Type | Notes |
|---|---|---|
id | string | CUID |
name | string | The line as it reads on the quote |
offering | object | null | The catalog product this line prices, { id, name }, or null for a custom line |
quantity | number | Two decimal places |
unitPrice | number | Two decimal places |
total | number | quantity * unitPrice |
Money is stored with two decimal places and returned as plain JSON numbers.
Scopes
| Scope | Grants |
|---|---|
read:quotes | GET /api/v1/quotes, GET /api/v1/quotes/{id} |
write:quotes | POST /api/v1/quotes, POST /api/v1/quotes/{id}/status |
To attach a PDF or other file to a quote, use the Files API with entity: "QUOTE".