How to Debug Discord Webhooks

Discord webhooks and interactions notify your bot about messages, reactions, slash commands, and server events. Discord uses a unique verification system with Ed25519 signatures for interaction endpoints.

What are Discord Webhooks?

Discord webhooks are HTTP POST requests that Discord sends to your server when specific events occur in your account. Rather than continuously polling the Discord API for updates, webhooks deliver real-time notifications the moment something happens — a payment completes, a user signs up, a deployment finishes, or any other tracked event.

Debugging these webhooks can be challenging because they originate from Discord's servers, not your browser. You can't simply open DevTools to inspect them. That's where WebhookVault comes in — capture every Discord webhook, inspect the full payload and headers, and replay them to your local development server.

Common Discord Webhook Events

EventDescription
INTERACTION_CREATEFired when a user invokes a slash command or interacts with a component
MESSAGE_CREATEFired when a message is sent in a channel your bot can see
GUILD_MEMBER_ADDFired when a new member joins a server
MESSAGE_REACTION_ADDFired when a reaction is added to a message

Setting Up Discord Webhooks with WebhookVault

Follow these steps to start capturing and debugging Discord webhooks using WebhookVault.

1Create a WebhookVault endpoint

Sign up for a free WebhookVault API key and create an endpoint to capture Discord webhooks.

curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints \
  -H "Authorization: Bearer wv_your_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "Discord Webhooks"}'

# Response:
# {"url": "https://webhookvault.anethoth.com/hook/abc123", "inspect_url": "https://webhookvault.anethoth.com/inspect/abc123"}

2Configure Discord to send webhooks

Go to the Discord Developer Portal > Applications > Your App Under General Information, set the Interactions Endpoint URL to your WebhookVault URL Discord will verify the endpoint with a PING interaction For Gateway events, configure your bot code to use the Events API

3Inspect captured requests

Once Discord sends a webhook, you can inspect every detail through the WebhookVault API or web inspector.

curl https://webhookvault.anethoth.com/api/v1/endpoints/abc123/requests \
  -H "Authorization: Bearer wv_your_key"

# Returns all captured Discord webhook requests with full headers, body, and metadata

4Replay to your local server

Replay any captured Discord webhook to your local development server for testing.

curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints/abc123/requests/1/replay \
  -H "Authorization: Bearer wv_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "http://localhost:3000/webhook"}'

# The original Discord webhook is replayed to your local server

Sample Discord Webhook Payload

Here is an example of a typical Discord webhook payload. Use WebhookVault to capture real payloads from your Discord account for accurate testing.

{
  "id": "1234567890",
  "type": 2,
  "data": {
    "id": "0987654321",
    "name": "ping",
    "type": 1
  },
  "guild_id": "1234567890",
  "channel_id": "0987654321",
  "member": {
    "user": {
      "id": "5678901234",
      "username": "testuser"
    }
  },
  "token": "interaction_token_here",
  "version": 1
}

Common Discord Webhook Issues

Here are the most common issues developers encounter when working with Discord webhooks, and how to resolve them.

Ed25519 signature verification

Discord requires Ed25519 signature verification for interaction endpoints. The X-Signature-Ed25519 and X-Signature-Timestamp headers must be validated.

PING response required

Discord sends a type 1 (PING) interaction that must receive a type 1 (PONG) response for endpoint verification.

3-second interaction timeout

Slash command interactions must be acknowledged within 3 seconds. Use deferred responses for longer processing.

Rate limiting

Discord rate limits webhook deliveries. Respect 429 responses and implement exponential backoff.

Frequently Asked Questions

What are Discord webhooks?

Discord webhooks are HTTP callbacks that Discord sends to your server when specific events occur. Instead of polling the Discord API for changes, webhooks push real-time notifications to your application, making your integration more efficient and responsive.

How do I test Discord webhooks locally?

Use WebhookVault to capture Discord webhooks in the cloud, then replay them to your localhost. Create a WebhookVault endpoint, configure Discord to send webhooks to it, and use the replay API to forward captured requests to http://localhost:3000/webhook (or your local port).

How do I verify Discord webhook signatures?

Most webhook providers, including Discord, sign their webhook payloads to prove authenticity. Check the Discord documentation for the specific signature header and verification algorithm. Use WebhookVault to capture and inspect the raw headers to debug signature verification issues.

Why is WebhookVault better than ngrok for Discord webhook testing?

Unlike ngrok, WebhookVault captures and stores every webhook request with full headers and payloads. You can replay any Discord webhook to your local server as many times as needed, inspect historical requests, and share webhook data with your team. No tunnel to maintain or port to expose.

Start debugging Discord webhooks now

Create a free WebhookVault endpoint in seconds. Capture, inspect, and replay Discord webhooks with zero configuration.

Get Free API Key