Send a test event
POST
/v1/webhooks/{webhook_id}/test
curl -X POST "https://us1.platform.bird.com/v1/webhooks/{webhook_id}/test" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"event_type": "email.delivered"
}'Sends a signed synthetic event to the endpoint's URL and returns the outcome
synchronously: whether your endpoint accepted it, the HTTP status it returned, and the
round-trip latency. Use it to verify your receiver is reachable and its signature
verification is correct. An unreachable endpoint is reported in the response body as
status: failed, not as a request error. Your endpoint has 10 seconds to respond.
The test body is a minimal JSON stub carrying only the event type (it does not
mirror a real event payload), signed exactly like a real delivery. Test sends go
straight to your endpoint: they work on a paused endpoint and are not recorded in
List delivery attempts.
A 412 means the endpoint cannot be tested yet: it has no valid signing secret, or no
subscribed event types to fall back on when event_type is omitted.
Anfrage-Nutzlast
event_type
string
Event type to simulate. Any type from the event catalog is accepted, whether or not the endpoint subscribes to it; an unknown type returns a 422. When omitted, the endpoint's first subscribed event type is used.
Antwort-Payload
status
string
erforderlich
Whether your endpoint accepted the test event. delivered means it returned a 2xx status; failed means it returned a non-2xx status or could not be reached (see error for the latter).
Possible values: delivered, failed
response_status_code
nullable integer
erforderlich
HTTP status returned by your endpoint. Null when no response was received (timeout, connection error, DNS failure).
response_body
string
Response body returned by your endpoint, truncated to the first 1024 bytes. Omitted when your endpoint returned no body or could not be reached.
response_duration_ms
integer
erforderlich
Round-trip delivery latency in milliseconds.
event_payload
object
The full event body delivered to your endpoint. Test sends use a minimal synthetic body rather than a full event payload, so this field is omitted.
Untergeordnete Attribute anzeigen
event_payload.type
string
erforderlich
Event type.
Possible values: whatsapp.sent
event_payload.timestamp
string
erforderlich
Time Bird handed the message to Meta for delivery.
event_payload.data
object
erforderlich
Payload of the whatsapp.sent event.
Untergeordnete Attribute anzeigen
event_payload.data.whatsapp_id
string
erforderlich
ID of the WhatsApp message.
event_payload.data.workspace_id
string
erforderlich
ID of the workspace.
event_payload.data.direction
string
erforderlich
Whether the message was sent by the business (outbound) or received from the contact (inbound).
Possible values: outbound, inbound
event_payload.data.from
object
erforderlich
Sender of the message. On outbound messages, the business number it was sent from.
Untergeordnete Attribute anzeigen
event_payload.data.from.phone_number
string
Phone number in E.164 format, when known.
event_payload.data.from.bsuid
string
Business-scoped user ID, Meta's identifier for the WhatsApp user. Present only on the WhatsApp-user side of the message.
event_payload.data.to
object
erforderlich
Recipient of the message. On outbound messages, the WhatsApp contact.
Untergeordnete Attribute anzeigen
event_payload.data.to.phone_number
string
Phone number in E.164 format, when known.
event_payload.data.to.bsuid
string
Business-scoped user ID, Meta's identifier for the WhatsApp user. Present only on the WhatsApp-user side of the message.
event_payload.data.tags
nullable array
erforderlich
Tags provided on the send request, echoed on every event for the message. Null when the message carried no tags.
event_payload.data.metadata
nullable object
erforderlich
The metadata object provided on the send request, echoed on every event for the message. Null when the message carried no metadata.
error
string
A short explanation of why the event could not be delivered. Present only when your endpoint could not be reached.