Event types
Your business has three webhook URLs:collection_url, payout_url, and kyc_url. The table below shows every event and which URL it is delivered to.
Payout and crypto payout events use your
payout_url. Merchant KYC events use your kyc_url. Interac auto-deposit registration events use collection_url, or payout_url when collection_url is null. Crypto deposit events and the other listed events use collection_url.Merchant KYC events use their own payload shape and their own retry schedule. See Merchant KYC webhooks.
type, email, status, message, and event_id.
See registration status webhooks for the exact payload.
Payload structure
Fiat and collection webhook payloads include:event— The event typedata— The event data objecttimestamp— When the event occurredsignature— HMAC signature for verification (header:x-blaaiz-signature)
Always verify thex-blaaiz-signatureusing your webhooksigning_secretto ensure the webhook originates from Blaaiz.
Crypto payout payload
Crypto payout webhooks use a flat JSON object. They do not use thedata wrapper from other webhook events.
crypto.payout.failed event includes failure_reason. Blaaiz sends this event only for a final failed state.
Crypto deposit payload
Crypto deposit webhooks use the same flat JSON structure. Blaaiz sends the event after it credits the business crypto wallet. Thecustomer_id field is at the top level. The payload has no source object.
Webhook retries
The retry, log, and replay guidance below does not apply to Interac auto-deposit registration events.
Those events use synchronous delivery without automatic retries or webhook logs. Use the read endpoints to check a missed status update.
event_id to process each event once in your system.
Return a 2xx response when you accept a webhook. Blaaiz can retry a delivery that does not receive a 2xx response.
Use the webhook log endpoints to inspect delivery status. You can replay an eligible failed delivery.
⚙️ Best practices
- Reply with a 2xx promptly and process work asynchronously if needed.
- Implement idempotency using the
event_idso duplicate deliveries don’t double-process work.- Return non-2xx only when you truly want a retry.
Data retention
Webhook logs (payloads, responses, attempt history) are retained for 90 days. After 90 days, records are pruned for both successful and failed deliveries.- If you need webhook data beyond 90 days, store it in your own systems.
- Replay is only available for webhooks within the 90-day window.