billing-event-idempotency

Prevent duplicate Stripe webhook event processing with database-backed deduplication.

Updated Mar 29, 2026
One-click install
npx skills add https://github.com/marquesfelip/agents-and-skills --skill billing-event-idempotency
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: billing-event-idempotency
Source: https://github.com/marquesfelip/agents-and-skills/tree/main/skills/billing-event-idempotency
Command: npx skills add https://github.com/marquesfelip/agents-and-skills --skill billing-event-idempotency

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Prevent duplicate processing of Stripe webhook events by providing a durable, distributed idempotency mechanism that guards against replay attacks, concurrent deliveries, and restarts.

Core Features & Use Cases

  • Database-backed deduplication table keyed by stripe_event_id to guarantee processing is performed once.
  • End-to-end idempotent handling across worker instances and retries, including recovery for stuck events.
  • Patterns for outbound Stripe calls using deterministic idempotency keys to avoid duplicate charges and records.

Quick Start

Start by wiring the idempotent event processor as the first step in your Stripe webhook intake flow to ensure each event is processed once.

Frequently Asked Questions about billing-event-idempotency

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent duplicate Stripe webhook events from being processed?

Prevent duplicate Stripe webhook events by implementing a database-backed deduplication table keyed by stripe_event_id. This enforces idempotent handling across distributed systems, ensuring each event is processed exactly once.

Why does Stripe event replay cause duplicate charges in my billing pipeline?

Stripe event replays cause duplicate charges when concurrent deliveries or restarts process the same event multiple times. Enforcing idempotent handling with deterministic idempotency keys on outbound calls prevents these duplicate records.

What is the best way to handle concurrent Stripe webhook deliveries in a distributed system?

Handle concurrent Stripe webhook deliveries by enforcing idempotent processing across worker instances. A durable deduplication table with a primary key on stripe_event_id guarantees single processing and provides recovery for stuck events.

How do I set up Stripe webhook idempotency for my SaaS billing pipeline?

Set up Stripe webhook idempotency by wiring an idempotent event processor as the first step in your webhook intake flow. This requires a deduplication table and deterministic idempotency keys for outbound calls to avoid duplicate billing.

How do I recover stuck Stripe webhook events during distributed processing?

Recover stuck Stripe webhook events by implementing a recovery mechanism within your idempotent event processor. This durable system guards against restarts and ensures delayed or interrupted events complete safely without duplication.

Do I need a specific database schema to enforce idempotent Stripe billing?

You need a deduplication table with a primary key on stripe_event_id to enforce idempotent Stripe billing. This schema guarantees durable, distributed idempotency and prevents duplicate processing across replays and concurrent deliveries.