{"schemaVersion":1,"topic":"statuses","title":"Statuses","generatedFrom":["src/lib/contracts/points-mcp-oauth.ts","src/lib/contracts/crossmint-wallet-projection.ts","src/lib/business/points-mcp/executable-until-expiry.ts","src/lib/business/points-mcp/payment-approval.ts","src/lib/business/points-mcp/spend-envelope.ts","src/lib/business/points-mcp/payment-mandate.ts","src/lib/business/points-mcp/escrow-hold.ts","src/lib/business/points-mcp/graduated-autonomy.ts","src/lib/business/points-mcp/atomic-reserve-settle.ts"],"page":"/docs/agents/reference/statuses","agentPayStatus":"/docs/agents/status.json","groups":[{"id":"payment_draft","title":"Payment draft status","appliesTo":"get_payment_status.status","note":"Read-time expiry applies: a pending draft past its approval window, or an approved draft past executableUntil, reads as expired.","values":[{"value":"draft","description":"Created and not yet submitted for approval."},{"value":"requires_approval","description":"Prepared by prepare_payment and waiting for a human decision."},{"value":"approved","description":"A human approved it and a signed authorization envelope exists. Nothing has executed."},{"value":"rejected","description":"A human rejected it."},{"value":"expired","description":"The approval window or the signed executableUntil passed. A new prepare and approval are needed."},{"value":"revoked","description":"An approved authorization was revoked before use. Its signature is cleared."},{"value":"pending_operator_approval","description":"Waiting for the operator to approve or reject."},{"value":"awaiting_approval","description":"Waiting for approval."},{"value":"recipient_information_required","description":"The draft needs payee details before approval."},{"value":"execution_pending","description":"Reserved for execution, which is not enabled."},{"value":"completed","description":"Reserved for confirmed provider success, which cannot happen while execution is not enabled."},{"value":"failed","description":"Reserved for a failed execution attempt."}]},{"id":"pending_expiry","title":"Statuses governed by the approval window","appliesTo":"Payment drafts (expiresAt)","values":[{"value":"draft","description":"Expires when expiresAt passes."},{"value":"requires_approval","description":"Expires when expiresAt passes."},{"value":"pending_operator_approval","description":"Expires when expiresAt passes."},{"value":"awaiting_approval","description":"Expires when expiresAt passes."},{"value":"recipient_information_required","description":"Expires when expiresAt passes."}]},{"id":"executable_window","title":"Statuses governed by executableUntil","appliesTo":"Approved payment drafts and their envelopes","values":[{"value":"approved","description":"Reads as expired once the server clock reaches executableUntil (zero skew)."},{"value":"execution_pending","description":"Reads as expired once the server clock reaches executableUntil."}]},{"id":"prepare_policy_result","title":"prepare_payment policy result","appliesTo":"prepare_payment.policy_result","values":[{"value":"allowed_with_approval","description":"Policy allows the payment to be proposed. A human still has to approve it."},{"value":"blocked","description":"Policy blocks the payment. No approvable draft is created."}]},{"id":"approval_queue_pending","title":"Approval queue: pending","appliesTo":"The operator approvals queue","values":[{"value":"draft","description":"Shown as pending."},{"value":"requires_approval","description":"Shown as pending."},{"value":"pending_operator_approval","description":"Shown as pending."},{"value":"awaiting_approval","description":"Shown as pending."}]},{"id":"approval_queue_history","title":"Approval queue: history","appliesTo":"The operator approvals queue","values":[{"value":"approved","description":"Approved. Approve does not execute."},{"value":"rejected","description":"Rejected by a human."},{"value":"expired","description":"The window passed before use."},{"value":"revoked","description":"Revoked after approval, before use."}]},{"id":"spend_envelope","title":"Spend envelope status","appliesTo":"The spend envelope minted at approval","values":[{"value":"approved","description":"Minted at human approval with the signed fields and scope."},{"value":"revoked","description":"Revoked. The signature is cleared and it can no longer be used."},{"value":"expired","description":"Past executableUntil."},{"value":"denied","description":"The approval was refused."}]},{"id":"approval_ledger","title":"Approval ledger decision","appliesTo":"Approval ledger entries for spend envelopes","values":[{"value":"approved","description":"A human approved the draft; this ledger entry records the signed envelope alongside it."},{"value":"revoked","description":"The authorization was revoked by the owner or an admin."},{"value":"expired","description":"The envelope expired."},{"value":"denied","description":"The approval was refused."}]},{"id":"mandate","title":"Recurring mandate status","appliesTo":"Recurring mandates","values":[{"value":"active","description":"Cycles can be prepared. Each cycle still needs a fresh human approval."},{"value":"paused","description":"No cycles are prepared or claimed."},{"value":"cancelled","description":"Cancelled by the owner. No further cycles."},{"value":"completed","description":"No further cycles."}]},{"id":"mandate_cycle","title":"Mandate cycle status","appliesTo":"Each cycle of a recurring mandate","values":[{"value":"pending_approval","description":"Opened for this cycle and waiting for a fresh human approval."},{"value":"approved","description":"A fresh signed approval is attached. Claims before the cycle time are refused."},{"value":"claimed","description":"The claim was recorded. A claim never moves money."},{"value":"completed","description":"Reserved for execution, which is not enabled."},{"value":"refused","description":"Refused, for example after an execution attempt was recorded. The slot is used up."},{"value":"expired","description":"The cycle approval lapsed. The slot can be prepared again."},{"value":"skipped","description":"Skipped by the owner, or marked missed when a cycle is not approved and claimed by the cycle time plus grace."}]},{"id":"wallet_connection","title":"Wallet connection status","appliesTo":"get_wallet_status.connectionStatus","values":[{"value":"not_connected","description":"No wallet is connected for this AI Agent."},{"value":"pending","description":"Wallet setup has started and is not verified yet."},{"value":"connected","description":"A staging wallet is connected and verified."},{"value":"unavailable","description":"Status cannot be read right now. See unavailableReason."},{"value":"error","description":"The last status check failed. See unavailableReason."}]},{"id":"wallet_verification","title":"Wallet verification status","appliesTo":"get_wallet_status.verificationStatus","values":[{"value":"not_verified","description":"Not verified."},{"value":"pending","description":"Verification in progress."},{"value":"verified","description":"Verified."},{"value":"failed","description":"Verification failed."}]},{"id":"account_module","title":"Account module status","appliesTo":"get_account_status.modules[].status (including the wallet module)","values":[{"value":"active","description":"The module is active."},{"value":"activating","description":"Activation is in progress."},{"value":"ready_to_connect","description":"Ready to connect."},{"value":"application_required","description":"An application is needed first."},{"value":"application_started","description":"An application was started."},{"value":"submitted","description":"The application was submitted."},{"value":"in_review","description":"Under review."},{"value":"action_required","description":"The account owner needs to act in POINTS, for example to re-authorize the wallet."},{"value":"not_approved","description":"Not approved."},{"value":"coming_soon","description":"Not available today. No date is published."},{"value":"temporarily_unavailable","description":"Temporarily unavailable."}]},{"id":"payment_pattern","title":"Payment pattern","appliesTo":"prepare_payment.paymentPattern","note":"Requires execution (not enabled). Values exist in code only.","values":[{"value":"standard","description":"A single payment draft."},{"value":"sell_side_job","description":"Escrow-before-work pattern."},{"value":"micropayment","description":"Fee-before-send, charge-on-2xx pattern."}]},{"id":"escrow","title":"Escrow state","appliesTo":"Escrow-before-work drafts","note":"Requires execution (not enabled). Values exist in code only.","values":[{"value":"none","description":"No escrow hold."},{"value":"held","description":"Amount counted as escrowed."},{"value":"releasable","description":"Work accepted; the hold could be released."},{"value":"refundable","description":"The hold could be refunded."},{"value":"released","description":"Terminal: released."},{"value":"refunded","description":"Terminal: refunded."}]},{"id":"autonomy_level","title":"Graduated autonomy level","appliesTo":"Agent Pay policy","note":"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.","values":[{"value":"L0","description":"Lowest level: no history, a policy or list miss, or a velocity cap hit."},{"value":"L1","description":"Known or allow-listed merchant with thin history, small amounts."},{"value":"L2","description":"Good history and moderate frequency, larger amounts."},{"value":"L3","description":"Highest level: strong history and an allow-listed merchant."}]},{"id":"settlement_terminal","title":"Settlement terminal status","appliesTo":"Execution and settlement","note":"Requires execution (not enabled). Values exist in code only.","values":[{"value":"completed","description":"Reserved for confirmed provider success."},{"value":"failed","description":"Reserved for a failed execution attempt."}]}]}