getqarote

Webhook Idempotency Fix — Development skill for Claude Code

Development community

Webhook Idempotency Fix for License Renewals.

How to install Webhook Idempotency Fix

Installs to ~/.claude/skills/getqarote-qarote-webhook_idempotency_fix/SKILL.md

Terminal
mkdir -p ~/.claude/skills/getqarote-qarote-webhook_idempotency_fix && curl -fsSL https://raw.githubusercontent.com/getqarote/Qarote/HEAD/.claude/skills/WEBHOOK_IDEMPOTENCY_FIX.md -o ~/.claude/skills/getqarote-qarote-webhook_idempotency_fix/SKILL.md

Restart Claude Code, or start a new session, for it to be picked up.

What Webhook Idempotency Fix does

Webhook Idempotency Fix for License Renewals

Issue Summary

The license renewal logic in `handleInvoicePaymentSucceeded` webhook handler lacked an idempotency check. When Stripe delivered the same `invoice.payment_succeeded` webhook multiple times (which is normal webhook behavior), the code would process the same license renewal multiple times.

Impact

Each duplicate webhook delivery would:

  1. Increment currentVersion - Version would increase beyond the actual number of renewa

Alternatives in Development

Full documentation available on GitHub

View Source Repository