# Mandate.expired

URL: /business/events/Mandate.expired · Id: `event:Mandate.expired`

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

A [Mandate](/business/nouns/mandate) reached its `expiresAt`, so the [Agent](/business/nouns/agent) asks again before each [Action](/business/nouns/action) it covered.

| Property | Value |
| --- | --- |
| Raised by | No Verb: a clock raises it |
| Noun | [Mandate](/business/nouns/mandate) |
| Moves | [Mandate](/business/nouns/mandate) `active` to `expired` when the Mandate reaches its `expiresAt`; [Mandate](/business/nouns/mandate) `paused` to `expired` when the Mandate reaches its `expiresAt` |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds the Mandate as it stands, and `previous` holds the state it left.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `Mandate.expired`. |
| `at` | `datetime` | Yes | When it happened. |
| `seq` | `integer` | No | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. |
| `data` | `json` | Yes | The Thing as the Action left it. |
| `data.mandate` | [Mandate](/business/nouns/mandate) | Yes | The Mandate as the change left it. |
| `data.mandate.expiresAt` | `datetime` | Yes | When it lapses. |
| `data.mandate.limit` | [Limit](/business/nouns/limit) | No | The Limit that bounds it. |
| `data.mandate.verb` | `string` | No | The Verb it covers, as `Noun.verb`. |
| `data.mandate.topics` | `string[]` | No | What it may act on; an Action outside them becomes an Approval. |
| `data.mandate.channels` | list of [Channel](/business/nouns/channel) | No | The Channels it may send through. |
| `data.mandate.status` | `string` | Yes | One of `active`, `paused`, `revoked` or `expired`. |
| `data.previous.status` | `string` | Yes | The `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
}
```