Stripe Integration Expert
This skill provides production-grade Stripe integration patterns for subscriptions, one-time payments, usage-based billing, checkout sessions, webhooks, customer portal, and invoicing. It includes code examples for Next.js, Express, and Django, along with best practices for idempotency, proration, and testing.
✨ What it does
- Subscription lifecycle management with state machine and status values.
- Checkout session creation with trial periods and promotion codes.
- Upgrade/downgrade logic with proration preview and immediate or period-end changes.
- Idempotent webhook handler with signature verification and event deduplication.
- Usage-based billing via usage records for metered subscription items.
- Customer portal integration for self-service billing management.
🎯 When to use it
- Adding subscription billing to a web application for the first time.
- Implementing plan upgrades/downgrades with proration and credit handling.
- Building usage-based or seat-based billing with metered pricing.
- Debugging webhook delivery failures or ensuring idempotent processing.
- Migrating from a different payment provider or billing model.
🚀 How to use
Trigger the skill by asking for help with Stripe integration, such as 'Set up Stripe subscriptions' or 'Debug my Stripe webhooks'. Provide your framework (Next.js, Express, Django), current code, and specific requirements. The skill will generate code snippets and configuration examples.
📄 Output: Code examples and configuration snippets for Stripe integration, including checkout, webhooks, subscription management, and usage-based billing.
📦 Add this skill to Claude Code
# 1. Get the skills repo
git clone --depth 1 https://github.com/alirezarezvani/claude-skills /tmp/claude-skills
# 2. Copy this skill into your project (or ~/.claude/skills for all projects)
mkdir -p .claude/skills
cp -r /tmp/claude-skills/engineering-team/skills/stripe-integration-expert .claude/skills/stripe-integration-expertSkill source: engineering-team/skills/stripe-integration-expert/SKILL.md
⚠️ Good to know
Requires a Stripe account and API keys; assumes familiarity with the chosen framework and database setup.
❓ FAQ
How does the skill handle webhook idempotency?
It uses a processed events table to check if an event ID has been handled before, skipping duplicates, and returns a 500 error on processing failure so Stripe retries.
What are the subscription status values used in the database?
The status values are: trialing, active, past_due, canceled, cancel_pending, paused, and unpaid.
How can I test webhooks locally?
Use the Stripe CLI with stripe listen --forward-to localhost:3000/api/webhooks/stripe and trigger events with 'stripe trigger' commands.
🤖 Overview, features, install steps and FAQ were generated from the project's SKILL.md on Sep 4, 2026. Always check the original source before running commands.