Pink Agentic AI Payments
Payments for AI agents over MCP: per-agent budgets and rules (allow, ask a human, block) checked server-side before a payment executes. Free sandbox with test money.
Hosted MCP Server
npx add-mcp 'https://agentic-sandbox.pinkwallet.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
5-minute quickstart
1. Create a sandbox workspace
Pick a template (coffee, startup, or ecommerce) and create a workspace. Tested against the live sandbox on 2026-10-05:
curl -s -X POST "https://agentic-sandbox.pinkwallet.com/v1/sandbox/workspaces" \
-H 'content-type: application/json' \
-d '{"template":"coffee","company":"My company"}'
The response returns an admin_key and a list of agents, each with its own key, monthly budget and per-payment cap. Save one agent's key: the examples below call it $AGENT_KEY.
2. Connect your client
Option A: Claude Desktop, Claude Code, or Cursor, with the agent key as a Bearer header:
claude mcp add --transport http pink \
"https://agentic-sandbox.pinkwallet.com/mcp" \
--header "Authorization: Bearer $AGENT_KEY"
Option B: a Claude.ai custom connector over OAuth 2.1, with no key pasted into any config file. Add a custom connector with the URL https://agentic-sandbox.pinkwallet.com/mcp, then complete the consent screen (paste the workspace's admin_key there and pick which agent to connect as).
3. Check the policy, then request the payment
Dry-run first with pink.check_policy (nothing is spent or held), then call pink.request_payment for real. Both tested live on 2026-10-05, including the local_hour argument: the sandbox's time-of-day rules run on the server's UTC clock unless you pass local_hour.
curl -s -X POST "https://agentic-sandbox.pinkwallet.com/mcp" \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-H "Authorization: Bearer $AGENT_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"pink.request_payment","arguments":{"payee_id":"p_cc","amount":420,"purpose":"20 kg espresso beans","local_hour":12,"idempotency_key":"quickstart-1"}}}'
What comes back, by decision:
- Allowed: a single-use credential locked to the payee and amount, valid 15 minutes, returned immediately. Confirmed live: a $420 coffee-bean order under an agent's $500 cap came back
"decision": "allowed"with a bank-transfer credential attached. - Pending human approval: a
hold_idand the approver's name; pollpink.get_credentialuntil it resolves. Confirmed live: an $890 order above the same cap came back"decision": "pending_human", needing the store manager. - Blocked: no credential, with the rule that matched. Confirmed live: a crypto-exchange payee came back
"decision": "blocked"on the "Never: gift cards, cash-like, crypto" rule.
From here, the deeper guides: full quickstart walkthrough, connect via MCP (all supported clients), connect via REST, policy rules reference, and the security model. Runnable framework examples (LangGraph, OpenAI Agents SDK, Haystack) are in github.com/Pink-Agentic-Payments/sandbox-examples.