plugins/stripe/skills/stripe/SKILL.md
Stripe payments knowledge base - API patterns, checkout optimization, subscription lifecycle, pricing strategies, webhook reliability, Firebase integration, cost analysis, and revenue modeling. Loaded by stripe-integrator and revenue-optimizer agents; also consumable directly when the user asks for Stripe-specific patterns without needing an agent. TRIGGER WHEN: working with Stripe API (Payment Intents, Customers, Subscriptions, Checkout Sessions, Connect, webhooks, tax, usage-based billing), pricing strategy, or revenue modeling. DO NOT TRIGGER WHEN: payment work is non-Stripe (PayPal, Square, crypto) or the task is generic e-commerce unrelated to payments.
npx skillsauth add acaprino/anvil-toolset stripeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Unified reference for Stripe integrations. Content is split across references/ (topic-specific patterns) and scripts/ (ready-to-run helpers).
references/api-cheatsheet.md and references/stripe.mdreferences/typescript-nextjs.mdreferences/embedded-checkout.mdreferences/webhooks-production.mdreferences/billing-meters.md (legacy usage_type=metered was removed in 2025-03-31.basil)references/entitlements.mdreferences/stripe-agent-toolkit.mdreferences/test-clocks.mdreferences/pci-dss-4-checklist.mdreferences/subscription-patterns.md, references/usage-revenue-modeling.mdreferences/checkout-optimization.mdreferences/pricing-patterns.mdreferences/firebase-integration.mdreferences/stripe-patterns.mdreferences/cost-analysis.mdReference style note: the newer references (billing-meters, entitlements, webhooks-production, typescript-nextjs, embedded-checkout, stripe-agent-toolkit, test-clocks, pci-dss-4-checklist) intentionally link to official Stripe docs for canonical code samples instead of mirroring them locally. Local content is limited to non-obvious gotchas and decision criteria.
Ready-to-run Python helpers (adapt to your project; require STRIPE_SECRET_KEY env var):
scripts/setup_products.py -- bootstrap Products and Prices for a new projectscripts/stripe_utils.py -- shared utility functions used by the other scriptsscripts/sync_subscriptions.py -- reconcile local DB vs Stripe subscription statescripts/webhook_handler.py -- signature-verified webhook receiver template with idempotencyscripts/webhook_audit.py -- report gaps between configured webhook endpoints and the must-have event catalogscripts/simulate_subscription.py -- walk a test-clock subscription through trial end, renewal, failed payment, and recoveryAll scripts live at ${CLAUDE_PLUGIN_ROOT}/skills/stripe/scripts/<name>.py. Agents should reference them by that path.
Stripe's current version (May 2026) is 2026-05-27.dahlia. Versions follow the pattern YYYY-MM-DD.<release> where the release name (acacia, basil, dahlia, ...) signals major-release boundaries. Monthly point releases are backwards-compatible within a release name.
Pin an explicit version in all server-side code:
import stripe
stripe.api_version = "2026-05-27.dahlia"
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
apiVersion: '2026-05-27.dahlia',
});
The modern Node and Python SDKs bake a default API version into each SDK release, so the SDK itself pins requests unless you override. Prefer explicit pinning on the constructor anyway -- it's the one line that documents which version your integration was written against.
Breaking changes to know about:
2025-03-31.basil removed the legacy usage records API (SubscriptionItem.create_usage_record and bare usage_type=metered prices). All metered prices must now be backed by a Meter. See billing-meters.md.subscription.current_period_end moved to subscription.items.data[0].current_period_end. If your code reads the top-level field, you'll break on any modern version.Dashboard -> Workbench shows your account's default version. Account defaults lag major releases; never rely on the default -- pin explicitly.
stripe.Webhook.construct_event on every eventevent.id (Stripe retries within a 3-day window)2xx within 10 seconds; defer heavy work to a queuestripe events resend during developmentSee references/webhooks-production.md for the full treatment (event catalog by use-case, multi-environment strategy, audit checklist) and scripts/webhook_handler.py for a working implementation.
subscription.current_period_end at top level -- it moved to subscription.items.data[0].current_period_end in newer API versions; verify against your pinned versioncustomer.default_source -- deprecated in favor of invoice_settings.default_payment_methodprice.id as the product identifier -- price.id changes on any price update; use product.id for stable referencesautomatic_payment_methods: { enabled: true } on Payment Intents -- customers get a default payment-method list that often excludes wallets and BNPLSubscriptionItem.create_usage_record -- removed in API 2025-03-31.basil. Migrate to stripe.billing.MeterEvent.create (see references/billing-meters.md).plan.features map when your billing lives in Stripe -- use Stripe Entitlements and cache via the entitlements.active_entitlement_summary.updated webhook (see references/entitlements.md).revenue-optimizer agent (same plugin)stripe-integrator agent (same plugin)stripe-webhooks-auditor agent + /stripe:audit-webhooks commandbusiness:privacy-doc-generatorplatform-engineering:platform-reviewerdevelopment
Quality gates for multi-reviewer code review pipelines: adversarial verification panel, completeness critic, reviewer pipeline conventions, and the context sharing pattern for parallel reviewers. TRIGGER WHEN: running /senior-review:team-review quality gates; running /senior-review:code-review Steps 4b/4c (adversarial verification and completeness check); consolidating or deduplicating findings from multiple parallel reviewers. DO NOT TRIGGER WHEN: single-reviewer style review without a consolidation phase, or generic team coordination (the upstream agent-teams skills cover that).
development
Knowledge base for pure-architecture decisions on when to unify duplicated logic into a shared abstraction versus leave it duplicated. Covers the canonical theory (Rule of Three, DRY/WET/AHA, Wrong Abstraction, Locality of Behaviour, Bounded Contexts, Tidy First options framing, CUPID vs SOLID), 12 essential-duplication patterns that justify unification, 12 wrong-abstraction patterns that justify inlining or decomposition, an operational decision frame, and a verified reading list. TRIGGER WHEN: the user is making an architectural decision about whether to centralize, extract, or remove a layer; reviewing an abstraction for premature generality; auditing scattered cross-cutting concerns; spawned by the abstraction-architect agent during /abstraction-architect:audit or as the Abstraction dimension of /senior-review:team-review or /senior-review:code-review; the user asks "should I extract this into a service" / "is this DRY enough" / "is this wrong abstraction". DO NOT TRIGGER WHEN: the task is code formatting and readability cleanup (use clean-code:clean-code), Python-specific refactoring with metrics (use python-development:python-refactor), generic dead-code removal (use senior-review:cleanup-dead-code), security review (use senior-review:security-auditor), or pure pattern-consistency review without an architecture lens (use senior-review:code-auditor).
development
Unified web frontend knowledge base covering CSS architecture, UX psychology, UI components, distinctive aesthetics, and interface design generation. TRIGGER WHEN: working on web styling, design systems, component decisions, responsive strategy, distinctive frontend aesthetics, or exploring multiple interface designs. DO NOT TRIGGER WHEN: the task is purely backend or unrelated to web frontend.
development
Knowledge base for implementing Google Analytics 4 (GA4) and Google Tag Manager (GTM) on websites, with deep coverage of EU/GDPR Consent Mode v2 compliance, CMP selection (iubenda, Orestbida CookieConsent), event taxonomy, conversion (Key Event) configuration, remarketing audiences, framework-specific integration (vanilla HTML, Next.js, React, WordPress), Microsoft Clarity and Search Console integration, and diagnostic patterns for low-traffic sites. TRIGGER WHEN: implementing or auditing GA4, GTM, gtag, dataLayer, Consent Mode v2, cookie banner, conversion tracking, Key Events, remarketing audiences, Google Ads conversion import, Enhanced Conversions, or diagnosing why a site has traffic but no conversions. DO NOT TRIGGER WHEN: the task involves non-Google analytics (Matomo, Plausible, Fathom), server-side analytics infrastructure unrelated to GA4/GTM, BigQuery export pipelines, or pure SEO work without a measurement layer.