Skip to content

Quote.declined

Emitted each time a Quote is declined.

Quote.decline emits Quote.declined when it completes on a Quote.

PropertyValue
Emitted byQuote.decline
NounQuote
MovesQuote sent to declined
WakesNone.

Payload

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

FieldTypeRequiredDescription
namestringrequiredQuote.declined.
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 declined 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: sent.

Example

JSON
{
  "$id": "https://api.sb/quietcopy.com/events/event_1",
  "$type": "Event",
  "name": "Quote.declined",
  "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": "declined",
      "lines": {},
      "concessions": [
        "60-day termination for convenience"
      ],
      "paymentTerms": {}
    },
    "previous": {
      "status": "sent"
    }
  },
  "seq": 1
}