Collect (Canada CAD)
Create one deposit per API call. The payer completes Interac using the returned
payment instructions. Live API keys only. Scope: payin:create.
Idempotency-Key is required (16–255 chars). Replaying the same key + same body
returns the first response.
Create deposit
/v1/cad/collectspayin:createRequest fields
| Field | Required | Notes |
|---|---|---|
method | yes | request_money | interac_email |
amount | yes for request_money | Decimal string, 1–50,000 CAD |
amount | no for interac_email | Optional cap/hint; payer may send a different credited amount |
senderEmail | yes for interac_email | Payer / sender email |
phoneNumber | yes for interac_email | +1XXXXXXXXXX (Canadian E.164) |
message | no | Shown in Interac flow when supported |
merchantReference | no | Your id (max 128); defaults to Transacty transaction id |
metadata | no | Opaque JSON stored on the transaction |
Request Money (fixed amount)
Request
{
"method": "request_money",
"amount": "150.00",
"merchantReference": "order-9001",
"message": "Invoice 9001",
"metadata": { "orderId": "9001" }
}Store transactionId. Your checkout UI is paymentInstructions — Transacty
does not host a CAD checkout page.
Interac email
Interac email does not send a payment email to the payer. Create the deposit,
then show paymentInstructions and have the payer send the e-transfer to
recipientEmail using securityQuestion and securityAnswer.
{
"method": "interac_email",
"senderEmail": "payer@example.com",
"phoneNumber": "+14165551234",
"merchantReference": "order-9002",
"message": "Pay your invoice"
}paymentInstructions (Interac email):
{
"type": "interac_email",
"depositId": "51",
"amountCad": "2.00",
"status": "awaiting_payment",
"recipientEmail": "collect@bank.example",
"securityQuestion": "Invoice?",
"securityAnswer": "9002"
}| Field | What to show the payer |
|---|---|
recipientEmail | Where they send the Interac e-transfer |
securityQuestion | Question they must use on the e-transfer |
securityAnswer | Answer they must use — sensitive, payer session only |
amountCad | Amount hint when present |
The same three fields (recipientEmail, securityQuestion, securityAnswer) are
on GET /v1/cad/collects/:transactionId while the deposit is open.
Treat securityAnswer as sensitive — show it only in the intended payer session.
Do not log it, email it, or put it in merchant-facing dashboards.
For interac_email, amount is optional. The credited amount is what the payer
sends (within 1–50,000 CAD).
Poll collect status
/v1/cad/collects/:transactionIdpayin:createNo body. Sign with {timestamp}..
cURL
curl -X GET https://api.transacty.ai/v1/cad/collects/{transactionId} \
-H "X-Transacty-Key: $TRANSACTY_KEY" \
-H "X-Transacty-Timestamp: $TS" \
-H "X-Transacty-Signature: $SIG" \
-H "Content-Type: application/json"status / settled | Meaning |
|---|---|
awaiting_payment, pending, processing | Still open |
credited, settled: true | CAD wallet credited (net of Transacty fees) |
failed, expired | Terminal failure — no credit |
Poll after create until terminal, or rely on payin.completed.
While an Interac email deposit is still open, paymentInstructions on this GET
includes recipientEmail, securityQuestion, and securityAnswer so you can
re-render checkout if the payer reloads.