Set up your AI wallet.
Five steps. Nothing on your end beyond signing in, adding a card, and pasting a config snippet into your AI client. Cards stay in Stripe's vault — your AI never sees a card number, only a bounded token you can revoke in one click.
Sign in
Go to /sign-in. Use Google, email, or whichever method your admin has enabled. New accounts are created automatically.
Add a card
From the dashboard, click Add a card. You'll be handed to Stripe's secure form. The card number goes directly from your browser to Stripe — our servers never see it and never store it.
For test mode, use Stripe's magic card:
Number: 4242 4242 4242 4242
Exp: any future date
CVC: any 3 digits
ZIP: any 5 digitsAfter the card is saved you'll see it listed on your wallet page with brand + last 4.
Create a budget
A budget is the permission you hand to an AI to spend on your card. It carries rules you set:
- Limit — total dollars this AI can spend before the budget stops working.
- Allowed stores — optional list of merchant IDs. Empty = any merchant on Pay By AI.
- Expires in — hours until the budget auto-cancels.
Head to /user/budgets, fill in the form, click Create budget. Copy the resulting pbai_sess_… code immediately — it's shown once. (We call it a budget in the UI; internally the credential is a bearer token.)
Connect your AI client
Pay By AI exposes an MCP server that any modern AI client — Claude (web or desktop), Claude Code, ChatGPT, or a custom agent — can add as a custom connector. The easiest path is the web UI.
Claude on the web (claude.ai) — recommended
This is the path most people want. No config files, no CLI — just paste a URL.
- Open claude.ai and sign in. (Requires a Claude Pro or Max plan — Anthropic gates custom connectors on paid tiers.)
- Click your avatar → Settings → Connectors.
- Click Add custom connector.
- Fill in:
Name: PayByMy.AI
URL: https://www.paybymyai.com/api/mcp
Header: Authorization: Bearer pbai_sess_YOUR_CODE_HERE- Click Save. Claude validates the connection by calling
tools/list— if the budget code is valid, the connector becomes available. - In any new chat, confirm the connector is enabled (small toggle in the composer) and ask: “What cards do I have on file?” Claude will call the tool and show your cards.
Claude Desktop (config-file alternative)
If you prefer editing config files (or you're on Claude Desktop without the UI flow enabled), open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the Windows equivalent, and add:
{
"mcpServers": {
"paybyai": {
"url": "https://www.paybymyai.com/api/mcp",
"headers": {
"Authorization": "Bearer pbai_sess_YOUR_TOKEN_HERE"
}
}
}
}Restart Claude Desktop to pick up the change.
Claude Code (CLI)
claude mcp add paybyai \
--transport http \
--url https://www.paybymyai.com/api/mcp \
--header "Authorization=Bearer pbai_sess_YOUR_TOKEN_HERE"Generic MCP client
Any client that supports MCP Streamable HTTP can connect directly:
POST https://www.paybymyai.com/api/mcp
Authorization: Bearer pbai_sess_YOUR_TOKEN_HERE
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/list"}Start buying
Tell your AI what you want. When it's ready to pay, it asks the merchant's MCP (or is handed a token directly) and calls pay_payment_request(token, paymentMethodId) on Pay By AI.
Pay By AI verifies your session, checks the consent bounds, and creates a Stripe PaymentIntent with transfer_data.destination pointing at the merchant's Connect account. The money never passes through us.
What your AI sees
Only an opaque token and a payment method ID. Never the card number, never the CVV, never the expiry. We don't pass that data because we don't have it — Stripe does.
If something goes wrong
- Budget limit hit: the AI gets a
spending_cap_exceedederror. Create a new budget with a higher limit. - Store not in allowlist:
merchant_not_allowed. Create a new budget with that store included. - Token expired or revoked: 401 from
/api/mcp. Mint a new one.
