Skip to main content
Collect Canadian Dollars by requesting them. Instead of waiting for a customer to push an Interac e-Transfer to your Auto Deposit email, your platform calls one endpoint and Blaaiz sends an Interac money request to the payer’s email. The payer approves it from their banking app, the funds land in your CAD wallet, and you receive a collection webhook. This is the pull counterpart to Interac Auto Deposit collections (the push flow). Use it when you’d rather initiate the collection than display an email and hope the customer sends the right amount.

How it works

The initial API call returns immediately with the collection in a PENDING 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:create scope (part of the collections and full-access bundles). See Authentication.

Initiate a money request

Send the amount and the payer’s email. Blaaiz sends the Interac request to that email.
curl -X POST https://api-prod.blaaiz.com/api/external/collection/interac-money-request \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100,
    "email": "payer@example.com"
  }'
Response:
{
  "message": "Interac money request sent successfully.",
  "transaction_id": "20580e50-1b32-40a6-aa46-ac8e795b3zas",
  "reference": "CA1MR6ahQBCJ",
  "expires_at": "2026-06-14T10:00:00+00:00"
}
FieldDescription
transaction_idBlaaiz transaction ID for the pending collection. Store it to reconcile against the webhook.
referenceThe Interac reference number for the money request.
expires_atWhen the request expires if the payer doesn’t approve it (48 hours from creation).

Request fields

FieldRequiredDescription
amountYesCAD amount to request, in major units (e.g. 100.00).
emailYesThe payer’s email — Blaaiz sends the Interac request here.
customer_nameNoDisplay name for the payer on the request. Defaults to your business name.
customer_idNoA VERIFIED customer belonging to your business, to attribute the collection to.
expiry_hoursNoHours 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 a collection webhook to your configured collection_url. Match it to the pending collection using transaction_reference (the reference from the initiate response) or transaction_id.
{
  "message": "Transaction Completed",
  "transaction_id": "20580e50-1b32-40a6-aa46-ac8e795b3zas",
  "transaction_reference": "CA1MR6ahQBCJ",
  "transaction_status": "SUCCESSFUL",
  "transaction_fee": 2.0,
  "transaction_amount_without_fee": 98.0,
  "transaction_amount": 100.0,
  "transaction_currency": "CAD",
  "source_information": {
    "collection_email": "payer@example.com"
  },
  "event_id": "9d46a6c7-fbb4-48f0-912c-4f9611fe5844",
  "type": "collection"
}
Only credit the customer in your system once 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 itYour platform, via APIYour customer, from their bank
Email you passThe payer’s emailn/a (you display your Auto Deposit email)
Customer actionApprove a request in their bank appSend an e-Transfer to your email
Setup requiredcollection:interac:create scopeAn active Auto Deposit email
Best forInvoicing / on-demand requests with a known amountOpen-ended inbound payments

Common pitfalls

Treating the 200 response as settlement. The initiate call only confirms the request was sent. The collection is PENDING 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