Partners
WebhooksEvent reference

raffle.cancelled

The raffle was cancelled — refunds are owed

Lists your buyers owed a refund. refund_tx_signature is always null here: this fires in the same transaction that creates the refund rows, before any money has moved. The real signature arrives later on refund.sent.

Request Body

application/json
  1. body

Every webhook uses this envelope.

Headers: x-verity-event: <event name> and x-verity-signature: <hex>.

The signature is HMAC-SHA256 of the exact raw body bytes with your webhook secret, hex encoded. Verify before parsing:

import { createHmac, timingSafeEqual } from "node:crypto";function verify(rawBody, header, secret) {  const expected = createHmac("sha256", secret).update(rawBody).digest("hex");  const a = Buffer.from(expected), b = Buffer.from(header ?? "");  return a.length === b.length && timingSafeEqual(a, b);}

Respond 2xx to acknowledge. Non-2xx and timeouts are retried with backoff, so your handler must be idempotent. You only ever receive data about your own buyers.

event*string
Value in"payment.updated""raffle.live""raffle.closed""raffle.drawn""prize.won""raffle.cancelled""refund.sent"
data*

Response Body

Acknowledged.

Example Requests
POST/raffle.cancelled

Every webhook uses this envelope.

Headers: x-verity-event: <event name> and x-verity-signature: <hex>.

The signature is HMAC-SHA256 of the exact raw body bytes with your webhook secret, hex encoded. Verify before parsing:

import { createHmac, timingSafeEqual } from "node:crypto";function verify(rawBody, header, secret) {  const expected = createHmac("sha256", secret).update(rawBody).digest("hex");  const a = Buffer.from(expected), b = Buffer.from(header ?? "");  return a.length === b.length && timingSafeEqual(a, b);}

Respond 2xx to acknowledge. Non-2xx and timeouts are retried with backoff, so your handler must be idempotent. You only ever receive data about your own buyers.

Request Body
application/json
{  "event": "raffle.cancelled",  "data": {    "raffle_id": 77,    "refunds": [      {        "external_user_ref": "usr_8812",        "tickets_purchased": 5,        "refund_amount_usd": 250,        "refund_tx_signature": null      }    ]  }}