Our Push Notifications API allows you to conveniently automate your status tracking for all of your API-generated payments and money requests. Instead of having to make repeated manual request calls to get the latest status, we'll automatically notify you as soon as your payments progress to the next status.

To get started, please contact your BMO representative.

Overview

Supported APIs:

All Payments APIs

Delivery methods:

API Webhook

Email

Text message

Limits:

Up to 10 phone numbers/API operation

Up to 5 email addresses/API operation

Speed:

Instant notifications (trigger status changes are customizable)

A closer look

Convenient and cost-efficient – Avoid repeated calls to check the latest payment status manually. Instead, let us automatically notify you in real time when something changes.

Tailored to your needs – For each API operation, tell us which status changes you’re interested in and how you would want to receive our notifications. You can choose between real-time API Webhook, email, text message or any combination of the three.

Targeted distribution – To make sure the right people in your company get our updates, you can provide us up to 10 phone numbers and 5 email addresses we should use. For additional targeting of specific teams, they can be different for each API operation (e.g. Send wire payments vs. Collect Fedwire drawdown).

Endpoints Summary

post
/paymentStatusUpdate/v1
Payment Status Update

Provide access token

Before we can interact with your application, we need to request an access token from your OAuth server. Here’s the process:

  • Step 1: We contact your OAuth endpoint to request an access token.
  • Step 2: Your OAuth server returns an access token to BMO.
  • Step 3: We validate the signature with your OAuth server.
  • Step 4: Your OAuth server returns a public key for validation.

We retrieved and validated your access token. Next, we’ll use it to send the payment status notification.

Provide public key

As a security measure, payment status notifications are encrypted. To do that, we need to request a public key from you. This public key is different from the one we used in the previous step for validation. Here's the process:

  • Step 1: We request a new public key from you.
  • Step 2: You return the public key using the endpoint (POST /public-keys/v1).
  • Note: For technical details including sample code, please download the Encryption key swagger above.
  • Step 3: We use the public key to encrypt our status notification.

Now that the payment status notification is encrypted, we proceed to sending it to you.

Get payment status notification

As the final step, we send the encrypted status update to you. Here's the process:

  • Step 1: We send the encrypted notification (Pain.002) as a .json request using the endpoint (PUT /paymentStatusUpdate/v1).
  • Step 2: You decrypt the message using your private key.
  • Step 3: You return a success or failure message as a .json response to BMO.

Once we receive your success response, the push notification is considered to be delivered successfully. If we receive a failure response or don't receive any response at all, we'll retry with 1 attempt per hour for up to 24 hours.

Note: For more details about the possible statuses that can be returned, please review the Response table for the Get payment status endpoint on each API documentation page.

Post
/paymentStatusUpdate/v1

Request

Code Samples

Headers

x-api-key required
string
x-client-id required
string
authorization required
string
x-request-id required
string
x-request-timestamp required
string
x-crypto-key required
string
x-payment-type
string
x-retry-flag
string

Body

Response