Built for AI-native companies

the control layer
between AI agents
and money

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
we're velos — a policy engine for agent spending.
built for trust & accountability
what velos does

every dollar an agent spends,
decided, explained, recorded

01 / Policy Engine

Rules before receipts

Vendor allowlists, monthly budgets, auto-approve thresholds. Your agent asks before it spends — Velos answers in milliseconds: approved, denied, or send a human.

02 / Card Enforcement

Declined at the network

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.

03 / Human Approvals

Yes from anywhere

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.

04 / Receipts & Reasons

Every decision has a why

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.

one endpoint.
before the money moves.

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.

# agent wants $42.50 of OpenAI credits curl -X POST velos.dev/api/v1/evaluate \ -H "Authorization: Bearer vk_..." \ -d '{ "agent": "research-bot", "vendor": "OpenAI", "amount": 42.50 }' # velos answers, instantly { "decision": "approved", "explanation": "Auto-approved: $42.50 is under the $100 threshold and within the $2,000 monthly budget." }
the airtight part

asking nicely is optional.
the card isn't.

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.

1

agent asks

evaluate_spend — Velos approves the intent against your policy.

2

card charges

The real charge hits the network. Velos matches it to the approved intent in the authorization window.

3

gate decides

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.

plug it in

drop it into the agent
you already use

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.

# run in your terminal
claude mcp add --transport http velos \
  https://velos-chi.vercel.app/api/mcp \
  --header "Authorization: Bearer vk_..."