Skip to content

Quote.requested

Emitted each time a Quote is requested.

Quote.request emits Quote.requested when it completes on a Quote.

PropertyValue
Emitted byQuote.request
NounQuote
WakesNone.

Payload

Each delivery is an Event record. data holds what Quote.request returns.

FieldTypeRequiredDescription
namestringrequiredQuote.requested.
atdatetimerequiredWhen it happened.
seqintegerIts position in the namespace, one more than the Event before; any seq is a cursor into the history.
datajsonrequiredThe Thing as the Action left it.
data.dealDealrequiredThe Deal, waiting on a Quote.
data.quoteQuoterequiredThe Quote requested, in draft.
data.quote.totalmoneyrequiredThe quoted total.
data.quote.validUntildaterequiredThe last day it may be accepted.
data.quote.statusstringrequiredOne of draft, sent, accepted, declined, expired, or superseded; an expired or superseded Quote never converts.
data.quote.linesjsonrequiredOne line per Offer: quantity, list Price, discount percent, net amount, term, and start, one line per ramp year.
data.quote.concessionsstring[]Concessions granted, each from the Startup’s fixed concession list, such as a 60-day termination for convenience.
data.quote.paymentTermsjsonThe collection, terms and purchaseOrder every Invoice from the accepted Quote carries.

Example

JSON
{
  "$id": "https://api.sb/quietcopy.com/events/event_1",
  "$type": "Event",
  "name": "Quote.requested",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "deal": {
      "$id": "https://api.sb/quietcopy.com/deals/deal_1",
      "$type": "Deal",
      "status": "Open"
    },
    "quote": {
      "$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": {}
    }
  },
  "seq": 1
}