Skip to content

Mandate.spent

Emitted each time a Mandate is spent.

Mandate.spend emits Mandate.spent when it completes on a Mandate.

PropertyValue
Emitted byMandate.spend
NounMandate
MovesCard active to closed when this Card is single-use and paid its Task
WakesApprove spend

Payload

Each delivery is an Event record. data holds what Mandate.spend returns.

FieldTypeRequiredDescription
namestringrequiredMandate.spent.
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.transactionTransactionrequiredThe card Transaction.
data.mandateMandaterequiredThe Mandate with its remaining Limit.
data.mandate.expiresAtdatetimerequiredWhen it lapses.
data.mandate.limitLimitThe Limit that bounds it.
data.mandate.verbstringThe Verb it covers, as Noun.verb.
data.mandate.topicsstring[]What it may act on; an Action outside them becomes an Approval.
data.mandate.channelslist of ChannelThe Channels it may send through.
data.mandate.statusstringrequiredOne of active, paused, revoked or expired.

Example

JSON
{
  "$id": "https://api.sb/tutorloop.com/events/event_1",
  "$type": "Event",
  "name": "Mandate.spent",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "transaction": {
      "$id": "https://api.sb/tutorloop.com/transactions/transaction_1",
      "$type": "Transaction",
      "kind": "charge",
      "amount": {
        "amount": 60,
        "currency": "USD"
      }
    },
    "mandate": {
      "$id": "https://api.sb/tutorloop.com/mandates/mandate_1",
      "$type": "Mandate",
      "expiresAt": "2026-10-22T12:00:00Z",
      "limit": "limit_1",
      "verb": "Example verb",
      "topics": [
        "Example topics"
      ],
      "channels": [
        "channel_1"
      ],
      "status": "active"
    }
  },
  "seq": 1
}