> ## Documentation Index
> Fetch the complete documentation index at: https://docs.business.blaaiz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks and notifications

> Learn about webhook notifications for transactions

## How will we know when a payment is received?

We'll notify you via **webhooks** for all successful collections, regardless of the method used — Interac, bank transfer, or card payment.

We'll also notify you when a transaction (payout) is initiated. This is very useful for CAD payouts where you need the Interac question and answer before the payment is completed.

Customer-level transitions are also sent to your `collection_url`. The wire `event_type` is always `customer.status_changed` — inspect `new_status` (`VERIFIED`, `REJECTED`, `PROCESSING`, `PENDING`) to know which way the customer moved. The same single event covers both `type=individual` (KYC) and `type=business` (KYB) customers. There are **no** per-owner or per-KYB-document webhooks; the customer-level event is the only signal you need to track. See [Business customer KYB](/guides/kyb/overview) for the KYB-specific lifecycle.

Always verify the `x-blaaiz-signature` header using your webhook `signing_secret` before processing a webhook.

## Why did a CAD collection fail, and how do we find the reason?

If a CAD collection fails, Blaaiz sends a collection webhook with `transaction_status` set to `FAILED`. The webhook adds a `failure_reason` field. This field gives the reason from the payment provider.

Blaaiz sends `failure_reason` one time, on the failure webhook only. A webhook replay does not include the `failure_reason` field.

Do not release goods or value for a `FAILED` collection. No funds move, and Blaaiz does not credit your CAD wallet.

See [CAD collection webhook](/guides/webhooks/collection/cad#failed-transactions) for the full failed payload.

## What happens when an Interac money request expires?

An Interac money request expires when the payer does not approve it before its expiry time. The default expiry time is 48 hours after you create the request. You can set a shorter time with `expiry_hours`.

When a money request expires, Blaaiz sends a collection webhook with `transaction_status` set to `EXPIRED` and `message` set to `Transaction Expired`. No funds move. Do not release goods or value. Use the webhook to close the pending request in your system.

To find these transactions later, pass `status: EXPIRED` to the [List transactions](/api-reference/transaction/list) endpoint.

## What information is included in the webhook?

The webhook payload includes transaction details such as:

* Sender's information (where available)
* Amount
* Transaction reference
* Status

See [Webhook events](/guides/webhooks/events) and [Signature verification](/guides/webhooks/signature-verification/overview) for the full payload and verification guidance.
