---
title: "Mandate Authorization Gate"
method: POST
path: "/v1/tools/authorize_payment_against_mandate"
tags: ["payment_mandate", "authorization-gate", "mandate-coverage", "one-use-authorization", "commit-verification", "rail-nonce", "integer-minor-units", "agent-payments", "mcp:authorize_payment_against_mandate"]
---

# Mandate Authorization Gate

`POST /v1/tools/authorize_payment_against_mandate`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/authorize_payment_against_mandate`
- Auth: none declared

Automated payment approval gate with no human step: a fixed ten-rule mandate check lists every failing rule with a named reason, issues a one-use authorization bound to the exact request digest with a window clipped to the mandate expiry, and re-verifies the committed request at commit time. Integer minor units, no float anywhere.

**Tool URL:** https://ainumbers.co/chaingraph/art-703-mandate-authorization-gate.html
**AP2/Policy Mandate export:** yes

## Request body

- object
  - `mode` string, required: authorize evaluates the mandate and request; verify_commit re-verifies a presented authorization.
  - `as_of` string, required: Decision time as a UTC timestamp, YYYY-MM-DDTHH:MM:SS ending in Z. The node reads no clock.
  - `ttl_seconds` integer: authorize only: window seconds, clipped into 1 to 900 and to the mandate expiry.
  - `mandate` object: authorize only: the mandate drawn on; commonly the canonical pivot from art-476.
  - `extensions` object: authorize only, optional: revoked_at, budget minor integers, allowed_rails, verified_payees.
  - `request` object: authorize: the proposed payment. verify_commit: the request being committed, as presented.
  - `authorization` object: verify_commit only: the authorization this node issued, presented back for commit.

## Response `200`

Successful tool execution result

- object
  - `authorization` object, nullable
  - `authorization_id` string
  - `decision` 'authorize' | 'commit_ok' | 'reject', required
  - `domain_errors` object[], required
    - `code` string, required
    - `text` string, required
  - `mode` 'authorize' | 'verify_commit', required
  - `primary_reason` string, nullable
  - `reasons` object[], required
    - `code` string, required
    - `text` string, required
  - `remaining_budget_minor` number, nullable
  - `scope_note` string

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
