Pink Agentic AI Payments
Pembayaran untuk agen AI melalui MCP: anggaran dan aturan per agen (izinkan, tanyakan ke manusia, blokir) diperiksa di sisi server sebelum pembayaran dieksekusi. Sandbox gratis dengan uang uji.
Server MCP Terhosting
npx add-mcp 'https://agentic-sandbox.pinkwallet.com/mcp'Terpasang ke Claude Code, Codex, Cursor, dan lainnya
Dokumentasi
Sign Up
Login
Last updated: 2026-10-12
At a glance
| MCP endpoint | https://agentic-sandbox.pinkwallet.com/mcp (Streamable HTTP), or run it as a local stdio server with npx -y pink-agentic-payments-mcp (env PINK_AGENT_API_KEY) |
|---|---|
| Auth | OAuth 2.1 (discovery, dynamic client registration, PKCE) for clients like Claude.ai custom connectors, or a simple Authorization: Bearer <agent_key> header / key-in-path |
| REST base | https://agentic-sandbox.pinkwallet.com/v1 |
| Tools | 7 MCP tools: pink.get_budget, pink.list_payees, pink.list_rules, pink.check_policy, pink.request_payment, pink.get_credential, pink.report_receipt |
| Cost | Free. Sandbox workspaces use test credentials only, no money moves |
| Status | Public sandbox live now; production access through early access |
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).
Option C: a local stdio bridge for clients that only speak stdio. npx -y pink-agentic-payments-mcp forwards every call to the same remote MCP server over PINK_AGENT_API_KEY; see the package's README for ready-to-paste Claude Desktop, Cursor and VS Code configs.
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. Time-of-day rules run on the server clock in the workspace's timezone; the local_hour argument simulates an hour for dry runs only (pink.check_policy), and a real pink.request_payment call ignores it.
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","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.
[
For agents already running on an MCP-capable client or framework — Claude, Cursor, VS Code, the OpenAI Agents SDK, LangChain — connect directly with no custom HTTP client to write.
| Tool | What it does |
|---|---|
pink.get_budget | Check the calling agent's remaining monthly budget and per-payment cap |
pink.list_payees | List the payees this agent is allowed to pay |
pink.list_rules | List the policy rules that apply to this agent |
pink.check_policy | Dry-run a payment against the rules without submitting it |
pink.request_payment | Request a payment; the rules decide ALLOW, ASK A PERSON, or BLOCK |
pink.get_credential | Retrieve the single-use card or bank-transfer credential once approved |
pink.report_receipt | File the receipt for a completed payment |
](https://pinkwallet.com/agentic/developers/connect-via-mcp)[
For any language or agent framework without native MCP support, call the REST API directly.
| Method | Endpoint | What it does |
|---|---|---|
POST | /v1/payments/check | Dry run: would-allow / would-ask / would-block with the full rule trace |
POST | /v1/payments | Request a payment |
GET | /v1/payments/{id} | Poll a pending payment; returns the credential once approved |
POST | /v1/payments/{id}/receipt | File the receipt for a completed payment |
](https://pinkwallet.com/agentic/developers/connect-via-rest)
Python client
Pink Agentic AI Payments has an official Python client, pink-agentic-payments, that wraps the sandbox REST API: policy checks, payment requests, approvals and receipts.
pip install pink-agentic-payments
from pink_agentic_payments import create_sandbox_workspace, PinkClient
workspace = create_sandbox_workspace(company="My Test Co", template="coffee")
agent_key = workspace["agents"][0]["key"]
client = PinkClient(agent_key)
check = client.check_policy(amount=420, payee_id="p_cc", purpose="beans")
print(check["decision"], "-", check["reason"])
github.com/Pink-Agentic-Payments/pink-agentic-payments-python (also on PyPI: pip install pink-agentic-payments).
Pink JS/TS client
Pink Agentic AI Payments also has an official JavaScript/TypeScript client, pink-agentic-payments-js, that wraps the sandbox REST API: policy checks, payment requests, approvals and receipts.
npm install pink-agentic-payments
import { createSandboxWorkspace, PinkClient } from 'pink-agentic-payments';
const workspace = await createSandboxWorkspace({ company: 'My Test Co', template: 'coffee' });
const agentKey = workspace.agents[0].key;
const client = new PinkClient(agentKey);
const check = await client.checkPolicy({ amount: 420, payeeId: 'p_cc', purpose: 'beans' });
console.log(check.decision, '-', check.reason);
github.com/Pink-Agentic-Payments/pink-agentic-payments-js (on npm: npm install pink-agentic-payments).
Install the packages
All MIT, maintained at github.com/Pink-Agentic-Payments. Everything here talks to the sandbox; test money only.
| JS/TS client | npm install pink-agentic-payments — live on npm. pink-agentic-payments-js |
|---|---|
| Python client | pip install pink-agentic-payments. pink-agentic-payments-python |
| LangChain | pip install langchain-pink — 4 tools (pink_request_payment, pink_check_policy, pink_get_budget, pink_check_payment_status) + PinkToolkit. langchain-pink, or the connect guide |
| n8n | npm install n8n-nodes-pink — live on npm (0.1.0), or install from the n8n UI: Settings → Community Nodes → Install → n8n-nodes-pink. n8n-nodes-pink, or the connect guide |
| MCP (local stdio) | npx -y pink-agentic-payments-mcp with env PINK_AGENT_API_KEY — bridges any stdio MCP client to the remote server above. pink-agentic-payments-mcp |
| Vercel AI SDK | npm install pink-agentic-payments-ai-sdk ai zod — pinkTools({ agentKey }) returns 4 ai tools. pink-agentic-payments-ai-sdk, or the connect guide |
Guides with screenshots, per client
Not a developer, or just want the menu names? The connection guides walk through each client step by step: Claude, ChatGPT, Claude Code, Gemini CLI, Cursor, Windsurf, VS Code, Copilot Studio, the OpenAI and Anthropic APIs, LangChain, CrewAI, n8n and the official SDKs.
Get started
- 5-minute quickstart — the fastest path from zero to a first test payment.
- Agent integration patterns
- Framework recipes — complete agent loops for the MCP TypeScript SDK, REST, Claude, the Anthropic and OpenAI APIs, OpenAI Agents SDK, LangChain, CrewAI and the IDE clients.
- MCP tools reference — all seven tools with input schemas and real sandbox responses.
- Policy rules reference — the rule object, evaluation order, payee scopes, windows, approver quorums, evidence conditions.
- Security model — what a wrong, compromised or over-eager agent can and cannot do. — how to wire budget checks, approvals, and receipts into an agent's own loop.
Sandbox status
Sandbox live: test credentials only, no money moves.Create a free sandbox workspace — no signup form needed. Production is not yet available.
Design partners wanted
We're looking for 3 design partners to run Pink Agentic AI Payments on a real use case before general availability: teams whose agents buy API credits, ads, cloud or travel, or that run many small automated payments to suppliers. You get hands-on setup of your rules with our team and early access. Free during the design-partner period.
Prefer email? [email protected], subject "Pink design partner".
FAQ
Should I connect via MCP or REST?
Use MCP if your agent already runs on an MCP-capable client or framework (Claude, Cursor, VS Code, the OpenAI Agents SDK, LangChain) — you get 7 tools (get_budget, list_payees, list_rules, check_policy, request_payment, get_credential, report_receipt) with no custom HTTP client to write. Use REST if your agent framework doesn't speak MCP, or you want direct control over the HTTP calls; both paths run against the same policy engine and sandbox workspace.
How do I test a payment before actually requesting one?
Call POST /v1/payments/check (REST) or pink.check_policy (MCP) first — it's a dry run that returns would_allow, would_ask, or would_block along with the full rule trace, without creating a real payment request.
What does a payment request actually return?
POST /v1/payments returns one of three states: 201 if the rules allow it immediately, 202 if it's pending human approval, or 403 if it's blocked. For a pending request, you poll GET /v1/payments/{id} until it resolves, which returns the credential once approved. Sending an Idempotency-Key header makes retries of the same request safe.
Is the sandbox connected to real money?
No. The sandbox is live: create a free sandbox workspace at https://agentic-sandbox.pinkwallet.com/ (test credentials only, no money moves). Production is not yet available.