webhook-integration

Verify HMAC signatures and process Dodo Payments webhook events idempotently.

Updated Feb 8, 2026
One-click install
npx skills add https://github.com/irchamaji/agents --skill webhook-integration-irchamaji
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: webhook-integration
Source: https://github.com/irchamaji/agents/tree/main/skills/webhook-integration
Command: npx skills add https://github.com/irchamaji/agents --skill webhook-integration-irchamaji

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill solves the problem of reliably receiving and processing Dodo Payments webhook events in real time without exposing your system to spoofed or replayed requests.

Core Features & Use Cases

  • Webhook signature verification: Validate incoming events using the webhook-signature and webhook-timestamp headers against DODO_PAYMENTS_WEBHOOK_SECRET to block unauthorized calls.
  • Event routing for payment and subscription lifecycle: Handle common event types such as payment.succeeded, payment.failed, subscription.active, subscription.cancelled, plus refunds, disputes, and license key creation.
  • Production-grade operational safeguards: Add timestamp freshness checks, implement idempotency using webhook-id, respond quickly with 200, and design handlers to be retry-safe.

Quick Start

Verify the webhook signature for POST requests and route event.type to the matching handler in your API endpoint.

Frequently Asked Questions about webhook-integration

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

FAQPage Schema
How do I verify Dodo Payments webhooks in my backend application?

To verify Dodo Payments webhooks, validate the HMAC signature and timestamp from request headers using your DODO_PAYMENTS_WEBHOOK_SECRET to block unauthorized or spoofed calls before parsing the JSON payload.

How do I handle duplicate webhook events for payment processing?

Handle duplicate webhook events by processing them idempotently using the unique webhook-id header, ensuring retried requests do not trigger duplicate downstream business logic for payment or subscription updates.

Does this webhook integration support FastAPI and Next.js backends?

Yes, this webhook integration supports FastAPI and Next.js backends, alongside Express.js and Go, to parse JSON event payloads, verify authenticity, and trigger downstream business logic for payment lifecycle updates.

What is the best way to prevent replay attacks on payment webhooks?

The best way to prevent replay attacks on payment webhooks is to enforce timestamp freshness checks alongside HMAC signature validation, rejecting outdated requests before routing events to your subscription or payment handlers.

How do I route Dodo Payments subscription events to specific handlers?

Route Dodo Payments subscription events by parsing the event.type field from the JSON payload and directing common types like subscription.active, subscription.cancelled, and payment.succeeded to matching downstream business logic handlers.

Why should my webhook endpoint respond with a 200 status quickly?

Your webhook endpoint should respond with a 200 status quickly to acknowledge receipt, preventing premature timeouts and retries from Dodo Payments while your retry-safe handlers process the event asynchronously.