WEBHOOK

Authorizations

Authorization
string
header
required

An API key minted in the console (ctd_…). Authenticates; never authorizes funds. A key carries scopes (read, wallets.write, transactions.write, events.write, webhooks.write, policy.write) and may be limited to vaults, to IP addresses, and in lifetime — see Authentication.

Headers

X-Citadel-Event
string
required

The event type, same as type in the body.

X-Citadel-Delivery
string<uuid>
required

The delivery id, same as id in the body. Stable across retries.

X-Citadel-Signature
string
required

t=<unix>,v1=<hex HMAC-SHA256 of "<t>.<body>"> with the endpoint secret. While a rotated secret overlaps the new one, one v1 per secret, the new secret's first (t=<unix>,v1=<new>,v1=<old>): accept the delivery when any v1 matches.

Body

application/json
id
string<uuid>
required

The delivery id. Deduplicate on it.

timestamp
integer
required

Unix seconds of THIS attempt.

type
string
required
resource
object
required
data
object
required

Response

200

Any 2xx acknowledges the delivery.