Skip to Content
CanadaCanada — CAD Interac collect and payout

Canada — CAD Interac collect and payout

Base URL

https://api.transacty.ai

Summary

Collect CAD (Interac Request Money or Interac e-transfer email) and pay out CAD (Canadian bank, Interac email, or bill pay). Proceeds settle to the merchant CAD wallet only — no FX swap to USDC/USDT.

Each collect is one deposit per API call. Your checkout is the returned paymentInstructions. For Interac email, Transacty does not email the payer — show recipientEmail, securityQuestion, and securityAnswer so they send the e-transfer themselves.

Swaps, NGN/BVN, permanent virtual accounts, and PYUSD/USDC pockets are not part of this rail.

Live only

This rail has no sandbox. Use a live API key. A test key returns 503 { "code": "payment_unavailable" }.

Settlement wallet & market

CollectOne deposit per API call; payer completes Interac using paymentInstructions
Request MoneyFixed amount (CAD); poll or wait for webhook
Interac emailPayer identified by sender email + Canadian phone. No outbound payment email — payer sends to recipientEmail with the security Q/A from paymentInstructions
SettleTransacty credits CAD when the deposit is credited (webhook and/or poll)
PayoutDebit merchant CAD → bank / Interac email / bill pay
SpendOther pockets cannot fund CAD payouts; CAD cannot fund USDC / PYUSD-USDC / NGN
Live onlyUse a live API key. test → 503 payment_unavailable
Marketcanada must be approved and KYC verified

CAD is a separate wallet pocket. Never sum unlike currencies into one headline number. Read it on GET /v1/balance items[].

Enable the canada market first. Until Canada is KYB-approved (and KYC verified), /v1/cad/* returns 403 (market_not_enabled).

Limits (major units, CAD)

FlowMinMax
Collect (request_money)150,000
Collect (interac_email, when amount sent)150,000
Payout150,000

Required headers

Every request uses HMAC authentication (same scheme as all /v1/* endpoints):

  • X-Transacty-Key
  • X-Transacty-Timestamp (Unix seconds)
  • X-Transacty-Signature = HMAC-SHA256(secret, "{timestamp}.{rawBody}")
  • Content-Type: application/json on POST
  • Idempotency-Key (16–255 chars, required on POST collects and POST payouts)

Required scopes

  • payin:create — POST / GET /v1/cad/collects
  • payout:create — payouts, GET /v1/cad/institutions, POST /v1/cad/verify-bank, GET /v1/cad/bills/search

Collect flow

StepMerchant serverTransacty API
1Create a collectPOST /v1/cad/collects with Idempotency-Key
2Store transactionId; render paymentInstructions in your checkout—
3Request Money: payer completes the Interac request. Interac email: payer sends e-transfer to recipientEmail with the security Q/A—
4Poll or wait for webhookGET /v1/cad/collects/:transactionId
5Credit your order when settled: true / status is credited / payin.completed—

List history with GET /v1/transactions?type=payin, then filter rail === "canada" in your app (no rail= query).

Payout flow

StepAPI
1GET /v1/cad/institutions (bank rail)
2POST /v1/cad/verify-bank (optional, bank rail)
3GET /v1/cad/bills/search?query= (bill rail)
4POST /v1/cad/payouts with Idempotency-Key
5GET /v1/cad/payouts/:transactionId or wait for webhook

Creating a payout debits the CAD wallet immediately. Insufficient balance → 400. On payout.failed, the send amount is refunded to CAD when applicable.

Webhook events

When a webhook URL is configured, Transacty sends:

  • payin.completed — collect credited to CAD (currency: "CAD")
  • payin.failed — collect failed / expired
  • payout.completed — payout succeeded
  • payout.failed — payout failed

See Webhooks for signature verification.

Next steps

Last updated on