Skip to content

Quote.sent

Emitted each time a Quote is sent.

Quote.send emits Quote.sent when it completes on a Quote.

PropertyValue
Emitted byQuote.send
NounQuote
MovesQuote draft to sent
WakesNone.

Payload

Each delivery is an Event record. data holds what Quote.send returns, and previous holds the state it left.

FieldTypeRequiredDescription
namestringrequiredQuote.sent.
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.quoteQuoterequiredThe sent Quote.
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.
data.previous.statusstringrequiredThe status before this Event: draft.

Example

JSON
{
  "$id": "https://api.sb/quietcopy.com/events/event_1",
  "$type": "Event",
  "name": "Quote.sent",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "quote": {
      "$id": "https://api.sb/quietcopy.com/quotes/quote_1",
      "$type": "Quote",
      "total": {
        "amount": 39,
        "currency": "USD"
      },
      "validUntil": "2026-10-22",
      "status": "sent",
      "lines": {},
      "concessions": [
        "60-day termination for convenience"
      ],
      "paymentTerms": {}
    },
    "previous": {
      "status": "draft"
    }
  },
  "seq": 1
}