Every payment an AI agent tries to make passes through Velos first. It checks your policies, then approves it, denies it, or asks a human — and can decline the charge at the card network itself. Every decision logged.
Start Free →Vendor allowlists, monthly budgets, auto-approve thresholds. Your agent asks before it spends — Velos answers in milliseconds: approved, denied, or send a human.
Each agent holds a Velos-issued virtual card. Every charge hits the policy gate in real time — out-of-policy spend is declined before the money moves, even if the agent never asked.
Escalated spends wait for a human. Approve from the dashboard — or right inside Claude Code or Cursor, without leaving the chat. Both write the same audit record.
Each verdict is recorded with a plain-English explanation of the rule that fired. When finance asks "what did the agents buy in March?" — one query answers.
Your agent calls POST /api/v1/evaluate before any purchase. Velos checks the policy and returns a decision — approved, denied, or held for a human — that your payment flow can act on.
Within policy, it passes. Against it, Velos declines and flags it in your dashboard. When it needs a human, the request waits — approve it from the dashboard, or right inside the agent itself.
Each agent spends on a Velos-issued virtual card — never a raw company card. When a charge hits the card network, Velos answers in the authorization window: matched to a pre-approved request, it goes through. No matching intent, over budget, wrong vendor — declined before any money moves. A rogue or jailbroken agent can't spend around the policy, because the policy holds the card.
evaluate_spend — Velos approves the intent against your policy.
The real charge hits the network. Velos matches it to the approved intent in the authorization window.
Matched → authorized. Unmatched or out of policy → declined at the network, logged, and flagged.
Live on real Stripe test authorizations today — rolling out with design partners.
Velos ships a native MCP server. Connect Claude Code, Cursor, Codex, or Claude Desktop and your agent gets evaluate_spend as a built-in tool — it asks Velos before it spends, and you approve escalations without leaving the chat. No SDK, no glue code.
claude mcp add --transport http velos \ https://velos-chi.vercel.app/api/mcp \ --header "Authorization: Bearer vk_..."