stripe-dev

SKILL.md

Stripe Dev - Integration Orchestrator

Master skill that routes to specialized Stripe integration skills. Start here when building any Stripe integration.

When to Apply

Reference this skill when:

  • Starting a new Stripe integration
  • Choosing between Stripe products for a use case
  • Implementing cross-cutting patterns (webhooks, errors, testing)
  • Planning Stripe architecture for a project

Available Skills

Priority Skill Impact Use Case
1 stripe-payments CRITICAL Accept one-time payments, save cards
2 stripe-billing CRITICAL Subscriptions, invoicing, recurring revenue
3 stripe-connect HIGH Marketplace / platform payments
4 stripe-money-management HIGH Payouts, refunds, disputes, fraud
5 stripe-treasury MEDIUM Embedded finance, card issuing
6 stripe-revenue MEDIUM Tax, revenue recognition, reporting

Quick Reference

Routing by Goal

Goal Primary Skill Also Use
Accept card payments stripe-payments stripe-money-management
SaaS subscriptions stripe-billing stripe-payments
Marketplace payouts stripe-connect stripe-money-management
Usage-based pricing stripe-billing stripe-revenue
Embed banking features stripe-treasury stripe-connect
Multi-party payments stripe-connect stripe-payments
Fraud prevention stripe-money-management stripe-payments
Tax automation stripe-revenue stripe-billing
Financial reporting stripe-revenue stripe-money-management

Architecture by Stage

  • MVP: Checkout + Customer Portal + Payment Links
  • Growth: Payment Element + Webhooks + Stripe Tax
  • Platform: Connect + Treasury + Revenue Recognition + Sigma

Cross-Cutting Patterns

For detailed integration patterns: references/integration-patterns.md

SDK Setup

import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);

Webhook Verification

const event = stripe.webhooks.constructEvent(
  body, sig, process.env.STRIPE_WEBHOOK_SECRET!
);

Idempotency

await stripe.paymentIntents.create(
  { amount: 2000, currency: 'usd' },
  { idempotencyKey: `order_${orderId}` }
);

Error Handling

try {
  await stripe.paymentIntents.create({...});
} catch (err) {
  if (err instanceof Stripe.errors.StripeCardError) { /* declined */ }
  else if (err instanceof Stripe.errors.StripeRateLimitError) { /* retry */ }
  else if (err instanceof Stripe.errors.StripeInvalidRequestError) { /* fix */ }
}

Testing

  • CLI: stripe listen --forward-to localhost:3000/webhooks
  • Cards: 4242424242424242 (success), 4000000000000002 (decline)
  • 3DS: 4000002500003155 (required), 4000003800000446 (always)

Deep Dive References

  • references/integration-patterns.md - Full-stack architecture, database schemas, multi-product patterns
Weekly Installs
3
First Seen
Feb 24, 2026
Installed on
gemini-cli3
codex3
cursor3
opencode3
qoder2
codebuddy2