Webhook Ping¶
Sent to verify an endpoint: once when a webhook URL is saved from the
Beyond dashboard, and whenever a test ping is requested there. It carries no
domain change. Answer any 2xx and discard the body.
| Event type | webhook.ping |
| Resource type | webhook-ping-events |
| Triggered by | Saving a webhook URL or sending a test ping from the dashboard (personal users) |
When It Fires¶
A personal user configures their webhook from the Beyond dashboard. Beyond
persists a new URL only after a signed ping to it returns a 2xx, and the
dashboard's "Send test ping" action sends the same ping on demand. The ping is
signed with the user's signing secret like every other delivery, so a receiver
that enforces signatures from day one passes verification.
sequenceDiagram
participant U as Dashboard
participant BP as Beyond Pricing
participant P as Your Endpoint
U->>BP: Save URL
BP->>P: POST signed webhook.ping (no redirects, timeout)
alt Any 2xx
P-->>BP: 200 OK
BP-->>U: URL saved, verified
else 3xx / other status / timeout / network error
P-->>BP: error
BP-->>U: URL not saved, reason shown
end
A ping is not gated on your event selection: it is sent even when
webhook.ping is not in your subscribed events, because its purpose is to
confirm the endpoint before any real event is delivered. It is sent once and
never retried; a failed ping changes nothing on Beyond's side.
Payload¶
{
"meta": {
"type": "webhook.ping",
"sent-at": "2026-08-20T12:34:56Z"
},
"data": {
"type": "webhook-ping-events",
"id": "msg_01K2Z6M0K3QK7YV8N2C4B5A6D7",
"attributes": {
"message": "Beyond webhook endpoint verification"
},
"relationships": {
"user": {
"data": { "type": "users", "id": "456" },
"links": { "related": "https://developers.beyondpricing.com/api/v1/users/456/" }
}
}
}
}
The meta envelope is documented in the Payload
Envelope section.
data.attributes¶
| Field | Type | Description |
|---|---|---|
message |
string | Human-readable reason for the ping. Informational only. |
data.relationships¶
| Relationship | Description |
|---|---|
user |
The Beyond user whose webhook is being verified ({ "type": "users", "id": … }). |
Handling Tips¶
- Verify the signature, then return
200(or any2xx) without doing any work. A slow handler can hit the timeout and the URL is not saved. - Do not follow the event with a lookup: the ping describes no change.
- Route on
meta.typeand treatwebhook.pinglike any other unknown type: acknowledge and ignore.