# An Operation's Approval

> Coming soon, upon request — this feature is turned on for your tenant by the Aurea team. [Contact us](https://www.aureahub.com/contact)

For the operations a policy held: the approval request, its decisions, and — once approved and gone on — the answer the call would have given.

## Overview

- The initiator's view of an operation a money route held for approval (it answered `202`; [Approvals](https://docs.aureahub.com/docs/guide-approvals.md), institutional tenants only): the operation's newest request with the fields of [Get a Request](https://docs.aureahub.com/docs/approval-get.md), and its `decisions` — without the payloads to sign.
- `result`: `null` until the approved operation went on; then `{ "status", "body" }`, the answer the call would have given — for a client-side or MPC wallet, the prepared transaction to sign and broadcast before its `expiresAt` (`txHashToSign` or `permitHashToSign`, `preparedTxId`); for a custodial wallet, the transaction sent; or the error the call would have answered.
- The same readers as [Get an Operation](https://docs.aureahub.com/docs/operation-get.md): a user reads their own operations; the tenant roles that read the tenant's transactions read every operation of the tenant.
- `404` `APPROVAL_NOT_FOUND` (`No approval request for this operation here`) for an operation that was never held, that you may not read, or that doesn't exist.

## Endpoint

### `GET /v1/operations/{id}/approval`

Authentication: bearer token required.

An operation's approval request, and the answer it went on with.

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | yes | The operation's id |

**Responses**

`200` Approved, prepared

```json
{
  "id": "c3e1a9f4-6b2d-4e8a-9f17-5d0c2b8e4a63",
  "operationId": "1d7a3c52-8e4b-4f19-a0c6-2b9e7d5f3a18",
  "status": "approved",
  "origin": "transactions.create",
  "initiatorId": "5d2c1b0a-9e8f-4a7b-8c6d-5e4f3a2b1c0d",
  "ruleId": "e2b6d9f1-7a3c-4c58-8b0e-5f1a4d2c9b73",
  "ruleName": "Large transfers need two approvers",
  "policySetVersion": 2,
  "threshold": 2,
  "approvals": 2,
  "rejections": 0,
  "approverIds": null,
  "excludeInitiator": true,
  "chain": "gnosis",
  "chainId": 100,
  "asset": "0x2a22f9c3b484c3629090feed35f17ff8f88f76f0",
  "amount": "35000000000",
  "amountRef": "32150.75",
  "destination": "0x52908400098527886e0f7030069857d2e4169ee7",
  "expiresAt": null,
  "createdAt": "2026-10-06T12:01:44.120Z",
  "decidedAt": "2026-10-06T12:24:51.302Z",
  "decisions": [
    { "approverId": "6a1c9e3f-2b7d-4f50-8e4a-0c5d3b9f7e12", "decision": "approve", "at": "2026-10-06T12:20:03.511Z" },
    { "approverId": "0d2f6b8a-4c1e-4a93-b7d5-2e9f1c3a8b60", "decision": "approve", "at": "2026-10-06T12:24:51.302Z" }
  ],
  "result": {
    "status": 201,
    "body": {
      "id": "0b9d4c1e-3f6a-4b8e-9d2c-7a5e1f3b6c90",
      "txHash": null,
      "status": "pending",
      "…": "the other fields of Create Transaction's answer",
      "requiresClientSigning": true,
      "gasless": false,
      "preparedTxId": "5e0f7b8a-1c2d-4e3f-8a9b-0c1d2e3f4a5b",
      "txHashToSign": "0x4a7d…",
      "chainId": 100,
      "expiresAt": "2026-10-06T12:29:52.004Z"
    }
  }
}
```

`404` Never held

```json
{
  "statusCode": 404,
  "error": "NotFoundError",
  "message": "No approval request for this operation here",
  "details": { "code": "APPROVAL_NOT_FOUND" }
}
```

---

Web version: https://docs.aureahub.com/#operation-approval
