stripe-best-practices

Guides Stripe integration decisions across payments, Connect, billing, tax, and security.

Updated Jan 12, 2026
One-click install
npx skills add https://github.com/ttakci/sellerhill --skill stripe-best-practices-ttakci
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: stripe-best-practices
Source: https://github.com/ttakci/sellerhill/tree/main/.grok/skills/stripe-best-practices
Command: npx skills add https://github.com/ttakci/sellerhill --skill stripe-best-practices-ttakci

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Stripe integrations fail in predictable ways: deprecated APIs, missing webhook handlers, silent zero-tax collection, and wrong Connect account configurations. This Skill routes every Stripe question to the correct current API and enforces the critical rules that prevent the most common integration mistakes. ## Core Features & Use Cases - Integration Routing: Maps your use case (one-time payments, subscriptions, marketplaces, usage-based billing, tax compliance, embedded finance) to the correct Stripe API, such as Checkout Sessions, Accounts v2, or Metronome. - Critical Rule Enforcement: Blocks deprecated patterns like the Charges API, payment_method_types hardcoding, v1 Connect account types, and global API key configuration. - Security Guidance: Covers restricted API keys, secrets vaults, webhook signature verification, CSP headers, OAuth state parameters, and incident response for compromised keys. - Use Case: You are building a marketplace and need to onboard sellers. The Skill directs you to Accounts v2 with dashboard: "express", destination charges, and the correct capability checks instead of deprecated v1 account types. ## Quick Start Ask how to accept subscription payments with Stripe and collect sales tax for EU customers.

Frequently Asked Questions about stripe-best-practices

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I accept one-time payments with Stripe?

Use the Checkout Sessions API via checkout.sessions.create for one-time payments. Omit payment_method_types entirely so Stripe dynamically shows the most relevant payment methods, and handle fulfillment in a webhook handler for checkout.session.completed.

Should I use Checkout Sessions or PaymentIntents for Stripe payments?

Use Checkout Sessions for on-session payments since it handles discounts, shipping, and tax automatically. Use PaymentIntents for off-session payments or when you need to model checkout state independently. Never use the deprecated Charges API.

How do I set up Stripe Connect for a marketplace?

Create connected accounts with the Accounts v2 API (POST /v2/core/accounts), never the deprecated type: express/custom/standard pattern. Marketplaces default to dashboard: express, destination charges, and application as fees_collector and losses_collector.

Why is Stripe Tax collecting zero tax on my transactions?

Zero tax usually means automatic_tax is enabled without an active registration in the customer's jurisdiction, or the product has a Nontaxable tax code. Check the line item's taxability_reason and verify registrations with the Tax Registrations API.

Are Stripe webhooks required for subscriptions?

Yes, webhooks are required for subscriptions because renewals, failed payments, and cancellations happen asynchronously after checkout. Handle customer.subscription.*, invoice.paid, and invoice.payment_failed events, and always verify webhook signatures.

Should I use a secret key or restricted API key for Stripe?

Use a restricted API key (rk_ prefix) with only the permissions your integration needs, following least privilege. Store keys in a secrets vault like AWS Secrets Manager or Azure Key Vault, never in source code or client-side code.