Skip to main content
The biggest change: webhook endpoints are now a self-service API resource instead of a dashboard-only setting, and signature verification switched from an asymmetric keypair to HMAC. If you’re migrating, plan to rewrite your signature-verification code — it isn’t a compatible change.

Endpoint management

v2: one webhook URL per profile per environment, configured only through the dashboard — no API to register, list, or update it. Activating a webhook generates an RSA/EC keypair; you were given the public key to verify signatures against. v3: full self-service CRUD, and you can register multiple endpoints with independent event-type subscriptions:
subscriptions lets you filter which event types are delivered to each endpoint — v2 had no such filtering; every event went to your one registered URL.

Signature verification (rewrite required)

v2: asymmetric — HIFI holds a private key, you’re given the corresponding public key at activation time and verify the payload signature against it. v3: symmetric HMAC-SHA256 — you’re given a shared secret (signingSecret, returned once at endpoint creation, never again) and verify like this:
Compare expected against the v1 value in the hifi-signature header. Store the signingSecret securely when you create the endpoint — like a v2 private key, HIFI never shows it to you again after creation.

Event types

Event types themselves are largely unchanged in naming (OFFRAMP.CREATED, OFFRAMP.STATUS.<STATUS>, etc.) and, for resources with shared v2/v3 provider code (Onramp, Offramp), the payload is the v3 response shape regardless of which webhook endpoint receives it. See each resource’s own migration page for its specific payload changes, and Webhooks for the full list of v3 event types.