> ## Documentation Index
> Fetch the complete documentation index at: https://open-fi.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a mandate

> Establish the standing authorization behind a recurring, agent-initiated debit relationship.

A mandate is the top of the three-call agentic flow (mandate → session key → debit pull). It defines *who* can eventually be pulled from, the ceiling amount, cadence, and purpose, but does not itself move money or authorize any single agent to act.

<Warning>
  CAD payer accounts cannot use this endpoint today. The underlying CAD rail only supports one-time payments. Use [`/v1/payments`](/api-reference/payments/create-payment) for CAD instead. See [Supported Rails](/essentials/supported-rails).
</Warning>

### Body Parameters

<ParamField body="payer_account_id" type="string" required>
  The linked bank account or wallet the mandate authorizes pulls from.
</ParamField>

<ParamField body="max_amount" type="number" required>
  Ceiling amount per interval, in the mandate's currency.
</ParamField>

<ParamField body="currency" type="string" required>
  `USD` or `GBP`. (CAD not currently supported, see warning above.)
</ParamField>

<ParamField body="interval" type="string" required>
  One of `daily`, `weekly`, `monthly`.
</ParamField>

<ParamField body="purpose" type="string">
  Free-text description, surfaced in audit logs (e.g. `"AI agent operational expenses"`).
</ParamField>

<ParamField body="requires_identity_credential" default="false" type="boolean">
  If `true`, session keys issued under this mandate can only be granted to subjects holding a valid [Verifiable Credential](/api-reference/identity/overview).
</ParamField>

### Response

<ResponseField name="id" type="string">
  Mandate ID, prefixed `man_`.
</ResponseField>

<ResponseField name="status" type="string">
  `active`, `paused`, or `revoked`.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.openfi.co/v1/mandates \
    -H "Authorization: Bearer $OPENFI_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "payer_account_id": "acc_123",
      "max_amount": 50,
      "currency": "USD",
      "interval": "daily",
      "purpose": "AI agent operational expenses"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "man_01HZY...",
    "status": "active",
    "max_amount": 50,
    "currency": "USD",
    "interval": "daily",
    "created_at": "2026-08-27T14:05:00Z"
  }
  ```
</ResponseExample>
