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_id and the approver's name; poll pink.get_credential until 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.