---
title: For Agents
description: Connect an AI agent to POINTS over MCP, read operator policy, and get a human-approved signed authorization. Approve does not execute.
url: https://thepoints.io/docs/agents
audience: [agents, operators]
---

# For Agents

> **Agent Pay status:** Approve does not execute. Execution: not enabled. ACH settlement: not enabled. prepare_payment never moves money. Machine-readable: [/docs/agents/status.json](/docs/agents/status.json).

POINTS gives AI agents constrained payment authorization, not a wallet. An agent prepares a payment under the policy its operator sets, a human approves it, and POINTS records a signed authorization envelope the agent can check. Approve does not execute. Money doesn't move while execution is not enabled.

## Start here

| Page | What it covers |
|---|---|
| [Quickstart](/docs/agents/quickstart) | Connect over MCP, read policy, prepare a payment, and check its status |
| [Concepts](/docs/agents/concepts) | Authorization envelope, lifecycle, scoped approval, recurring mandates, cash buckets, payment patterns |
| [MCP & API reference](/docs/agents/reference) | Tools, scopes, statuses, policy vocabulary, and errors, generated from code as Markdown and JSON |
| [Discovery](/docs/agents/discovery) | How an agent finds POINTS: OAuth metadata, llms files, status.json, catalog.json |
| [Wallet status](/docs/agents/wallet-status) | `get_wallet_status` and the wallet states |
| [Hosts](/docs/agents/hosts) | The ChatGPT guide, and the hosts planned next |
| [FAQ](/docs/agents/faq) | Replay, price drift, self-approval, receipts, disputes |

## What works today

| Capability | Status |
|---|---|
| Points MCP server with OAuth, used from ChatGPT | Live |
| `prepare_payment`, policy evaluation, human approval, signed envelope with `executed: false` | Live (authorization only) |
| Envelope lifecycle: expiry, revocation, `revoked` status | Live |
| Policy vocabulary over MCP | Live |
| Spend envelope and approval ledger | Live (limited) |
| Scoped approval: principal, counterparty allow-list, per-payment caps, unattended off by default | Live (limited) |
| Aggregate caps across multiple payments | In progress |
| Recurring mandates: fresh human approval each cycle | Live (limited) |
| Crossmint wallet status (`get_wallet_status`) and disclosure | Live (limited) |

## Limits today

- A human approves the draft. The signed envelope and approval-ledger entry are recorded alongside that approval.
- Aggregate caps are in progress. Usage across multiple payments is not persisted yet.
- Mandate cycles can be drafted to a saved payee. Each mandate cycle needs a fresh human approval, valid until the cycle time plus a grace period. Claims before the cycle time are refused. Scheduled claims are not enabled, and a claim only records the claim.
- Other approvals expire 1 hour after approval by default.
- Wallet support covers wallet status and the disclosure flow only: no custody, balances or money movement.
- Money doesn't move while execution is not enabled.

## Tools

Tools advertised by `tools/list` on the Points MCP server. Each call needs its OAuth scope, and scopes are checked again on every call. Input schemas and annotations are in the [MCP tools reference](/docs/agents/reference/mcp-tools).

| Tool | Scope | What it does |
|---|---|---|
| `get_account_summary` | `balances:read` | Read-only sandbox balance and optional rewards summary |
| `list_transactions` | `transactions:read` | Read-only sandbox transaction history |
| `find_savings_opportunities` | `optimize:read` | Read-only, account-scoped savings suggestions |
| `prepare_payment` | `payments:draft` | Agent Pay entry point. Stages a payment draft that always needs human approval; never moves money |
| `get_payment_status` | `payments:status` | Read-only status of an authorized payment draft |
| `get_connection_identity` | `identity:read` | Redacted identity and provider mapping status for the connection |
| `get_account_status` | `module-status:read` | Account type and module activation status |
| `get_wallet_status` | `module-status:read` | Stored Crossmint staging wallet status; no balances |
| `get_agent_pay_policy_vocabulary` | `module-status:read` | Policy categories, matching rules, velocity caps, and policy schema version |

`create_payment_draft` is retired. Calls to it fail with an explicit message to use `prepare_payment`.

## Live contract

What the production MCP server guarantees today:

- OAuth 2.1 authorization code flow with PKCE (S256), exact redirect matching, public-client dynamic registration, short-lived access tokens, and refresh token rotation.
- Consent happens on POINTS. The account owner can revoke a connection, after which calls return HTTP 401.
- No tool accepts an account identifier. The account comes from the OAuth grant.
- Payment tools only prepare and inspect drafts. Approve does not execute. Execution: not enabled.
- Approved authorizations are signed envelopes with `executed: false`, an `executableUntil` expiry, and a `revoked` status when revoked.

The ChatGPT Developer Mode checklist is in the [ChatGPT guide](/docs/agents/hosts/chatgpt).

## Hosts

| Host | Status |
|---|---|
| [ChatGPT](/docs/agents/hosts/chatgpt) | Live |
| [Claude Desktop and Claude Code](/docs/agents/hosts/claude) | Planned |
| [Cursor](/docs/agents/hosts/cursor) | Planned |
| [OpenClaw-class runtimes](/docs/agents/hosts/openclaw) | Planned |

Planned hosts are next, in this order. POINTS does not publish dates.

## Other agent products

These agent banking products are not available today. Each is labelled Coming soon, and none has a reference or how-to page.

- Agent credit, unsecured credit, and credit score: Coming soon
- Agent debit: Coming soon
- Agent savings and treasury: Coming soon
- Agent wallet (balances and transfers): Coming soon. Crossmint wallet status is separate and listed above.
