{
"id": "whd_Xy12Ab34Cd56",
"createdAt": 1753142400000,
"data": {
"checkoutId": "<string>",
"totalAmount": 123,
"currency": "<string>",
"items": [
{
"id": "<string>",
"productId": "<string>",
"productName": "<string>",
"quantity": 123
}
],
"externalRef": "<string>",
"refund": {
"amount": 123,
"method": "<string>",
"reason": "<string>"
}
}
}Webhook payloads
refund.* events
refund.initiated, refund.completed, and refund.failed share one payload shape.
WEBHOOK
refundLifecycle
{
"id": "whd_Xy12Ab34Cd56",
"createdAt": 1753142400000,
"data": {
"checkoutId": "<string>",
"totalAmount": 123,
"currency": "<string>",
"items": [
{
"id": "<string>",
"productId": "<string>",
"productName": "<string>",
"quantity": 123
}
],
"externalRef": "<string>",
"refund": {
"amount": 123,
"method": "<string>",
"reason": "<string>"
}
}
}Authorizations
API key (wg_live_…) created in the dashboard (Account → API Keys).
Shown once at creation; only a hash is stored server-side.
Headers
t=<unix-ms>,v1=<hmac-sha256-hex> — up to two v1 entries during the 24 h secret-rotation window. HMAC is over "<t>.<raw body>".
Available options:
payment.detected, payment.confirmed, order.completed, order.partial, order.failed, refund.initiated, refund.completed, refund.failed Delivery id (whd_…) — stable across retries; use as your idempotency key.
Body
application/json
Delivery id (whd_…) — your idempotency key; stable across retries.
Example:
"whd_Xy12Ab34Cd56"
Event type (WebhookEventType or ping).
Available options:
refund.initiated, refund.completed, refund.failed Unix timestamp in milliseconds (UTC).
Example:
1753142400000
Order snapshot. NEVER contains card codes — fetch those via the authenticated GET.
Show child attributes
Show child attributes
Response
200
Acknowledged.