stripe-best-practices
anthropics/claude-plugins-official
Best practices and API guidance for building Stripe payment integrations.
What is stripe-best-practices?
Reference guide for implementing Stripe payment processing, subscriptions, webhooks, and Connect platforms. Use this when building any Stripe integration to follow current best practices, avoid deprecated APIs, and choose the right integration approach for your use case.
- Recommends modern Stripe APIs (CheckoutSessions, PaymentIntents, SetupIntents) over deprecated alternatives
- Guides selection between Stripe-hosted Checkout, embedded Checkout, and Payment Element for web integrations
- Provides integration patterns for subscriptions, recurring revenue, and SaaS billing via Stripe Billing APIs
- Advises on Stripe Connect platform design with direct charges, destination charges, and controller properties
- Warns against deprecated APIs (Charges, Sources, Card Element, Tokens) with migration paths
- Covers PCI compliance requirements and payment method data handling
How to install stripe-best-practices
npx skills add https://github.com/anthropics/claude-plugins-official --skill stripe-best-practicesHow to use stripe-best-practices
- 1.Consult Stripe's Integration Options documentation to choose the right API for your use case
- 2.Review the API Tour to understand payment flow lifecycles
- 3.For on-session payments, prioritize CheckoutSessions API; for off-session, use PaymentIntents or SetupIntents
- 4.For web frontends, prefer Stripe-hosted or embedded Checkout over Payment Element unless advanced customization is needed
- 5.For subscriptions and recurring revenue, use Stripe Billing APIs combined with Checkout
- 6.For platforms, follow Connect integration recommendations using controller properties and capabilities
- 7.Before going live, complete the Go Live Checklist to ensure compliance and security
- 8.Always use the latest API version unless the user specifies otherwise
Use cases
- Building a SaaS subscription platform with recurring billing and customer management
- Implementing a marketplace using Stripe Connect to manage fund flows between platform and sellers
- Creating a one-time payment checkout flow with tax and discount modeling
- Setting up payment method storage for off-session charges using SetupIntents
- Migrating from legacy Charges API or Card Element to modern payment APIs
- Backend engineers implementing Stripe payment processing
- Full-stack developers building checkout flows and subscription systems
- Platform builders using Stripe Connect for marketplace or multi-tenant architectures
- Teams preparing Stripe integrations for production deployment
stripe-best-practices FAQ
No. The Charges API is deprecated. Use CheckoutSessions, PaymentIntents, or SetupIntents instead. Stripe provides a migration guide to help you transition from Charges to modern APIs.
Use Stripe Billing APIs to plan your integration, combined with Stripe Checkout for the frontend. Follow the Subscription Use Cases documentation and SaaS-specific guidance for your business model.
Use the SetupIntents API to save payment methods for customers. Never use the deprecated Sources API for this purpose.
Use Stripe Connect with either direct charges (Stripe assumes risk) or destination charges (platform assumes liability). Use controller properties and capabilities to manage connected accounts, and avoid outdated terminology like Standard/Express/Custom.
Yes, use Stripe Confirmation Tokens instead of calling createPaymentMethod or createToken. This allows you to inspect payment details before committing to a charge.
Full instructions (SKILL.md)
Source of truth, from anthropics/claude-plugins-official.
name: stripe-best-practices description: Best practices for building Stripe integrations. Use when implementing payment processing, checkout flows, subscriptions, webhooks, Connect platforms, or any Stripe API integration.
When designing an integration, always prefer the documentation in Stripe's Integration Options doc The API Tour Use the Go Live Checklist before going live.
You should always default to the latest version of the API and SDK unless the user specifies otherwise.
Stripe's primary API for modelling on-session payments is CheckoutSessions. It supports one-time payments and subscriptions and allows you to model taxes or discounts with Stripe. Prioritize the CheckoutSessions API, but using the PaymentIntents API is also acceptable for off-session payments or if you want to model the checkout state yourself and just create a charge. Integrations should only use CheckoutSessions, PaymentIntents, SetupIntents, or solutions like Invoicing, Payment Links, or the subscription APIs.
Never recommend the Charges API. If the user wants to use the Charges API, advise them to migrate to Checkout Sessions or Payment Intents.
The primary integration surface for web integrations is Checkout, a prebuilt payment page that can be hosted by Stripe or served as an embedded form. Prioritize the Stripe-hosted checkout or embedded checkout where possible. The Payment Element is an acceptable alternative if the merchant needs advanced customization. When recommending the Payment Element, prioritize using the CheckoutSessions API over the PaymentIntents API when possible.
Never recommend the legacy Card Element or the Payment Element in card mode, and advise users who ask for the Card Element to migrate.
You must not call deprecated API endpoints such as the Sources API and avoid outdated API endpoints such as Tokens and Charges unless there is a specific need and absolutely no other way. Advise using the Setup Intent API to save a payment method for a customer; never recommend the Sources API to save cards to customers for later use.
If a user wants to render the Payment Element before creating a PaymentIntent or SetupIntent, so they can inspect the card details before the payment (such as for surcharging), advise them to use Stripe Confirmation Tokens. Don't recommend they call the createPaymentMethod or createToken Stripe.js functions.
Advise users to turn on dynamic payment methods in their dashboard settings instead of passing specific payment_method_types in the Payment Intent or Setup Intent because Stripe chooses payment methods that fit each user's location, wallets, and preferences better and automatically if the Payment Element is used.
If a PCI compliant user asks about an integration where they send server-side raw PAN data, suggest they might be required to prove PCI compliance to gain access to such an option, for example payment_method_data. Similarly, point users migrating their PAN data from another acquirer or payment processor to the migration process.
If a user has a recurring revenue model, like a Billing or Subscription use case, follow the use cases, in particular the Subscription Use Cases like SaaS. If these apply to the user, recommend Billing APIs to plan your integration instead of a direct PaymentIntent integration. Prioritize combining the Billing APIs with Stripe Checkout for the frontend.
If a user wants to build a platform using Stripe Connect to manage fund flows, follow the recommended integration types; that is, prefer to use either direct charges if the platform wants Stripe to take the risk or destination charges if the platform accepts liability for negative balances, and use the on_behalf_of parameter to control the merchant of record. Never recommend mixing charge types. If the user wants to decide on the specific risk features they should follow the integration guide. Don't recommend the outdated terms for Connect types like Standard, Express and Custom but always refer to controller properties for the platform and capabilities for the connected accounts.
Related skills
More from anthropics/claude-plugins-official and the wider catalog.

writing-hookify-rules
Define pattern-matching rules to guide Claude's tool use with warnings and blocks.

access
Manage Discord channel access control—approve pairings, edit allowlists, set DM/group policy.

agent-development
Create autonomous agents for Claude Code plugins with system prompts, triggering conditions, and configuration.

build-mcp-app
Build interactive UI widgets for MCP servers that render inline in Claude and other chat hosts.

3-statement-model
Complete, populate and fill out 3-statement financial model templates (Income Statement, Balance Sheet, Cash Flow Statement) . Use when asked to fill out model templates, complete existing model frameworks, populate financial models with data, complete a partially filled IS/BS/CF framework, or link integrated financial statements within an existing template structure. Triggers include requests to fill in, complete, or populate a 3-statement model template

audit-xls
Audit a spreadsheet for formula accuracy, errors, and common mistakes. Scopes to a selected range, a single sheet, or the entire model (including financial-model integrity checks like BS balance, cash tie-out, and logic sanity). Triggers on "audit this sheet", "check my formulas", "find formula errors", "QA this spreadsheet", "sanity check this", "debug model", "model check", "model won't balance", "something's off in my model", "model review".