# Check an action

`POST /functions/v1/mandate-check`

Advisory only. No lock, nothing reserved, nothing debited, and under concurrency it can return a false positive. Never treat an allowed check as authorisation to act.

> Check is **advisory**. No `Idempotency-Key`. No lock. Nothing reserved, nothing debited. It can return a false positive under concurrency — and that is accepted and documented, because a reservation would need expiry, release and an orphan collector: three mechanisms for a problem the idempotency key on [consume](/mandates/consume) already solves.

Never treat an allowed check as authorisation to act. If you are going to act, call consume. Check exists for planning, and for showing a person what would happen.

## Body

| Field | Type | Notes |
| --- | --- | --- |
| mandate_id | uuid, required |  |
| scope | string, required | One of the eight, matched exactly |
| amount | integer | Minor unit; only purchase and payment |
| currency | string | ISO-4217 |
| action_ref | string | Your own reference for the planned action |
| context | object | merchant, category, country — matched against the constraints |

Requires `x-sidaxis-timestamp` and `x-sidaxis-nonce`. Rate limited.

```
curl -X POST https://api.sidaxis.com/functions/v1/mandate-check \
  -H "x-sidaxis-api-key: sk_live_..." \
  -H "x-sidaxis-timestamp: 1789564880" \
  -H "x-sidaxis-nonce: c3a1f89b20" \
  -H "content-type: application/json" \
  -d '{
    "mandate_id": "mdt_a91f3c",
    "scope": "payment",
    "amount": 18900,
    "currency": "USD",
    "context": { "merchant": "mrc_9f2c", "category": "travel", "country": "US" }
  }'
```

## Response — always 200

Allowed:

```
{ "allowed": true, "remaining": 31100, "period_resets_at": "2026-09-17T03:00:00Z" }
```

Refused:

```
{
  "allowed": false,
  "reason": "scope_mismatch",
  "developer_message": "Mandate mdt_a91f3c carries [payment]; requested purchase.",
  "user_message": "Your assistant is not allowed to do this.",
  "step_up_available": true,
  "remaining": 31100,
  "period_resets_at": "2026-09-17T03:00:00Z"
}
```

- Consume a mandate: https://docs.sidaxis.com/mandates/consume
- Refusal reasons: https://docs.sidaxis.com/errors
