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

# POST /policy/check

> Check whether a token permits a named action.

Checks whether a verify token authorises a specific named action. Use this before any privileged operation (payment, DB write, step-up auth).

## Request

`POST /v1/policy/check`

**Content-Type:** `application/json`

| Field | Type | Required | Notes |
| - | - | - | - |
| `token` | string | Yes | Full JWT from `/v1/verify` |
| `action` | string | Yes | Namespaced action identifier |

## Response

```json theme={null}
{ "permitted": true, "reason": null }
```

```json theme={null}
{ "permitted": false, "reason": "Token expired" }
```

## Action naming

Use dot-namespaced strings to identify actions:

```
payment.authorise
account.update
document.sign
admin.access
```

## Example

```typescript theme={null}
const result = await vm.policy(verify.token, "payment.authorise");
if (!result.permitted) {
  return res.status(403).json({ error: result.reason });
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.