How it works
The initial API call returns immediately with the collection in aPENDING state. Settlement happens asynchronously once the payer approves — you learn the final outcome from the collection webhook, not the initial response.
Prerequisites
- A business with API Services enabled and an active CAD wallet.
- Interac enabled for CAD on your account.
- An OAuth credential that includes the
collection:interac:createscope (part of thecollectionsandfull-accessbundles). See Authentication.
Initiate a money request
Send the amount and the payer’s email. Blaaiz sends the Interac request to that email.| Field | Description |
|---|---|
transaction_id | Blaaiz transaction ID for the pending collection. Store it to reconcile against the webhook. |
reference | The Interac reference number for the money request. |
expires_at | When the request expires if the payer doesn’t approve it (48 hours from creation). |
Request fields
| Field | Required | Description |
|---|---|---|
amount | Yes | CAD amount to request, in major units (e.g. 100.00). |
email | Yes | The payer’s email — Blaaiz sends the Interac request here. |
customer_name | No | Display name for the payer on the request. Defaults to your business name. |
customer_id | No | A VERIFIED customer belonging to your business, to attribute the collection to. |
expiry_hours | No | Hours until the request expires if the payer doesn’t approve it. Defaults to 48; max 120. |
Unlike Auto Deposit collections, the
email here is the payer’s address (where the request is sent), not your business Auto Deposit email. You don’t need an Auto Deposit email configured for this flow.Handle the collection webhook
When the payer approves the request, Blaaiz credits your CAD wallet and sends acollection webhook to your configured collection_url. Match it to the pending collection using transaction_reference (the reference from the initiate response) or transaction_id.
transaction_status is SUCCESSFUL. See the CAD collection webhook payload for the full schema.
Fees
The standard INTERAC collection fee applies, the same as Auto Deposit collections. Your wallet is credited the net amount (transaction_amount_without_fee); transaction_fee shows the fee deducted.
Money request vs Auto Deposit
| Initiate money request (pull) | Auto Deposit (push) | |
|---|---|---|
| Who starts it | Your platform, via API | Your customer, from their bank |
| Email you pass | The payer’s email | n/a (you display your Auto Deposit email) |
| Customer action | Approve a request in their bank app | Send an e-Transfer to your email |
| Setup required | collection:interac:create scope | An active Auto Deposit email |
| Best for | Invoicing / on-demand requests with a known amount | Open-ended inbound payments |
Common pitfalls
Treating the 200 response as settlement. The initiate call only confirms the request was sent. The collection isPENDING until the payer approves it — always wait for the SUCCESSFUL collection webhook before releasing value.
Payer doesn’t approve in time. Money requests expire at expires_at — 48 hours after creation by default, or sooner if you set expiry_hours (max 120). If the payer never approves, no funds move and no success webhook is sent.
No active CAD wallet. The endpoint returns 400 with No active CAD wallet found... if your business has no CAD wallet. Create one first.
APIs used
- Initiate Interac money request
- CAD collection webhook payload
- Authentication & scopes
- Accept incoming Interac money request — for externally received transfers

