Discord Webhooks
How to Test Discord Webhooks & Interactions Locally (2026)
Discord sends HTTP interactions (slash commands, buttons, modals) and app webhook events to your endpoint. Unlike most providers, Discord signs each request with Ed25519 — an asymmetric scheme you verify with your application's public key, not a shared HMAC secret.
Signature Header
X-Signature-Ed25519
Algorithm
Ed25519 (asymmetric, verified with your app's public key — not HMAC)
Setup Guide
- 1Create a free HookSense endpoint and run the CLI: `npx hooksense listen -p 3000 --path /api/integrations/discord`
- 2In the Discord Developer Portal → your app → General Information
- 3Set the Interactions Endpoint URL to your local app (Discord requires a valid Ed25519-signed PONG to the PING, so it must reach code that signs the response)
- 4Use HookSense to inspect every interaction Discord forwards through it
- 5Trigger a slash command or button to see the request land
Common Discord Webhook Events
PINGAPPLICATION_COMMANDMESSAGE_COMPONENTMODAL_SUBMITAPPLICATION_COMMAND_AUTOCOMPLETEENTITLEMENT_CREATEAPPLICATION_AUTHORIZEDForward to Localhost
Use HookSense CLI to forward Discord webhooks directly to your local development server:
npx hooksense listen -p 3000 --path /api/integrations/discordNo ngrok or tunnel setup required. Install with npm i -g hooksense or use npx.
Tips & Best Practices
- Discord uses Ed25519, not shared-secret HMAC — verify with your application's public key from the Developer Portal
- Discord validates the endpoint by sending a PING that needs a correctly signed PONG, so a bare 200 won't pass — forward to your app and inspect via HookSense
- The two headers to capture are X-Signature-Ed25519 and X-Signature-Timestamp; the signed payload is timestamp + rawBody
- Channel 'incoming webhooks' (posting messages to Discord) are outbound — you're the sender, so no inbound verification needed there
Related
Start Testing Discord Webhooks
Create a free endpoint and receive your first Discord webhook in seconds.
Get Started Free