Early bird discounts live! Claim your offer

Testing & Debugging Webhooks

Fire a test payload, inspect the delivery log, and manually retry failed deliveries without waiting for the production trigger.

You don't need to wait for a real subscription to exercise a webhook endpoint. MemberPass has three tools for development and on-call.

Fire a synthetic delivery

From the dashboard: Settings → Webhooks → [endpoint] → Test fire. From the API:

curl -X POST https://api.memberpass.net/v1/webhook-endpoints/$ID/test \
  -H "Authorization: Bearer $MP_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

The test fire:

  • Creates a pending delivery row with a synthetic subscription.created payload.
  • Signs the payload with the current secret.
  • Routes it through the same Horizon queue that real deliveries use.
  • Returns the new delivery_id so you can watch its progress.

The test-fire endpoint is rate-limited to 5/min per token — enough for development cadence, low enough that an accidental loop can't flood your target.

Inspect the delivery log

Every delivery (real or synthetic) shows up in Settings → Webhook Deliveries with:

  • Endpoint name
  • Event name
  • Status (pending / delivered / failed / dead)
  • HTTP status returned by your handler
  • Response body excerpt (first 4KB)
  • Number of attempts so far
  • Created-at timestamp

Filter by status via the tab bar at the top. Use "Dead-lettered" to find rows that have exhausted retries.

Use webhook.site for a quick inspection

When you need to see exactly what we POST, the canonical move is:

  1. Visit webhook.site and copy the unique inbox URL.
  2. Register a MemberPass webhook endpoint pointing at it with whatever events you want to see.
  3. Trigger the flow (or fire a test delivery — see above).
  4. webhook.site shows the raw headers, body, and your response.

Tear down the inbox when you're done so test deliveries don't keep flowing.

Manually retry a failed or dead row

From the dashboard: Settings → Webhook Deliveries → Retry on a row. From the API:

curl -X POST https://api.memberpass.net/v1/webhook-deliveries/$DELIVERY_ID/retry \
  -H "Authorization: Bearer $MP_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Retry resets status to pending, attempts to 0, and clears next_attempt_at. The job fires again on the next Horizon tick.

Common failure modes

SymptomLikely cause
HTTP 401 or 403 from your handlerSignature verification rejecting payload — check you're using the latest secret and the raw body (not JSON-reparsed).
Connection refusedTarget service down, or behind a firewall the webhook worker can't reach.
SSL handshake failedExpired certificate or a custom CA. MemberPass validates the full chain.
DNS resolution failedAllowed-IPs check failed (if you set one) or DNS truly broken.
Delivery succeeds but downstream never firesYour handler returned 200 but crashed before enqueuing the work. Queue it first, then respond.

How is this guide?

On this page

MemberPass is a product designed by you — for you.

No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request