About adding-stripe
A coding skill that guides implementation of Stripe payments, billing, and subscriptions in an application. It covers checkout, webhook processing, and an optional customer portal.
Key features
- 01Stripe SDK setup
- 02Checkout session endpoint
- 03Webhook signature verification
- 04Subscription event handling
- 05Optional billing portal
- 06Pricing page integration
Use cases
- 01Adding one-time or subscription payments
- 02Keeping subscription status synchronized
- 03Letting users manage subscriptions
- 04Testing webhooks locally with Stripe CLI
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ spencerpauly/ awesome-cursor-skills --skill adding-stripeAfter installing, type/adding-stripein Claude Code to confirm it loaded.
Details
From the project READMEAdd Stripe Payments
Use this skill when the user asks to add payments, billing, subscriptions, or Stripe integration.
Steps
-
Install the SDK
npm install stripe @stripe/stripe-js -
Add environment variables
STRIPE_SECRET_KEY=sk_test_... NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_... STRIPE_WEBHOOK_SECRET=whsec_... -
Create a Stripe client module — create
lib/stripe.ts:import Stripe from "stripe"; export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: "2024-12-18.acacia", }); -
Create a checkout API route — create an endpoint that creates a Stripe Checkout session:
const session = await stripe.checkout.sessions.create({ mode: "subscription", // or "payment" for one-time payment_method_types: ["card"], line_items: [{ price: priceId, quantity: 1 }], success_url: `${origin}/success?session_id={CHECKOUT_SESSION_ID}`, cancel_url: `${origin}/pricing`, customer_email: userEmail, }); return redirect(session.url!); -
Create a webhook handler — create a
POSTendpoint at/api/webhooks/stripe:- Verify the webhook signature using
stripe.webhooks.constructEvent. - Handle key events:
checkout.session.completed,customer.subscription.updated,customer.subscription.deleted,invoice.payment_failed. - Update your database with the subscription status.
- Verify the webhook signature using
-
Add customer portal (optional) — create an endpoint that redirects to
stripe.billingPortal.sessions.createso users can manage their subscription. -
Add pricing page UI — create a pricing page with plan cards that call the checkout API route.
Notes
- Always verify webhook signatures — never trust unverified payloads.
- Use Stripe CLI (
stripe listen --forward-to localhost:3000/api/webhooks/stripe) for local webhook testing. - Store the Stripe customer ID in your user database to avoid creating duplicate customers.
- Use
stripe.prices.listto fetch prices dynamically instead of hardcoding them.