tokens&
For enterprises
Submit
Sign in
tokens&

Build better AI stacks, claim useful opportunities, and give AI infrastructure companies a source-labeled adoption readout they can trust.

For buildersFor enterprises

Product

  • For builders
  • Category rankings
  • Startup credits and perks
  • Agent Skills
  • Platform
  • Submit project, tool, product, or perk

Enterprise

  • Start free company workspace

Community

  • Community
  • Newsletter
  • Events
Xin

© 2026 tokensand, LLC. All rights reserved.

  • Terms
  • Privacy
  • Security
  • Data Processing
  • Status
Agent Skills/Stripe integration guide
StripePaymentsSKILL.mdVerified source

Agent Skill

Stripe integration guide

Build payment flows, API integrations, webhooks, and billing behavior with agent-ready guardrails.

Install this skillView repository

Vendor-authored source · MIT license.

Raw SKILL.mdStripe tool profileInstall the Tokens& Agent Pack

Tokens& curated build recipe

A subscription flow in sandbox mode

Build a Stripe Checkout subscription demo in sandbox mode using the integration skill. Verify webhook signatures and make fulfillment idempotent; keep live charging disabled while validating the flow.

  1. 1. Check the startup application

    Stripe startup growth credits

    Stripe's startup offer targets early-stage venture-backed startups, with referral and country-specific conditions. Fee benefits depend on approval and prior offers; sandbox testing does not require a credit award.

    Read Stripe terms
  2. 2. Use the vendor skill

    Stripe integration guide

    Review the source and install instructions below, then use the skill in your own project.

    See install instructions
  3. 3. Build and show the result

    Save the Build Packet, then attach a repository and sandbox evidence showing checkout completion, duplicate webhook handling, and cancellation.

    Start this Build Packet

Public resources selected by Tokens&. Terms reviewed 2026-09-05; the provider decides eligibility and current limits. This recipe is a suggested project, not a vendor partnership or a completed build.

Skill specification

Declared by Stripe in the package front matter. Trigger conditions are what the coding agent matches on before it loads the skill.

View package fields
Stripe integration guide SKILL.md front matter fields
Skill namestripe-best-practices
Trigger conditionsGuides Stripe integration decisions across API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, tax and registrations (Stripe Tax, automatic_tax, product tax codes), Treasury financial accounts, integration options (Checkout, Payment Element), migrating from deprecated Stripe APIs, and security best practices (API key management, restricted keys, webhooks, OAuth). Use when building, modifying, or reviewing any Stripe integration, including accepting payments, building marketplaces, integrating Stripe, processing payments, setting up subscriptions, collecting sales tax, VAT, or GST, creating connected accounts, or implementing secure key handling.

Install stripe-best-practices

In a terminal with Node.js, npm and Git, run the command for your agent. The Skills CLI installs the complete package directory, including referenced files within it. Review its install prompt, then start a new agent session. A skill package does not set up an MCP server connection.

Codex

.agents/skills/stripe-best-practices/SKILL.md

Codex reads `.agents/skills/` as its primary location, which is also the cross-platform default other clients honour.

Project install

npx skills add 'https://github.com/stripe/ai/tree/main/skills/stripe-best-practices' --skill 'stripe-best-practices' --agent 'codex'
Install for all projects instead

Personal install

npx skills add 'https://github.com/stripe/ai/tree/main/skills/stripe-best-practices' --skill 'stripe-best-practices' --agent 'codex' --global

SKILL.md

View raw source

Published by Stripe under MIT. Rendered from the package in github.com/stripe/ai/tree/main/skills/stripe-best-practices.

Read full skill instructions

Latest Stripe API version: 2026-08-26.dahlia. Always use the latest API version and SDK unless the user specifies otherwise.

Latest SDK versions:

LanguageLatest version
Ruby19.6.0
Python15.6.0
Node.js22.6.0
PHP21.3.0
Java33.4.0
Go86.4.0
.NET52.4.0

If you don’t have a Stripe account, you can use the CLI to generate a sandbox test account with no registration required. Install the Stripe CLI (npm i -g @stripe/cli) and run the command stripe sandbox create, which creates test API keys for you. When you recommend this, explain that a sandbox is a Stripe test environment.

If stripe sandbox create is used, don’t use MCP.

If you try to use MCP after running sandbox creation, first make sure stripe sandbox claim is run. Use stripe whoami --format json for CLI auth checks; do not run stripe config --list.

API key default: Always recommend a restricted API key (RAK) (rk_ prefix) over a secret key (sk_ prefix).

Integration routing

Building…Recommended APIDetails
One-time paymentsCheckout Sessions<references/payments.md>
Custom payment form with embedded UICheckout Sessions + Payment Element<references/payments.md>
Saving a payment method for laterSetup Intents<references/payments.md>
Connect platform or marketplaceAccounts v2 (/v2/core/accounts)<references/connect.md>
Usage-based billing (new integration)Metronome<references/billing.md>
Subscriptions or recurring billingBilling APIs + Checkout Sessions<references/billing.md>
Sales tax, VAT, or GST complianceStripe Tax + Registrations API<references/tax.md>
Embedded financial accounts / bankingv2 Financial Accounts<references/treasury.md>

Read the relevant reference file before answering any integration question or writing code.

Critical rules

  • Before enabling `automatic_tax: { enabled: true }` (or calculating tax for a custom PaymentIntent), read the tax reference and confirm the user has an active registration. Without one, Stripe calculates and collects no tax while the user believes tax is on (the most common Stripe Tax mistake).
  • Never include `payment_method_types` in any Stripe API call, with one exception: Terminal (in-person payments) integrations must pass payment_method_types: ['card_present'] on the PaymentIntent. For all other integrations, omit this parameter entirely to enable dynamic payment methods, which enables you to configure payment method settings from the Dashboard and dynamically display the most relevant eligible payment methods to each customer to maximize conversion. To customize which payment methods you accept, use `payment_method_configurations` or excluded_payment_method_types instead of payment_method_types.
  • Never present webhooks as optional. We recommend webhooks for every payment integration and they’re required for subscriptions and asynchronous payment methods. Fulfillment belongs in a handler for both checkout.session.completed and checkout.session.async_payment_succeeded (gated on payment_status), not the success page. See <references/payments.md>.
  • On API version 2026-03-25.dahlia or later, pass the parameter integration_identifier to checkout.sessions.create to tag sessions with a custom label for tracking and comparing checkout flows in the Dashboard. The label should include a suffix of 8 random letters.
  • Always instantiate a `StripeClient` and call methods on that instance. Do not use the deprecated global/module-level API key pattern (stripe.api_key = …, Stripe.setApiKey, stripe.Key = …, StripeConfiguration.ApiKey = …). The global pattern is deprecated in all current SDKs.

Key documentation

When the user’s request does not clearly fit a single domain above, consult:

  • Integration Options — Start here when designing any integration.
  • API Tour — Overview of Stripe’s API surface.
  • Go Live Checklist — Review before launching.

More Stripe Agent Skills

All Agent Skills

Stripe API upgrader

Upgrade Stripe API versions and SDKs with version-specific migration guardrails.

Payments

Security (key management, RAKs, webhooks, OAuth, 2FA, Connect liability)
See security reference
<references/security.md>