Stripe Webhook Testing Skill

SkillCommerce & finance

Set up Stripe CLI to forward webhooks to local development server for testing Stripe integrations

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Stripe Webhook Testing Skill skill

What this skill tells your AI

The instructions your AI receives, as published by ahtavarasmus/lightfriend in .agents/skills/stripe-webhook-testing/SKILL.md and read by ahel’s review.

This skill should be used when the user wants to test Stripe webhooks locally during development.

Prerequisites

  • Stripe CLI installed (brew install stripe/stripe-cli/stripe on macOS)
  • Backend server running on port 3000
  • Stripe test mode API keys configured in .env

Setup Process

Step 1: Ensure Webhook Endpoint Exists

The backend must have a webhook endpoint at /api/stripe/webhook. Verify this in:

  • backend/src/main.rs - route definition
  • backend/src/handlers/stripe_handlers.rs - handler implementation

Step 2: Start Backend Server

Ensure the backend is running:

cd backend && cargo run

The server must be running before starting Stripe CLI forwarding.

Step 3: Start Stripe CLI Forwarding

Run the following command to forward webhooks to localhost:

stripe listen --forward-to localhost:3000/api/stripe/webhook

The CLI will output a webhook secret starting with whsec_....

Step 4: Configure Webhook Secret

  1. Copy the webhook secret from the CLI output
  2. Add or update STRIPE_WEBHOOK_SECRET in backend/.env:
    STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxx
    
  3. Restart the backend server to pick up the new secret

Step 5: Trigger Test Events

Use Stripe CLI to trigger test webhook events:

# Subscription events
stripe trigger customer.subscription.created
stripe trigger customer.subscription.updated
stripe trigger customer.subscription.deleted

# Checkout events
stripe trigger checkout.session.completed

# Invoice events
stripe trigger invoice.paid
stripe trigger invoice.payment_failed

Step 6: Verify in Logs

Check backend console output for:

  • "Stripe webhook received"
  • "Stripe signature header found"
  • "Stripe event verified successfully"
  • Processing messages for specific event types

Supported Webhook Events

The backend currently handles:

  • customer.subscription.created - New subscription activated
  • customer.subscription.updated - Subscription modified
  • customer.subscription.deleted - Subscription cancelled
  • checkout.session.completed - Checkout completed

Troubleshooting

  • Signature verification failed: Ensure STRIPE_WEBHOOK_SECRET matches the secret from stripe listen
  • Endpoint not found: Verify backend is running on port 3000
  • Events not triggering: Run stripe listen first, then trigger events in a new terminal

Signals

GitHub stars
78
Forks
9
Last commit
Sep 2026

ahel review

  • S4info
    community integration — published by ahtavarasmus, not stripe

Automated review, not a security audit. Ruleset v1.

Advanced
Catalog kind
skill
Gateway key
stripe-webhook-testing
Source
github.com/ahtavarasmus/lightfriend