Skip to main content
POST
Send a test event

Authorizations

Authorization
string
header
required

Server API key, scoped. pk_test_ keys hit the sandbox tenant.

Headers

Idempotency-Key
string

Optional on non-money POSTs; honoured when sent.

Required string length: 1 - 255
X-Request-Id
string

Optional client correlation id, up to 128 characters. It is not echoed: the response's X-Request-Id is always our own req_… id. We log your value with the request as client_request_id, so support can find a request by either id. A longer value is refused with 400 parameter_invalid.

Maximum string length: 128

Path Parameters

webhook_id
string
required

Webhook endpoint id.

Pattern: ^whe_[0-9A-HJKMNP-TV-Z]{26}$

Body

application/json

Optional choice of event type.

type
string

One of the endpoint's enabled_events; defaults to the first. The event carries sample data and is not listed in /v1/events.

Pattern: ^[a-z_]+(\.[a-z_]+)+$
Example:

"payment.completed"

Response

Sent; see response_status.

One event delivered (or being delivered) to one endpoint, with every attempt. At least once, in order per endpoint, exponential backoff over the retry window ([Retry window] in the designs); then failed and the developer is emailed. 2xx = success. Kept 90 days, then summary only (bodies dropped).

id
string
required

Delivery id.

Pattern: ^wdl_[0-9A-HJKMNP-TV-Z]{26}$
object
string
required

Always webhook_delivery.

Allowed value: "webhook_delivery"
webhook_id
string
required

Endpoint.

Pattern: ^whe_[0-9A-HJKMNP-TV-Z]{26}$
event_id
string
required

Event delivered (also the PanoFlow-Event-Id header).

Pattern: ^evt_[0-9A-HJKMNP-TV-Z]{26}$
event_type
string
required

Event type, <resource>.<event> (e.g. payment.completed). The catalogue is asyncapi/webhooks.yaml and GET /event-types; clients must tolerate new types.

Pattern: ^[a-z_]+(\.[a-z_]+)+$
Example:

"payment.completed"

livemode
boolean
required

Mode.

status
enum<string>
required

pending (queued), succeeded, retrying (failed, another automatic attempt is scheduled), failed (retry window over).

Available options:
pending,
succeeded,
retrying,
failed
attempts_count
integer
required

Attempts so far.

Required range: x >= 0
attempts
object[]
required

All attempts, oldest first.

created_at
string<date-time>
required

Created.

Example:

"2026-10-27T08:41:00Z"

updated_at
string<date-time>
required

Last attempt or state change.

Example:

"2026-10-27T08:41:00Z"

response_status
integer

Status of the latest attempt.

Required range: 100 <= x <= 599
latency_ms
integer

Latency of the latest attempt.

Required range: x >= 0
next_retry_at
string<date-time>

When retrying: next automatic attempt.

Example:

"2026-10-27T08:41:00Z"

request_body
string

Retrieve only: the exact signed JSON body sent.

response_body
string

Retrieve only: your server's latest response body, first 4 KB.

Maximum string length: 4096