Register webhook

POST /api/v1/webhooks webhooks:manage

Registers a webhook URL for the event types you choose. The signing secret is returned ONCE, so store it. Private/internal URLs are rejected. Verify each delivery with HMAC_SHA256(secret, "<timestamp>.<raw_body>") against the X-Mystery-Signature header, dedupe on X-Mystery-Delivery, and reject anything older than ~5 minutes.

Try it POST /api/v1/webhooks write

These inputs are shared across all docs pages, so an id entered here carries over.

request body
object · 2 keys
{
  "url": "https://example.com/cardos-webhook",
  "event_types": [
    "deposit.credited",
    "purchase.submitted",
    "purchase.fulfilled",
    "purchase.refunded",
    "purchase.failed",
    "sellback.confirmed",
    "payout.statement_ready",
    "payout.paid",
    "redemption.prepared",
    "redemption.updated"
  ]
}
response

Not run yet. Press Run to make a live call against https://service.rip.fun (through this demo's server-side proxy; the API key never reaches the browser).

tracks the inputs above
curl -X POST 'https://service.rip.fun/api/v1/webhooks' \
  -H 'X-API-Key: rip_…' \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com/cardos-webhook","event_types":["deposit.credited","purchase.submitted","purchase.fulfilled","purchase.refunded","purchase.failed","sellback.confirmed","payout.statement_ready","payout.paid","redemption.prepared","redemption.updated"]}'

Request fields

FieldTypeRequiredDescription
urlstringyesPublic HTTPS endpoint (private/internal addresses rejected)
event_typesstring[]deposit.credited, purchase.reserved/submitted/fulfilled/refunded/failed, instant_purchase.reserved/submitted/fulfilled/refunded/failed, buyback.confirmed/transfer_held/card_transferred/transfer_failed, redemption.prepared/updated, pool.item_pulled, sellback.confirmed, payout.statement_ready, payout.paid. Omit for all

Response fields (data)

FieldDescription
id / url / event_types / is_activeThe registered webhook
signing_secret64-hex HMAC secret, shown ONCE, so store it now

Errors

StatusCodeWhen
409webhook_limitmore than 20 webhooks registered

See Errors for the response envelope and the full code list.