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 endpointhttps://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)
AuthOAuth 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 basehttps://agentic-sandbox.pinkwallet.com/v1
Tools7 MCP tools: pink.get_budget, pink.list_payees, pink.list_rules, pink.check_policy, pink.request_payment, pink.get_credential, pink.report_receipt
CostFree. Sandbox workspaces use test credentials only, no money moves
StatusPublic 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_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.

[

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.

ToolWhat it does
pink.get_budgetCheck the calling agent's remaining monthly budget and per-payment cap
pink.list_payeesList the payees this agent is allowed to pay
pink.list_rulesList the policy rules that apply to this agent
pink.check_policyDry-run a payment against the rules without submitting it
pink.request_paymentRequest a payment; the rules decide ALLOW, ASK A PERSON, or BLOCK
pink.get_credentialRetrieve the single-use card or bank-transfer credential once approved
pink.report_receiptFile 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.

MethodEndpointWhat it does
POST/v1/payments/checkDry run: would-allow / would-ask / would-block with the full rule trace
POST/v1/paymentsRequest a payment
GET/v1/payments/{id}Poll a pending payment; returns the credential once approved
POST/v1/payments/{id}/receiptFile 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 clientnpm install pink-agentic-payments — live on npm. pink-agentic-payments-js
Python clientpip install pink-agentic-payments. pink-agentic-payments-python
LangChainpip 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
n8nnpm 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 SDKnpm 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.