Our Push Notifications API allows you to conveniently automate your status tracking for all of your API-generated payments. 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.

It's a fully customizable solution where you can choose which status changes you want to be notified about and how you would like to receive them. We're offering real-time notifications by API Webhook, email, text message or any combination of the three. You can even specify who in your company should receive these updates by providing us with up to 10 phone numbers and 5 emails for each API operation (e.g. Send wire payments vs. Collect Fedwire drawdown).

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)

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