Skip to content

Webhook testing

Echopoint gives you instant inbound endpoints for webhook testing and debugging. Create an endpoint, point a provider (or curl) at the capture URL, and watch requests arrive in real time.

Open Webhooks in the app sidebar and create an endpoint. A name is the only required field. The endpoint is live immediately with a capture URL:

https://api.echopoint.dev/webhook/{id}
  • Accepts GET, POST, PUT, PATCH, and DELETE.
  • Requires no authentication — any sender can deliver to it, which is the point: paste it into a provider’s webhook settings and traffic flows straight in.
  • Every request is answered with a JSON receipt:
{
"message": "...",
"request_id": "...",
"received_at": "..."
}

Try it from a terminal:

Terminal window
curl https://api.echopoint.dev/webhook/wh_9f2k81?source=manual-test
Terminal window
curl -X POST https://api.echopoint.dev/webhook/wh_9f2k81 \
-H "Content-Type: application/json" \
-H "X-Signature: t=1717920000,v1=abc123" \
-d '{"event":"payment_intent.succeeded","amount":4200,"currency":"eur"}'

The endpoint page streams incoming requests over SSE — the UI shows Live stream connected while the stream is active, and new requests appear in the list the moment they arrive. No refresh, no polling. This is the fastest way to verify that a provider is actually sending, and what it sends.

Select any captured request to inspect:

  • Headers — everything the sender included, signature headers included.
  • Query parameters — parsed from the URL.
  • Body — the raw payload.
  • received_at — when the request reached Echopoint.

The request history is searchable. Filter and sort captured requests to find the one you care about — useful once a noisy provider has delivered a few hundred events to the same endpoint.

You do not need a terminal to exercise an endpoint: the app includes a testing panel that sends requests to the capture URL directly from the browser. Use it to seed an endpoint with sample traffic or to sanity-check the live stream.

Each endpoint has analytics showing request volumes over time and a breakdown by HTTP method, so you can see delivery patterns at a glance.

Once a webhook is flowing, the usual next move is to assert on your API’s behavior around it: build a flow that calls your API, extract values with outputs, then assert on status codes and response fields, and run it from CI on every commit.