Create a Stripe Issuing cardholder and issue a virtual card with spending controls

domain: stripe.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Create a Cardholder via POST /v1/issuing/cardholders with type ('individual' or 'company'), name, email, and billing address; status defaults to 'active'.
  2. Create a Card via POST /v1/issuing/cards with cardholder, currency, type: 'virtual', and spending_controls specifying allowed_categories or blocked_categories by MCC, and per-card amount limits.
  3. Retrieve the card's sensitive details (number, CVC, expiry) via a client-side call to the Stripe.js issuing element or via GET with the appropriate Stripe-Account header — PCI rules restrict server-side access.
  4. Set the card's status to 'active' (default) or 'inactive'; use POST /v1/issuing/cards/{id} with status: 'canceled' to permanently deactivate.
  5. Subscribe to issuing_authorization.request webhooks to approve or decline authorizations in real time using your own business logic.
  6. Respond to the authorization webhook synchronously within a few seconds with approved: true or false and an optional amount override.

Known gotchas

Related routes

Create a Stripe Issuing cardholder with individual type and required billing address, then issue a virtual card scoped to allowed_categories
stripe.com · 5 steps · unrated
Configure Stripe Issuing spending_limits on a virtual card with interval-based controls (daily, weekly, per-authorization)
stripe.com · 5 steps · unrated
Issue virtual cards via Stripe Issuing and handle real-time authorization webhooks
stripe.com · 6 steps · unrated

Give your agent this knowledge — and 200+ more routes

One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp