Skip to main content

Payload Examples

Webhookr accepts any HTTP method and body on an endpoint's ingest URL, and stores the request verbatim. These examples show typical usage.

Minimal JSON event

curl -i -X POST https://api.webhookr.tech/v1/ingest/<slug> \
-H "Content-Type: application/json" \
-d '{"event":"ping"}'

Response:

HTTP/1.1 202 Accepted

Realistic provider-style payload

curl -i -X POST https://api.webhookr.tech/v1/ingest/<slug> \
-H "Content-Type: application/json" \
-H "X-Signature: t=1718000000,v1=abc123" \
-d '{
"id": "evt_1NXyz2Abc",
"type": "payment_intent.succeeded",
"created": 1718000000,
"data": {
"object": {
"id": "pi_3NXyz2Abc",
"amount": 4200,
"currency": "usd",
"status": "succeeded"
}
}
}'

What Webhookr stores

For the request above, the event record captures:

FieldExample value
methodPOST
payloadThe full JSON body shown above.
headersAll request headers, including X-Signature.
contentTypeapplication/json
payloadSizeSize of the body in bytes.
headerCountNumber of headers received.
sourceIpThe caller's IP address.
userAgentThe caller's User-Agent.
receivedAtTimestamp of receipt.

Forwarded to destinations

Each enabled destination receives the event using its own method, headers, and contentType. A destination configured with default settings receives:

POST /your/path HTTP/1.1
Content-Type: application/json

{"id":"evt_1NXyz2Abc","type":"payment_intent.succeeded", ... }

The resulting delivery records the destination's response status, body, and duration.

Non-JSON bodies

The ingest endpoint accepts other content types too. The body is stored as received; set the destination's contentType to match what your receivers expect.