Quote
A Quote is a priced proposal of one or more Offers to one buyer, valid until a date, accepted into an Order.
A Quote is a priced proposal of one or more Offers to one buyer, valid until a date. Once accepted, its one-time lines become an Order and its recurring lines a Subscription.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
total | money | required | The quoted total. |
validUntil | date | required | The last day it may be accepted. |
status | string | required | One of draft, sent, accepted, declined, expired, or superseded; an expired or superseded Quote never converts. |
lines | json | required | One line per Offer: quantity, list Price, discount percent, net amount, term, and start, one line per ramp year. |
concessions | string[] | Concessions granted, each from the Startup’s fixed concession list, such as a 60-day termination for convenience. | |
paymentTerms | json | The collection, terms and purchaseOrder every Invoice from the accepted Quote carries. |
Object
{
"$id": "https: //api.sb/ quietcopy.com/ quotes/ quote_1",
"$type": "Quote",
"total": {
"amount": 39,
"currency": "USD"
},
"validUntil": "2026-10-22",
"status": "draft",
"lines": {},
"concessions": [
"60-day termination for convenience"
],
"paymentTerms": {}
}Relationships
- A Quote is accepted as one Order: the Order the Quote becomes when the buyer accepts it before it expires.
acceptedAs, inversequote. - A Quote is issued in one Deal: a Deal sends Quotes, each a priced proposal valid until a date.
issuedIn, inverseissues. - A Quote proposes many Offers: a Quote prices one or more Offers for one buyer.
proposes, inversequotedIn. - A Quote starts subscription one Subscription: the Subscription for a Quote’s recurring lines, started when the Customer accepts it.
startsSubscription, inversequote.
Lifecycle
| State | Meaning | Moves to |
|---|---|---|
draft (first) | Its lines and terms can still change, and the buyer has not seen it. | sent by Quote.send |
sent | Presented to the buyer with its lines, total and payment terms frozen. | accepted by Quote.accept; declined by Quote.decline; expired by Quote.expire; superseded by Quote.supersede |
accepted | Its one-time lines became an Order and its recurring lines a Subscription. | None: it ends here. |
declined | The buyer refused it, with the reason in their words. | None: it ends here. |
expired | It reached its validUntil date unaccepted and never converts. | None: it ends here. |
superseded | A newer Quote on the same Deal replaced it; only the newest can be accepted. | None: it ends here. |
Verbs
createCreates a Quote.POST /{namespace}/quotesgetReturns one Quote by id.GET /{namespace}/quotes/{id}listReturns Quotes, newest first, one page at a time.GET /{namespace}/quotesupdateChanges the given properties of a Quote.PATCH /{namespace}/quotes/{id}deleteDeletes a Quote; its history is kept.DELETE /{namespace}/quotes/{id}acceptAccept takes a sent Quote before it expires, turning one-time lines into an Order and recurring lines into a Subscription.POST /{namespace}/quotes/{quote}/acceptdeclineDecline records the buyer’s refusal of a sent Quote, with the reason in their words.POST /{namespace}/quotes/{quote}/declineexpireExpire closes a sent Quote that reached its validUntil date unaccepted; it never converts afterward.POST /{namespace}/quotes/{quote}/expirerequestRequest asks a Startup for terms on one or more Offers, with the volume, term or scope wanted.POST /{namespace}/quotes/requestsendSend presents a drafted Quote to its buyer and freezes its lines, total and payment terms.POST /{namespace}/quotes/{quote}/sendsupersedeSupersede replaces a sent Quote with a newer one on the same Deal; only the newest Quote can be accepted.POST /{namespace}/quotes/{quote}/supersede
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Quote.create | Yes | Yes | Yes | No |
Quote.get | Yes | Yes | Yes | Yes |
Quote.list | Yes | Yes | Yes | Yes |
Quote.update | Yes | Yes | Yes | No |
Quote.delete | Yes | Yes | Yes | No |
Quote.accept | Yes | No | No | No |
Quote.decline | Yes | Yes | Yes | No |
Quote.expire | Yes | Yes | Yes | No |
Quote.request | Yes | Yes | Yes | No |
Quote.send | Yes | No | No | No |
Quote.supersede | Yes | Yes | Yes | No |
Call it
Accept the latest quote with a party.Example
A Quote offers a county planning firm the $900-a-month permit-records Offer at 10% off for a year, plus a $3,000 backfill. It is valid for 14 days. The firm accepts: the backfill becomes an Order, and the records Offer becomes a Subscription that keeps the 10% for the term.