---
title: Statuses
description: Payment draft, approval, envelope, mandate, and wallet status values with their meaning. Generated from code.
url: https://thepoints.io/docs/agents/reference/statuses
audience: [agents, operators, developers]
---

# Statuses

> **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).

Generated from code. Machine-readable: [/docs/agents/reference/statuses.json](/docs/agents/reference/statuses.json).

## Payment draft status

Applies to: get_payment_status.status.

Read-time expiry applies: a pending draft past its approval window, or an approved draft past executableUntil, reads as expired.

| Value | Meaning |
|---|---|
| `draft` | Created and not yet submitted for approval. |
| `requires_approval` | Prepared by prepare_payment and waiting for a human decision. |
| `approved` | A human approved it and a signed authorization envelope exists. Nothing has executed. |
| `rejected` | A human rejected it. |
| `expired` | The approval window or the signed executableUntil passed. A new prepare and approval are needed. |
| `revoked` | An approved authorization was revoked before use. Its signature is cleared. |
| `pending_operator_approval` | Waiting for the operator to approve or reject. |
| `awaiting_approval` | Waiting for approval. |
| `recipient_information_required` | The draft needs payee details before approval. |
| `execution_pending` | Reserved for execution, which is not enabled. |
| `completed` | Reserved for confirmed provider success, which cannot happen while execution is not enabled. |
| `failed` | Reserved for a failed execution attempt. |

## Statuses governed by the approval window

Applies to: Payment drafts (expiresAt).

| Value | Meaning |
|---|---|
| `draft` | Expires when expiresAt passes. |
| `requires_approval` | Expires when expiresAt passes. |
| `pending_operator_approval` | Expires when expiresAt passes. |
| `awaiting_approval` | Expires when expiresAt passes. |
| `recipient_information_required` | Expires when expiresAt passes. |

## Statuses governed by executableUntil

Applies to: Approved payment drafts and their envelopes.

| Value | Meaning |
|---|---|
| `approved` | Reads as expired once the server clock reaches executableUntil (zero skew). |
| `execution_pending` | Reads as expired once the server clock reaches executableUntil. |

## prepare_payment policy result

Applies to: prepare_payment.policy_result.

| Value | Meaning |
|---|---|
| `allowed_with_approval` | Policy allows the payment to be proposed. A human still has to approve it. |
| `blocked` | Policy blocks the payment. No approvable draft is created. |

## Approval queue: pending

Applies to: The operator approvals queue.

| Value | Meaning |
|---|---|
| `draft` | Shown as pending. |
| `requires_approval` | Shown as pending. |
| `pending_operator_approval` | Shown as pending. |
| `awaiting_approval` | Shown as pending. |

## Approval queue: history

Applies to: The operator approvals queue.

| Value | Meaning |
|---|---|
| `approved` | Approved. Approve does not execute. |
| `rejected` | Rejected by a human. |
| `expired` | The window passed before use. |
| `revoked` | Revoked after approval, before use. |

## Spend envelope status

Applies to: The spend envelope minted at approval.

| Value | Meaning |
|---|---|
| `approved` | Minted at human approval with the signed fields and scope. |
| `revoked` | Revoked. The signature is cleared and it can no longer be used. |
| `expired` | Past executableUntil. |
| `denied` | The approval was refused. |

## Approval ledger decision

Applies to: Approval ledger entries for spend envelopes.

| Value | Meaning |
|---|---|
| `approved` | A human approved the draft; this ledger entry records the signed envelope alongside it. |
| `revoked` | The authorization was revoked by the owner or an admin. |
| `expired` | The envelope expired. |
| `denied` | The approval was refused. |

## Recurring mandate status

Applies to: Recurring mandates.

| Value | Meaning |
|---|---|
| `active` | Cycles can be prepared. Each cycle still needs a fresh human approval. |
| `paused` | No cycles are prepared or claimed. |
| `cancelled` | Cancelled by the owner. No further cycles. |
| `completed` | No further cycles. |

## Mandate cycle status

Applies to: Each cycle of a recurring mandate.

| Value | Meaning |
|---|---|
| `pending_approval` | Opened for this cycle and waiting for a fresh human approval. |
| `approved` | A fresh signed approval is attached. Claims before the cycle time are refused. |
| `claimed` | The claim was recorded. A claim never moves money. |
| `completed` | Reserved for execution, which is not enabled. |
| `refused` | Refused, for example after an execution attempt was recorded. The slot is used up. |
| `expired` | The cycle approval lapsed. The slot can be prepared again. |
| `skipped` | Skipped by the owner, or marked missed when a cycle is not approved and claimed by the cycle time plus grace. |

## Wallet connection status

Applies to: get_wallet_status.connectionStatus.

| Value | Meaning |
|---|---|
| `not_connected` | No wallet is connected for this AI Agent. |
| `pending` | Wallet setup has started and is not verified yet. |
| `connected` | A staging wallet is connected and verified. |
| `unavailable` | Status cannot be read right now. See unavailableReason. |
| `error` | The last status check failed. See unavailableReason. |

## Wallet verification status

Applies to: get_wallet_status.verificationStatus.

| Value | Meaning |
|---|---|
| `not_verified` | Not verified. |
| `pending` | Verification in progress. |
| `verified` | Verified. |
| `failed` | Verification failed. |

## Account module status

Applies to: get_account_status.modules[].status (including the wallet module).

| Value | Meaning |
|---|---|
| `active` | The module is active. |
| `activating` | Activation is in progress. |
| `ready_to_connect` | Ready to connect. |
| `application_required` | An application is needed first. |
| `application_started` | An application was started. |
| `submitted` | The application was submitted. |
| `in_review` | Under review. |
| `action_required` | The account owner needs to act in POINTS, for example to re-authorize the wallet. |
| `not_approved` | Not approved. |
| `coming_soon` | Not available today. No date is published. |
| `temporarily_unavailable` | Temporarily unavailable. |

## Payment pattern

Applies to: prepare_payment.paymentPattern.

Requires execution (not enabled). Values exist in code only.

| Value | Meaning |
|---|---|
| `standard` | A single payment draft. |
| `sell_side_job` | Escrow-before-work pattern. |
| `micropayment` | Fee-before-send, charge-on-2xx pattern. |

## Escrow state

Applies to: Escrow-before-work drafts.

Requires execution (not enabled). Values exist in code only.

| Value | Meaning |
|---|---|
| `none` | No escrow hold. |
| `held` | Amount counted as escrowed. |
| `releasable` | Work accepted; the hold could be released. |
| `refundable` | The hold could be refunded. |
| `released` | Terminal: released. |
| `refunded` | Terminal: refunded. |

## Graduated autonomy level

Applies to: Agent Pay policy.

Requires execution (not enabled). Levels are computed and recorded for policy review. They never approve a payment. Every payment still needs human approval, and a level never overrides a policy deny, a block list, or a velocity cap.

| Value | Meaning |
|---|---|
| `L0` | Lowest level: no history, a policy or list miss, or a velocity cap hit. |
| `L1` | Known or allow-listed merchant with thin history, small amounts. |
| `L2` | Good history and moderate frequency, larger amounts. |
| `L3` | Highest level: strong history and an allow-listed merchant. |

## Settlement terminal status

Applies to: Execution and settlement.

Requires execution (not enabled). Values exist in code only.

| Value | Meaning |
|---|---|
| `completed` | Reserved for confirmed provider success. |
| `failed` | Reserved for a failed execution attempt. |
