BlogHeroku Webhooks

How to Test Heroku Webhooks

Heroku app webhooks notify your services about app, build, dyno, formation, release, addon, and domain events — enabling deployment tracking, alerting, and post-deploy automation.

Heroku Official Webhook Docs

1. Heroku Webhook Events

Heroku can send the following webhook events to your endpoint:

api:app
api:build
api:dyno
api:formation
api:release
api:addon
api:domain

2. Set Up a Test Endpoint with HookRay

Follow these steps to start receiving Heroku webhooks for testing:

  1. Go to HookRay and click "Start Testing — Free" to get your unique webhook URL.
  2. Copy the URL (e.g., https://h.hookray.com/abc123).
  3. In your Heroku dashboard, navigate to the webhook settings and paste the HookRay URL as your endpoint.
  4. Select the events you want to receive (see list above).
  5. Trigger a test event — HookRay will show the incoming webhook in real-time.

3. Sample Heroku Webhook Payload

Here's an example of what a Heroku webhook payload looks like:

payload.json
{
  "id": "01234567-89ab-cdef-0123-456789abcdef",
  "version": "application/vnd.heroku+json; version=3",
  "action": "create",
  "resource": "release",
  "created_at": "2026-04-23T14:50:00Z",
  "data": {
    "id": "rel_abcdef123456",
    "version": 42,
    "status": "succeeded",
    "slug": {
      "id": "slug_xyz789"
    },
    "app": {
      "id": "app_123abc",
      "name": "hookray-web"
    },
    "user": {
      "email": "deploy-bot@example.com"
    }
  }
}

4. Frequently Asked Questions

How do I test Heroku webhooks without deploying?

Use HookRay to get an instant public webhook URL. Paste it into your Heroku dashboard's webhook configuration, trigger an event, and watch the payload arrive in real time. No code, no ngrok, no deployment. The free tier captures 100 requests per month and works for all Heroku event types.

Why aren't my Heroku webhooks arriving?

Four common causes: (1) the endpoint URL isn't publicly accessible — Heroku can't reach localhost; (2) the wrong events are subscribed in your dashboard; (3) signature verification is rejecting the request before your handler runs; (4) a firewall, expired SSL certificate, or DNS misconfiguration is blocking Heroku's requests. Use HookRay's URL to isolate which of these four is failing.

Why am I getting 400 or 500 errors from my Heroku webhook?

Heroku reports the status code your endpoint returned. HookRay accepts any payload and returns 200 OK by default, so if you see 400/500 while pointing at HookRay, the issue is in Heroku's configuration. If you point at your own endpoint and get 400/500, capture the request with HookRay, replay it locally, and debug from the captured payload.

How do I verify Heroku webhook signatures?

Heroku signs each request with a shared secret. Capture the raw headers and body using HookRay, then verify the signature in your application using Heroku's SDK or a standard HMAC library. Once verification works against HookRay-captured data, you can safely deploy.

Can I replay a captured Heroku webhook?

Yes — HookRay's replay feature re-sends any captured webhook with one click. This is the fastest way to fix a buggy handler: capture the payload once, fix your code, replay until it works. No need to re-trigger events in Heroku.

5. Next Steps

  • Use HookRay's webhook replay feature to re-send captured webhooks while building your handler
  • Enable smart parsing (Pro plan) to see Heroku-specific fields highlighted automatically
  • Check the Heroku webhook documentation for the complete event reference

Ready to test Heroku webhooks?

Get a free webhook URL in 5 seconds. No signup required.

Start Testing Heroku Webhooks — Free

Free PDF: Webhook Testing Cheat Sheet 2026

One-page reference for 50+ APIs — canonical events, signing methods, sample payloads. Print it, pin it, share it.

📄 Download the cheat sheet (PDF, 180KB)