> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.coinflow.cash/guides/payouts/payout-methods/supported-payout-methods/interac/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.coinflow.cash/_mcp/server. # How To: Add Support for Interac Payout ## Overview Interac e-Transfer is Canada's most popular digital money transfer service, allowing users to send and receive money instantly using just an email address or phone number. Coinflow supports Interac e-Transfer payouts for Canadian users, enabling instant CAD disbursements. > **Info** > > Interac payouts are only available for users who have verified their identity and are located in Canada. ## Prerequisites Before implementing Interac payouts, ensure: 1. Your merchant account has Interac payouts enabled. Contact the Coinflow integrations team to enable this feature. 2. Users must complete KYC verification and be Canadian residents. 3. Users must have a valid Canadian phone number (10 digits) OR email address linked to their Interac account. ## UI Implementation If you are leveraging Coinflow's [bank authentication UI](/guides/payouts/implementation-methods/bank-authentication-ui), once Interac payouts are configured on your merchant account, your Canadian customers can link an Interac account as a payout destination straight from the UI. **For Merchant Payouts:** Pass the linked Interac token into the payout endpoints. This token can be retrieved from the [Get Withdrawer Endpoint](/api-reference/api-reference/withdraw/get-withdrawer). **For User Custodial Payouts:** This is a configuration setting on Coinflow's end. No additional implementation is needed to support Interac payouts. Reach out to your point of contact for integrations at Coinflow to enable this feature. ## API Implementation After following your usual KYC verification flow, follow these steps to allow linking an Interac payout destination: #### Link Interac Account Use the [Add Interac Account](/api-reference/api-reference/withdraw/add-interac) endpoint to allow the withdrawer to add an Interac account using their phone number OR email address as a payout destination. **Option 1: Link with Phone Number** > **Info** > > Phone numbers must be exactly 10 digits with no formatting characters. Do not include the country code (1) or any dashes, spaces, or parentheses. **`Request`** ```curl Request curl --request POST \ --url https://api-sandbox.coinflow.cash/api/withdraw/interac \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'x-coinflow-auth-user-id: user1234' \ --data ' { "phoneNumber": "4165551234" } ' ``` **Option 2: Link with Email** **`Request`** ```curl Request curl --request POST \ --url https://api-sandbox.coinflow.cash/api/withdraw/interac \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'x-coinflow-auth-user-id: user1234' \ --data ' { "email": "user@example.com" } ' ``` > **Warning** > > You must provide either a phone number OR an email address, but not both. Providing both will result in an error. #### Retrieve Interac Account Details Call the [Get Withdrawer](/api-reference/api-reference/withdraw/get-withdrawer) endpoint to retrieve the tokenized Interac account details. **`Request`** ```curl Request curl --request GET \ --url https://api-sandbox.coinflow.cash/api/withdraw \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'x-coinflow-auth-user-id: user1234' ``` **`Response`** ```json Response { "withdrawer": { "_id": "68aa405463dc197a7d9410cc", "currency": "CAD", "email": "user@example.com", "verification": { "status": "approved" }, "wallets": [ { "wallet": "user1234" } ], "bankAccounts": [], "cards": [], "interac": { "type": "interac", "alias": "(XXX) XXX-1234", "token": "a8bbb23b-8732-42b0-82d9-afad14f51453" } } } ``` > **Info** > > The `alias` field displays a masked version of the phone number (e.g., "(XXX) XXX-1234") or the full email address, depending on which was used to link the account. #### Initiate Payout Use the [Payout from Delegated Settlement Wallet](/api-reference/api-reference/merchant/payout-from-delegated-settlement-wallet) endpoint with the Interac token to request a payout. Funds will be sent instantly to the user's Interac account. **`Request`** ```curl Request curl --request POST \ --url https://api-sandbox.coinflow.cash/api/merchant/withdraws/payout/delegated \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "amount": { "cents": 5000 }, "speed": "interac", "account": "a8bbb23b-8732-42b0-82d9-afad14f51453", "userId": "user1234", "idempotencyKey": "123-abc-456-def" } ' ``` **`Response`** ```json Response { "signature": "47pMMVtHceA8CiJwhuwM9E49Bysgaw5L5YtaBAzTiSotPy2zqBm3Eeg43KE9cnt5jdjMusfrUwEd4BPno36je1Jj" } ``` > **Warning** > > The endpoint to initiate a payout may differ depending on your payout flow: > > * **Merchant-funded payouts:** Pass the Interac token to the [do payout](/api-reference/api-reference/merchant/do-payout) endpoint. > * **User-initiated payouts:** Pass the Interac token to the [get transaction](/api-reference/api-reference/withdraw/get-transaction) endpoint. ## Interac Verification PIN Some Canadian banks require users to enter a verification PIN when depositing Interac e-Transfers. This applies to users who do not have Interac Autodeposit enabled on their bank account. > **Info** > > Coinflow automatically generates and communicates the verification PIN to users. The PIN is: > > * Included in the withdrawal confirmation email sent to the user > * Displayed in the Coinflow Merchant Dashboard for the withdrawal record ### How it works 1. When an Interac payout is initiated, Coinflow automatically retrieves the verification PIN from the payment network. 2. The PIN is stored with the withdrawal record and included in the notification email sent to the user. 3. When the user opens their banking app to deposit the funds, they may be prompted for a verification PIN. 4. The user enters the PIN provided in their email to complete the deposit. > **Warning** > > Users who have Interac Autodeposit enabled on their bank account will not be prompted for a PIN. The funds will be deposited automatically. ### Retrieving the PIN There are two ways to access the Interac verification PIN: **Option 1: Merchant Dashboard** Merchants can view the Interac verification PIN for any withdrawal in the Coinflow Merchant Dashboard. Navigate to the withdrawal details to see the PIN, which can be copied and shared with the user if needed. **Option 2: API** You can retrieve the PIN programmatically by calling the [Get Withdrawal](/api-reference/api-reference/merchant/get-withdrawal) endpoint: **`Request`** ```curl Request curl --request GET \ --url https://api-sandbox.coinflow.cash/api/merchant/withdraws/{withdrawalId} \ --header 'Authorization: YOUR_API_KEY' ``` **`Response`** ```json Response { "withdrawal": { "withdrawer": "68aa405463dc197a7d9410cc", "transferId": "chk_abc123", "wallet": "user1234", "transaction": "47pMMVtHceA8...", "amount": { "cents": 5000, "currency": "CAD" }, "status": "completed", "speed": "interac", "createdAt": "2024-01-15T09:30:00Z", "updatedAt": "2024-01-15T09:30:00Z", "pin": "7392" } } ``` > **Info** > > The `pin` field is only present for Interac withdrawals. For other withdrawal types, this field will not be included in the response. ## Phone Number Format When linking an Interac account with a phone number, ensure the number follows these requirements: | Requirement | Valid Example | Invalid Examples | | ----------------- | ------------- | --------------------------------------- | | Exactly 10 digits | `4165551234` | `14165551234` (includes country code) | | Numbers only | `4165551234` | `416-555-1234` (contains dashes) | | No spaces | `4165551234` | `416 555 1234` (contains spaces) | | No formatting | `4165551234` | `(416) 555-1234` (contains parentheses) | ## Updating Interac Account Details Each user can only have a single Interac account linked at a time. Users can update their linked Interac account (for example, to fix a typo or switch from phone number to email) **before** a successful payout has been made. Simply call the Add Interac Account endpoint again with the new phone number or email, and it will replace the existing account. > **Warning** > > Once a successful Interac payout has been completed, the linked account is locked. If you attempt to add a different account, the original token (used for the successful payout) will be restored. This ensures payout continuity for the user. ## Error Handling | Error Code | Description | Solution | | ---------- | ----------------------------------------- | ------------------------------------------------------------------------------------------ | | 400 | Withdrawer must be from Canada | Interac is only available for Canadian users. Verify the user's country is set to CA. | | 422 | Invalid phone number format | Ensure the phone number is exactly 10 digits with no formatting. | | 422 | Must provide either phone number or email | Provide exactly one of `phoneNumber` or `email` in the request. | | 500 | Merchant not eligible for Interac | Contact the Coinflow integrations team to enable Interac payouts on your merchant account. | ## Testing In the sandbox environment, you can test Interac payouts using any valid 10-digit phone number or email address format. The sandbox will simulate successful Interac transfers without sending actual funds. > **Tip** > > Use test phone numbers like `4165551234` or test emails like `test@example.com` in the sandbox environment to verify your integration before going live.