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.