Rightshold™ Sign up

Answers · agent payments

How do I temporarily pause an AI agent's spend without revoking its credential?

Last updated

TL;DR: Revoking an agent's credential is permanent: to resume, you issue a new credential with a new key and rewire everything that used it. Often you only need a pause, for example during a vendor incident, a billing review, a holiday freeze or while you look into an odd purchase. Pause at the policy layer. Record a new set_spend_policy version that denies everything (caps of 0 and an allowlist holding only a placeholder domain that matches nothing), or give the live policy an expires_at so authorize_spend returns policy_expired after a set time. Set any Stripe Issuing card the agent holds to inactive, which can be reversed, unlike canceled. Use account_controls freeze if credit spending, listings and new work on the whole Rightshold account should stop too. To resume, record the old policy again and set the card back to active. The credential, its key and its reputation stay the same. That is different from the mid-task spend revoke page (revoke_agent, a permanent cut) and from kill-switch pages. authorize_spend proves the pause is in force, and ledger_verify keeps the pause and resume checkable.

What should I check, step by step?

1. Decide that you want a pause, not a revoke. If the key may be compromised or the agent is acting maliciously, revoke instead (revoke_agent can't be undone). A pause is for situations where you trust the credential and want to resume later.

  1. Save the current policy first: GET /v1/spend/policies/{credential_id} returns the live policy and spent_today_minor, so you can record the same rules again on resume.
  2. Pause with a new set_spend_policy version: per_tx_max_minor 0, daily_max_minor 0, and allowed_domains holding one placeholder domain such as paused.invalid. Any positive amount returns over_per_transaction_cap and over_daily_cap, and every real merchant returns merchant_not_allowed.
  3. Don't pause by clearing the allowlist. An empty allowed_domains or allowed_categories list means no restriction, so clearing the list widens spend instead of stopping it.
  4. For a planned, time-boxed window, set expires_at on the live policy instead. After that time, authorize_spend returns policy_expired until you record a new policy. expires_at must be in the future when you set it.
  5. Pause the money rails too: set a Stripe Issuing card to inactive (authorizations decline with card_inactive, and you can set it back to active later). Never use canceled for a pause, because it is permanent. Pause or disable the wallet key or payment-provider key the agent uses.
  6. If the whole Rightshold account should stop (credit spending, new listings, new work), use account_controls freeze with a reason, then unfreeze when you're done. It does not change authorize_spend answers by itself, so keep the policy pause in place.
  7. Resume by recording the saved policy again (a new version), setting the card back to active and unfreezing. Then confirm one authorize_spend allow. Test both directions: while paused, one deny; after resume, one allow, on the same credential.

What is the difference between pausing and revoking an AI agent's spend authority?

revoke_agent is a permanent cut. Every Rightshold check refuses the credential from that moment, and resuming means a new credential, a new key and a fresh reputation. The page on revoking spend authority mid-task covers that path for when trust is gone.

How do I pause an AI agent's spend with a deny-all policy version or expires_at?

set_spend_policy records a new version that replaces the old one from the moment it is recorded. A deny-all version (caps of 0, allowlist of paused.invalid) makes authorize_spend return a signed deny with over_per_transaction_cap, over_daily_cap and merchant_not_allowed for any real purchase.

How do I pause an AI agent's card and account, then resume spend safely?

Rightshold signs decisions but does not hold the agent's card or wallet. Set a Stripe Issuing card to inactive (it declines with card_inactive and can be set back to active). Canceled is permanent, so keep it for a revoke. Pause or disable any wallet or provider key the agent holds.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Pause my purchasing agent's spending without revoking its credential: record a deny-all spend policy (0 caps, placeholder allowlist) so authorize_spend denies everything, and tell me how to resume with my old policy later.”

One-click setup

{
  "tool": "set_spend_policy",
  "arguments": {
    "credential_id": "crd_YOUR_AGENT_CREDENTIAL",
    "currency": "USD",
    "per_tx_max_minor": 0,
    "daily_max_minor": 0,
    "allowed_domains": [
      "paused.invalid"
    ],
    "allowed_categories": [
      "paused"
    ]
  }
}

Rightshold records spending policies, signed allow/deny decisions, account freezes and revocations on a hash-chained ledger. It never holds, moves or settles money, and it can't set your Stripe cards, wallets or provider keys to inactive for you. Pausing those rails, and making merchants refuse denied purchases, are steps you run around those records. Not financial or legal advice.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'