Skip to content

Mandate.expired

A Mandate reached its expiresAt, so the Agent asks again before each Action it covered.

PropertyValue
Raised byNo Verb: a clock raises it
NounMandate
MovesMandate active to expired when the Mandate reaches its expiresAt; Mandate paused to expired when the Mandate reaches its expiresAt
WakesNone.

Payload

Each delivery is an Event record. data holds the Mandate as it stands, and previous holds the state it left.

FieldTypeRequiredDescription
namestringrequiredMandate.expired.
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.mandateMandaterequiredThe Mandate as the change left it.
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.
data.previous.statusstringrequiredThe status before this Event: active.

Example

JSON
{
  "$id": "https://api.sb/leaseline.app/events/evt_pdCTmGu8mU",
  "$type": "Event",
  "name": "Mandate.expired",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "mandate": {
      "$id": "https://api.sb/leaseline.app/mandates/mandate_mKKPrmFQYD",
      "$type": "Mandate",
      "expiresAt": "2026-10-22T12:00:00Z",
      "limit": "limit_UWHXYVKsJB",
      "verb": "Example verb",
      "topics": [
        "Example topics"
      ],
      "channels": [
        "channel_EQ8se34AOW"
      ],
      "status": "expired"
    },
    "previous": {
      "status": "active"
    }
  },
  "seq": 500
}