# Approval.refused

URL: /business/events/Approval.refused · Id: `event:Approval.refused`

> Emitted each time an Approval is refused.

[Approval.refuse](/business/nouns/approval/refuse) emits `Approval.refused` when it completes on an [Approval](/business/nouns/approval).

| Property | Value |
| --- | --- |
| Emitted by | [Approval.refuse](/business/nouns/approval/refuse) |
| Noun | [Approval](/business/nouns/approval) |
| Moves | [Action](/business/nouns/action) `pending` to `refused` when the Approval holds this Action; [Approval](/business/nouns/approval) `pending` to `refused` |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds what [Approval.refuse](/business/nouns/approval/refuse) returns, and `previous` holds the state it left.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `Approval.refused`. |
| `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.approval` | [Approval](/business/nouns/approval) | Yes | The refused Approval. |
| `data.approval.status` | `string` | Yes | One of `pending`, `done`, `failed`, `canceled`, or `refused`. |
| `data.approval.reason` | `string` | No | Why a pending Action waits: `queued`, `running`, `retrying`, `awaitingWorker`, `awaitingInput`, `awaitingSource`, `awaitingAction`, or `awaitingTime`. |
| `data.approval.mode` | `string` | Yes | How the caller invoked it: `try`, `send`, or `do`. |
| `data.approval.by` | [Worker](/business/nouns/worker) | No | The Worker that performed it. |
| `data.approval.for` | [Party](/business/nouns/party) | No | The Party it was done on behalf of. |
| `data.approval.via` | `string` | No | The Interface or request it arrived through. |
| `data.approval.on` | `string` | No | The Action or Event that caused it, such as the failed attempt a retry follows. |
| `data.approval.thing` | `string` | No | The record, at the Version the Action was decided against. |
| `data.approval.input` | `json` | No | The input it was called with. |
| `data.approval.createdAt` | `datetime` | No | When it was called. |
| `data.approval.reserved` | `money` | No | The most this Action may cost, held against its Limits from the check until it settles, billed misses included. |
| `data.approval.due` | `datetime` | No | When the Task is due. |
| `data.approval.priority` | `integer` | No | Its rank in the inbox, highest first. |
| `data.approval.recurrence` | `string` | No | The schedule a recurring duty repeats on. |
| `data.approval.verdict` | `string` | No | One of `allowed` or `refused`. |
| `data.approval.deadline` | `datetime` | No | When an unanswered Approval cancels the Action. |
| `data.previous.status` | `string` | Yes | The `status` before this Event: `pending`. |

### Example
```json
{
  "$id": "https://api.sb/shiftnote.app/events/event_1",
  "$type": "Event",
  "name": "Approval.refused",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "approval": {
      "$id": "https://api.sb/shiftnote.app/approvals/approval_1",
      "$type": "Approval",
      "status": "refused",
      "reason": "queued",
      "mode": "try",
      "by": "worker_1",
      "for": "party_1",
      "via": "API",
      "on": "Invoice.overdue",
      "thing": "invoice_1@v3",
      "input": {},
      "createdAt": "2026-10-22T12:00:00Z",
      "reserved": {
        "amount": 79,
        "currency": "USD"
      },
      "due": "2026-10-22T12:00:00Z",
      "priority": 1,
      "recurrence": "Weekly on Friday",
      "verdict": "allowed",
      "deadline": "2026-10-22T12:00:00Z"
    },
    "previous": {
      "status": "pending"
    }
  },
  "seq": 1
}
```