with one click
stripe-pay
// Use when the user wants the agent to make a payment on their behalf via Stripe Link Wallet for Agents. Always asks for explicit per-charge approval. Requires `stripe-pay authorize` setup first.
// Use when the user wants the agent to make a payment on their behalf via Stripe Link Wallet for Agents. Always asks for explicit per-charge approval. Requires `stripe-pay authorize` setup first.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | stripe-pay |
| description | Use when the user wants the agent to make a payment on their behalf via Stripe Link Wallet for Agents. Always asks for explicit per-charge approval. Requires `stripe-pay authorize` setup first. |
stripe-payLets the agent spend on the user's behalf through Stripe's "Link Wallet for Agents" + "Issuing for Agents" APIs (April 2026 release).
Two commands. No history viewer, no spend-cap config (caps live in Stripe Link), no auto-approve.
stripe-pay authorize # one-time OAuth setup
stripe-pay charge --amount 12.50 --currency USD \
--merchant "Some Shop" --reason "domain renewal"
Invoke this skill when:
Do NOT use this skill for:
stripe-pay authorize yet: tell them to set up firstfinance skill for read-only bank dataSee SETUP.md. One-time:
stripe-pay authorize and approve in the Link appIf stripe-pay authorize has not been run, the charge command exits with a clear error. The agent should explain what authorize does and link to SETUP.md.
stripe-pay charge \
--amount 24.99 \
--currency USD \
--merchant "Acme Domains" \
--reason "renewing example.com for 1 year"
Flow:
MEMORY.md Primary Channel default; falls back to WhatsApp).
The prompt includes amount, currency, merchant, reason, and a 5-minute deadline.yes, y,
go, confirm, ok, or a thumbs-up / check-mark emoji. Rejection keywords:
no, n, stop, cancel.~/.stripe-pay/history.jsonl.{
"status": "approved",
"charge_id": "ch_1XYZ...",
"card": {
"number": "4242...4242",
"exp_month": 12,
"exp_year": 2026,
"cvc": "***"
},
"amount": 24.99,
"currency": "USD",
"merchant": "Acme Domains"
}
The agent can hand this card detail to a browser/checkout flow, or use Stripe's Buy-with-Link merchant integration if the merchant supports it.
{ "status": "rejected", "reason": "user_declined" }
{ "status": "timeout", "reason": "no_reply_in_5_minutes" }
~/.stripe-pay/history.jsonl
only. Don't write a task for a charge.USD, EUR, GBP, ...). Amounts are in
major units (e.g. 24.99 not 2499).stripe-pay charge calls,
the user will get multiple WhatsApp prompts and approvals will get tangled.~/.stripe-pay/history.jsonl: one JSON object per line:
{"ts":"2026-05-06T10:11:12Z","amount":24.99,"currency":"USD","merchant":"Acme Domains","reason":"renewing example.com","status":"approved","charge_id":"ch_1XYZ"}
Statuses: approved, rejected, timeout, error.
~/.stripe-pay/credentials.json: OAuth tokens (chmod 600)~/.stripe-pay/history.jsonl: append-only charge log