Wire Payments (Canada)

Our Wire Payments API is a great choice for sending large, time-sensitive payments across Canada or around the globe. Send payments directly to your recipient’s bank account with spot rates for over 20 currencies and track your payment with real-time status updates.

Overview

Limits:

$999,999,999.99/payment

1 payment/call

Unlimited calls

Countries:

200+ countries (every non-sanctioned country on SWIFT network)

24 currencies (up-front conversion with spot rates)

Speed:

Same day (payments sent in CAD and USD)

2 business days (payments in any other currency)

Cut-off times (business days):

Same-day payments in CAD or USD

5:50 p.m. ET

Payments in all other currencies (2 business days)

7:00 p.m. ET

Note: Provided there are no issues. To be safe, we recommend submitting your payments at least 1 hour earlier.

Endpoints Summary

post
/tpp/wires/payment-initiation/customer-credit-transfer-initiation
Send Wire Payment
post
/tpp/wires/payment-initiation/get-transaction-status/get
Obtain Payment Status

Payload encryption

For security reasons, all requests to and responses from our Payments APIs need to be encrypted. For detailed instructions, have a look at our encryption process.

View Encryption documentation

Send payment

Create your payment (Pain.001) by providing all mandatory details as outlined in the Specifications document at the top. This may vary based on the destination country. For example, you need to include the name and address for senders and recipients for payments to Canada while money sent to Qatar and the United Arab Emirates (UAE) requires a purpose code.

Once submitted, we'll validate your payment and send you the results (Pain.002). If there are no issues, we'll process your payment. No approvals are required. If you chose up-front conversion into one of the supported foreign currencies, we'll use the spot rate at the time of submission. To check which rate was used for your payment, please check your account reports or retrieve your posted transactions using our Account Information API.

Note: Payments are processed immediately and cannot be scheduled for a future time. They also don't appear in Online Banking for Business and cannot be modified or recalled once sent.

Post
/tpp/wires/payment-initiation/customer-credit-transfer-initiation

Request

Code Samples

Headers

x-request-id required
string
x-fapi-interaction-id required
string
x-app-cat-id
string
x-client-id required
string
x-api-key
string
x-fapi-financial-id
string
x-fapi-customer-last-logged-time
string
x-fapi-customer-ip-address
string
x-fapi-customer-user-agent
string
x-csrf-token
string
x-crypto-key
string
Authorization required
string
true-client-ip
string

Body

Response

Get payment status

Check the latest status for your sent payments (CAMT.005). This call returns the current status of a particular payment (Pain.002) up until it leaves BMO. End-to-end tracking is currently not available using our API. Please check our table below for more information about the possible statuses that can be returned.

Note: Instead of checking manually, you can also request automatic alerts by API Webhook, email or text message using our Push Notifications API. If you have BMO Alerts set up in Online Banking for Business, they will trigger as well.

Post
/tpp/wires/payment-initiation/get-transaction-status/get

Request

Code Samples

Headers

x-request-id required
string
x-fapi-interaction-id required
string
x-app-cat-id
string
x-client-id required
string
x-api-key
string
x-fapi-financial-id
string
x-fapi-customer-last-logged-time
string
x-fapi-customer-ip-address
string
x-fapi-customer-user-agent
string
x-csrf-token
string
x-crypto-key
string
Authorization required
string
true-client-ip
string

Body

Response

​