Skip to main content
POST
/
v1
/
me
/
webhooks
/
{id}
/
test
`POST /v1/me/webhooks/{id}/test` — send a synthetic signed payload to the registered URL and return what happened. Mirrors Stripe's "Send test webhook" button. The synthetic event carries the `x-pegana-test: true` header so subscribers can guard prod handlers (e.g. skip downstream order-fill on test deliveries).
curl --request POST \
  --url https://api.pegana.xyz/v1/me/webhooks/{id}/test \
  --header 'Authorization: Bearer <token>'
{
  "delivery_id": "<string>",
  "elapsed_ms": 1,
  "event_id": "<string>",
  "error": "<string>",
  "http_status": 1
}

Authorizations

Authorization
string
header
required

Session JWT issued by POST /v1/auth/telegram (Telegram Login Widget) or POST /v1/auth/magic/consume. Send as Authorization: Bearer <jwt>.

Path Parameters

id
string<uuid>
required

Webhook subscription id

Response

Delivery attempt result

Result of a single-shot delivery attempt. Returned as JSON to the caller so the operator can see exactly what happened.

delivery_id
string
required

Fresh per attempt — correlate with receiver-side logs.

elapsed_ms
integer
required

Wall-clock latency from request build to response received.

Required range: x >= 0
event_id
string
required

Stable id mirroring the body's alert_id (or a fresh UUID for test-send synthetic events).

error
string | null

Some(error) when the delivery did not return 2xx OR the request layer failed before sending.

http_status
integer<int32> | null

HTTP status from the receiver. None if the request failed before getting a response (DNS, timeout, TLS, SSRF guard).

Required range: x >= 0