stripe-best-practices

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

2|Updated Aug 12, 2026
One-click install
npx skills add https://github.com/prianshumitra/Rentify --skill stripe-best-practices-prianshumitra
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: stripe-best-practices
Source: https://github.com/prianshumitra/Rentify/tree/main/backend/.agents/skills/stripe-best-practices
Command: npx skills add https://github.com/prianshumitra/Rentify --skill stripe-best-practices-prianshumitra

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Stripe integrations fail in predictable ways: deprecated APIs get used, webhooks get skipped, automatic_tax silently collects nothing, and Connect accounts get misconfigured. This Skill routes every Stripe question to the correct current API and enforces the critical rules that prevent these mistakes. ## Core Features & Use Cases - Integration Routing: Maps your use case (one-time payments, subscriptions, marketplaces, tax, Treasury) to the correct Stripe API, such as Checkout Sessions versus PaymentIntents or Accounts v2 for Connect. - Critical Rule Enforcement: Blocks common errors like passing payment_method_types, enabling automatic_tax without an active registration, using deprecated Charges/Sources APIs, or using global API key patterns. - 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 with vendor payouts. The Skill directs you to Accounts v2 with express dashboard, destination charges, application_fee_amount, and the correct v2 capability checks before go-live. ## Quick Start Ask how to accept subscription payments with Stripe for a SaaS product and follow the routed guidance for Checkout Sessions, Billing APIs, webhooks, and tax setup.

Frequently Asked Questions about stripe-best-practices

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

FAQPage Schema
Should I use Checkout Sessions or PaymentIntents for Stripe payments?▼

Use Checkout Sessions for on-session payments, including one-time purchases and subscriptions, since it handles discounts, shipping, and tax automatically. Use PaymentIntents for off-session payments or when you need to model checkout state independently.

How do I set up Stripe Connect for a marketplace?▼

Use the Accounts v2 API (POST /v2/core/accounts) with configuration.recipient requesting stripe_transfers, dashboard set to express, and destination charges with application_fee_amount. Never use deprecated v1 account types like express, custom, or standard in account creation.

Why is Stripe automatic_tax collecting zero tax?▼

The most common cause is no active tax registration in the customer's jurisdiction; Stripe collects nothing and returns no error. Check the line item's taxability_reason, verify the product tax code is not Nontaxable, and confirm registrations via the Tax Registrations API.

Can I pass payment_method_types when creating a PaymentIntent?▼

No, omit payment_method_types entirely so Stripe dynamically shows the most relevant payment methods based on currency, location, and amount. The only exception is Terminal in-person payments, which require ['card_present']. Use payment_method_configurations to customize methods instead.

Are webhooks required for a Stripe subscription integration?▼

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 before processing.

What is the difference between restricted and secret Stripe API keys?▼

Restricted API keys (rk_ prefix) have only the permissions you assign, limiting damage if compromised, while secret keys (sk_ prefix) grant full account access. Default to restricted keys with least-privilege permissions, stored in a secrets vault rather than source code.