> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reinx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Approvals

> Review and resolve pending agent payments

When an agent payment exceeds its approval threshold (or a policy rule flags it), it waits in the approvals queue for a human decision. See [Approvals](/concepts/approvals) for the concept overview.

## List pending approvals

```bash theme={null}
GET /v1/approvals/pending
```

Returns payments awaiting a decision. Each item includes the agent, amount, recipient, the agent's stated `purpose`, budget context, which rules flagged it (`flaggedByRuleTypes`), and `expiresAt` — the end of the human decision window.

## List completed approvals

```bash theme={null}
GET /v1/approvals/completed
```

Returns resolved requests with their `resolution`:

| Resolution  | Meaning                                 |
| ----------- | --------------------------------------- |
| `approved`  | Approved and settled                    |
| `executing` | Approved — transfer currently in flight |
| `denied`    | Denied by a human                       |
| `failed`    | Approved but execution failed           |
| `expired`   | No decision within the window           |

## Approve

```bash theme={null}
POST /v1/approvals/:id/approve
```

No body. For wallet payments, Reinx executes the transfer immediately on approval.

## Deny

```bash theme={null}
POST /v1/approvals/:id/deny
```

```json theme={null}
{ "feedback": "Duplicate subscription — we already pay for this on the design agent." }
```

`feedback` is **required** (1–1,000 characters) — it's delivered to the agent via the `get_denial_feedback` MCP tool so it can adjust before retrying.

<Note>
  Approving and denying are deliberately quick actions — no step-up re-verification — because each
  one releases a single, already-policy-validated payment with a fixed amount and recipient.
</Note>
