Preview: SendMock has no stable release yet. These docs follow develop.
SendMock
Webhooks

Deliveries

The log of every request SendMock sent to your app, with its answer, retries, replay and edit and replay.

Try it in the demo.

Every request SendMock sends to your app is logged here: rule deliveries, status callbacks, reply webhooks, inbound routes, payment notifications, tests and manual sends.

The Deliveries log with a delivery open

What it solves

  • "My handler returned 500. What exactly did it get?" Request and response side by side.
  • Fixing a handler and trying the same request again, without making the event happen again.
  • Testing a payload your app should reject, by editing a real one.

How it connects

Gets fromSends to
Rules, status callbacks (SMS), reply webhooks (Numbers), inbound routes, gateway notifications (Payments), Send test, Send to webhook and the ComposerReplay to your app again
Save to Saved
its counts to the Overview and the bell (failed deliveries)

Use it

  1. Press G D or open Webhooks > Deliveries.
  2. Press the Failed chip to see only failures.
  3. Open one. Read your app's response on the right; fix your handler.
  4. Press Replay > Replay as-is. A new delivery appears; it should now succeed.

Everything on this screen

The log

A live table, newest first, 50 rows at a time ("Showing 50 of N", more as you scroll or press Load more): time, event, endpoint, trigger (auto, manual, replay, or chosen when a simulation picked the endpoint, with edited when the simulation sent an edited payload), status (the status code, or failed, exhausted, render failed, pending, cancelled with the error on hover), duration and attempt ("2 / 5"). Chips (All, Succeeded, Failed, Pending), an endpoint picker and an event picker narrow it; ?status=failed&endpoint=<id> opens it filtered.

The delivery drawer

  • Status, event, endpoint, trigger, attempt "N of M", duration, time, the next attempt while it will retry, the event id, and Caused by (the email or SMS behind it).
  • Attempts: every attempt of the same event, each opening its own detail.
  • Request and Response side by side (stacked on phones): method and URL, headers, and the body formatted when it is JSON, each with copy. Long responses are cut at 64 KB, and say so.
  • A render failed delivery shows the template error instead of a request ("Nothing was sent"), with a link to the endpoint.

Actions

ActionDoes
Copy as cURLthe request as a cURL command, to run it yourself
Replay > Replay as-issends the stored request again
Replay > Re-render with fresh valuesrenders the template again, with new random values and current variables
Edit and replayedit the body and headers first (JSON is checked), then Send edited request
Cancel retriesstops a delivery that would retry (asks first)
Savekeeps the request under a name in Saved

Every control and text, one by one: Deliveries in depth.

Customize

The retry schedule is per endpoint (Endpoints, Retries tab).

From the CLI, API and AI

On this page