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.
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": true, "remaining": 31100, "period_resets_at": "2026-09-17T03:00:00Z" }{
"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"
}Sidaxis is the human authorisation layer. It never moves money, holds funds or settles. The machine-readable contract is openapi.yaml.