Resend webhook address and secret

Help Center › Get your API keys › Resend webhook address and secret

Resend webhook address and secret

Point Resend at VisionScaper for bounces and complaints, and understand a signature mismatch in the current code.

A webhook lets Resend tell VisionScaper when a message was delivered, bounced, or flagged as spam.

Warning: Read “Known gap” first. VisionScaper’s signature check may not match Resend’s.

Before you start

  • Resend is set up (see “Get your Resend API key”).

Steps

  1. In WordPress open Settings → VisionScaper Messaging. The page prints a Webhook address only in the Texts section for Telnyx. For the other services, the address follows the same pattern: /wp-json/dreamscaper/v1/msg/webhook/resend on your site. (The plugin registers that path. The page does not print it for Resend. Not verified on screen.)
  2. In the Resend Dashboard, add a webhook. Resend’s overview says: create a route that takes POST requests, then define a webhook with its URL and the events. The exact menu path is on Resend’s “Create webhook” page, which I did not open.
  3. Choose these events: email.delivered, email.bounced, email.complained, email.failed. Those are the names the code looks for. Resend’s overview did not list names, so confirm them in Resend.
  4. Open the webhook’s details page. Resend says the signing secret is there.
  5. Paste the secret into Resend webhook secret and save.

What VisionScaper does

Event Result
email.delivered Delivered
email.bounced Bounced; contact marked bounced
email.complained Opt-out recorded
email.failed Failed

Known gap: the signature check

  • VisionScaper expects a header X-Resend-Signature holding the hex HMAC-SHA256 of the raw body using your Resend webhook secret.
  • Resend’s docs say it signs with Svix and sends svix-id, svix-timestamp and svix-signature headers.
  • These do not look compatible. Whether a bridge exists is not verified. If so, VisionScaper answers “Bad signature” (403) and ignores the event. Sending is not affected.
  • Until the VisionScaper team confirms, do not count on bounce handling from Resend. Use Postmark for marketing email if you need it.

Tips

  • Pass the raw body when verifying. Re-formatted JSON breaks any signature check.
  • Look at Resend’s webhook log for failures.

If something goes wrong

  • 403 in Resend’s log. See the known gap.
  • No events at all. Wrong address or wrong events selected.

Sources

  • Resend, webhooks introduction: https://resend.com/docs/dashboard/webhooks/introduction (read 2026-10-15)
  • Resend, verify webhook requests: https://resend.com/docs/webhooks/verify-webhooks-requests
  • Plugin: includes/messaging-providers.php.

Related articles

Still need help?

Tell us what you were trying to do and a person will reply.

Contact support