Foire Aux Questions
Vue d'ensemble
Que sont les interfaces API de BMO?
Les interfaces API (interfaces de programmation d'applications) permettent aux systèmes et aux applications de s'échanger des renseignements en temps réel.
Les interfaces API de BMO vous permettent de lier vos systèmes comptables, systèmes de gestion de trésorerie et autres programmes financiers à vos comptes des Services bancaires en ligne pour entreprises. Ainsi, vous avez accès à vos activités bancaires en temps réel et aux services de paiement dans les programmes que vous utilisez chaque jour, sans avoir à exporter des données, à télécharger des fichiers ou à ouvrir une session des Services bancaires en ligne pour entreprises. Vous pouvez également utiliser nos interfaces API pour créer vos propres fonctionnalités afin d'intégrer nos services bancaires directement dans vos propres applications et plateformes. Nos interfaces API font travailler vos données bancaires pour vous.
À quelles fins puis-je utiliser les interfaces API de BMO?
Les interfaces API de BMO vous permettent d'accéder aux données de vos comptes et aux services de paiement et de les utiliser quand vous le souhaitez et où que vous soyez. Des clients comme vous utilisent nos interfaces API pour:
- consulter les soldes de tous leurs comptes en temps réel;
- récupérer les soldes de fin de journée, de fin de mois et de fin d’exercice de tous leurs comptes;
- récupérer les historiques de leurs transactions;
- examiner des transactions en fonction d’un ensemble de critères précis;
- remplacer des fichiers BAI et d’autres rapports et processus de règlement.
- récupérer les images des chèques et d’autre articles déposés.
- valider les comptes tiers avant de créer des transactions
- envoyer ou percevoir des paiements
- traiter les achats intégrés à l'appli et approvisionner les portefeuilles digitaux
- recevoir des notifications sur l'état des paiements en temps réel par interface API, courriel ou message texte
Que puis-je faire dans le portail des développeurs de BMO?
Une fois que vous avez créé un compte sur le portail des développeurs BMO, vous pouvez :
- ajouter et gérer l'accès des membres de votre équipe
- explorer nos interfaces API et notre documentation détaillée
- utiliser notre Explorateur des interfaces API pour essayer nos interfaces API et obtenir des exemples de code
- accéder à vos identifiants bac à sable
- générer les jetons d'accès bac à sable
- connecter vos applications directement à notre bac à sable
- demander l'accès à notre environnement de préproduction
- gérer les données de test pour les tests de préproduction
- demander l'accès à l'environnement de production
Qui peut utiliser les interfaces API de BMO?
Si vous êtes un client des Services bancaires en ligne pour entreprises, vous pouvez vous servir de nos interfaces API pour lier vos comptes de BMO et créer des paiements dans vos systèmes comptables, systèmes de gestion de trésorerie et autres programmes financiers.
Combien coûte l’utilisation des interfaces API de BMO?
Vous pouvez expérimenter en toute sécurité avec nos interfaces API dans le bac à sable et les tester dans l'environnement préproduction, et ce, sans frais. Lorsque vous serez prêt à lancer votre application,communiquez avec nous pour discuter la tarification.
Quelles interfaces API sont disponibles?
À l'heure actuelle, vous pouvez utiliser les interfaces API de BMO pour extraire de notre base de données les renseignements sur vos comptes et les images des chèques déposés. Vous pouvez également valider des comptes tiers et créer des paiements nationaux et internationaux sans quitter votre application. Pour plus de détails, veuillez consulter nos interfaces API
Mon compte
Comment puis-je créer un compte sur le portail des développeurs de BMO?
Pour explorer nos interfaces API dans les environnements bac à sable et préproduction, vous devrez remplir une demande d'ouverture de compte d'organisation sur le portail des développeurs de BMO. Une fois votre demande examinée et approuvée, nous vous enverrons un courriel contenant vos identifiants d'ouverture de session et les instructions pour ajouter les membres de votre équipe.
Qu'en est-il si je ne reçois pas ce courriel?
Si vous faites une demande de compte d'organisation et que celle-ci est approuvée, nous vous enverrons deux courriels : le premier contiendra les renseignements relatifs à la configuration du compte et le second, un lien pour créer un mot de passe. Si vous ne voyez pas ces courriels, vérifiez votre courrier indésirable. Si vous ne les trouvez toujours pas, communiquez avec nous.
Comment puis-je changer mon mot de passe?
Vous pouvez réinitialiser votre mot de passe; pour ce faire, cliquez sur le lien Réinitialiser le mot de passe à la page d'ouverture de session, puis entrez votre adresse courriel enregistrée. Si elle correspond à l'adresse qui figure dans nos dossiers, nous vous enverrons par courriel un lien pour créer un nouveau mot de passe. Si vous avez changé d'adresse courriel ou que l'adresse que vous avez entrée ne correspond pas à celle qui figure dans nos dossiers, communiquez avec nous
Tests dans le bac à sable
Que puis-je faire dans le bac à sable?
Le bac à sable est notre environnement inférieur destiné à vous aider pendant la phase initiale de développement de votre code. Vous pouvez y essayer en toute sécurité des scénarios courants à l'aide d'exemples de données. Vous devez disposer d'un compte gratuit pour accéder à l'environnement bac à sable.
Si vous souhaitez simplement essayer les réponses de base des interfaces API sans aucun code, vous pouvez utiliser notre outil Explorateur des interfaces API sur ce site. Cette option est un bon choix si vous en êtes encore à la phase expérimentale de votre développement ou si vous êtes certain de ne pas avoir besoin de tests à ce stade.
Si vous souhaitez essayer nos interfaces API directement dans votre propre application avec nos données statiques, vous pouvez utiliser les identifiants bac à sable, notamment le code de client, le code secret client et la clé API, fournis dans votre compte.
Une fois votre code est prêt, vous pouvez demander l'accès à notre environnement de préproduction, qui vous permettra d'effectuer des tests beaucoup plus complets avant votre lancement.
Tests dans mon appli
Comment puis-je me procurer une clé API de bac à sable?
Pour essayer notre bac à sable dans votre propre application, vous aurez besoin d'une clé API. Cette clé API, ainsi que le code de client et le code secret client affichés sous « Mes applications », peuvent être utilisés directement dans votre application pour communiquer avec notre environnement bac à sable. En fonction de vos préférences linguistiques, vous pouvez choisir entre une clé API pour les réponses en anglais et une autre pour les réponses en français.
Une fois que vous disposez de votre clé API, utilisez notre interface API Autorisation ou rendez-vous sur notre Explorateur des interface API sur ce site pour générer votre jeton d'accès. Vous pouvez utiliser ce jeton et les autres identifiants bac à sable pour essayer n'importe laquelle de nos interfaces API.
- Dans le portail des développeurs de BMO, sélectionnez votre nom d’utilisateur et cliquez sur Mes applis dans la liste déroulante.
- Cliquez sur le bouton Enregistrer une appli.
- Fournissez les renseignements demandés, puis cliquez sur Enregistrer une appli.
Une fois que vous avez votre clé, allez à notre bac à sable et générez un jeton d'accès. Vous pourrez utiliser ce jeton pour tester n’importe laquelle de vos applications enregistrées.
En quoi consiste ma clé API?
Votre clé API est l'un des identifiants que nous vous attribuons. Elle nous permet de vérifier votre identité et de déterminer quelle application tente de se connecter à nos interfaces API.
Dans notre bac à sable, la clé API peut être partagée pour toutes vos applications et se trouve sous « Mes applications » avec les autres identifiants. Nous proposons également deux clés API distinctes qui déterminent la langue dans laquelle vous souhaitez recevoir vos réponses de code.
Pour nos environnements de préproduction et de production, nous vous enverrons une clé interface API unique et distincte pour chaque application.
Combien d'applications puis-je enregistrer ?
Vous pouvez utiliser les identifiants bac à sable de votre compte avec un nombre illimité d'applications. Il n'est pas nécessaire d'enregistrer des applications spécifiques à ce stade.
Une fois qu'une application est prête à passer à l'environnement de préproduction, il vous suffit d'en demander l'accès et nous enregistrerons votre application pour vous et vous communiquerons vos nouveaux identifiants. Il n'y a aucune limite au nombre d'applications que vous pouvez enregistrer en préproduction. Il en va de même lorsque vous passez en production.
Lancement de mon appli
Quelle est la marche à suivre pour faire passer mon appli à l’environnement de production?
Une fois que vous êtes prêt à lancer votre application, communiquez avec nous. Nous vous aiderons à en déterminer le prix et remplacerons vos données d'accès à l'environnement de bac à sable par des données d’accès à l’environnement de production.
Gestion de mes applis dynamiques
Comment puis-je révoquer l'accès d'une application à mes comptes de BMO?
Vous pouvez facilement déconnecter une application des interfaces API de BMO et retirer ses droits d'accès à tous vos comptes et services de paiement. Comment modifier les droits d'accès aux interfaces API d'une application
- Dans les Services bancaires en ligne pour entreprises, sélectionnez l'onglet Administration.
- Sous « Paramѐtres », sélectionnez Profil de l'entreprise
- Sélectionnez l'onglet Services.
- Dans le menu de gauche, sélectionnez Interfaces API de BMO.
- Sous « Applications connectées », à côté de l'application pertinente, sélectionnez Déconnecter l'application.
- Confirmez votre choix en cliquant sur Supprimer l'accѐs maintenant.
L'application a été déconnectée et ne peut plus accéder à vos comptes ou services de paiement des Services bancaires en ligne pour entreprises. Vous pouvez consulter vos applications déconnectées sous « Applications déconnectées ».
Qui peut accéder aux interfaces API de BMO dans les Services bancaires en ligne pour entreprises?
Si vous êtes un administrateur principal du client (APC), vous pouvez gérer les applications connectées qui utilisent les interfaces API de BMO dans les Services bancaires en ligne pour entreprises. Vous pouvez également autoriser d'autres utilisateurs ayant le titre d’APC à accéder à ce service.
Interfaces API – Authorize
Quel système d'autorisation utilisez-vous?
Toutes nos interfaces API sont prises en charge par l’infrastructure OAuth 2.0 standard.
Comment puis-je obtenir l’autorisation de faire des appels?
Pour être autorisé à faire des appels, reportez-vous à nos documents d’autorisation. Vous y trouverez tous les renseignements nécessaires à la mise en œuvre d’un flux OAuth à trois parties.
Pourquoi ai-je besoin d'un jeton d'accès?
Vous devez générer et utiliser un jeton d’accès pour autoriser votre application à connecter à nos environnements bac à sable, préproduction et production. Vous pouvez générer des jetons d'accès bac à sable dans notre outil Explorateur des interface API sur ce site ou utiliser l'interface API Autorisation. Pour les environnements de préproduction et de production, vous devez générer vos jetons d'accès uniquement à l'aide de notre interface API Autorisation. Pour plus d'informations, veuillez consulter notre documentation sur l'interface API Autorisation.
Quels identifiants d’ouverture de session dois-je entrer pour générer un jeton d'accès?
Les identifiants à entrer varient selon que vous connectez à l'environnement bac à sable, préproduction ou production
Dans les environnements bac à sable et préproduction, tous les identifiants d'ouverture de session sont saisis automatiquement pour vous.
Une fois que vous êtes prêt à lancer votre application et à accorder l'accès à vos comptes, utilisez vos identifiants des Services bancaires en ligne pour entreprises existants.
Comment puis-je résoudre un cas de réponse « 401 – Non autorisé »?
Voici ce qu’il faut faire si vous obtenez constamment une réponse « 401 – Non autorisé » :
- Assurez-vous que vos code de client et code secret correspondent bien à l’application que vous avez créée.
- Vérifiez si votre codage en base 64 a été bien formaté, conformément aux documents d’autorisation.
- Assurez-vous que votre jeton d’accès n’a pas été invalidé ou qu’il n’a pas expiré.
Si vous avez essayé tout ce qui précède et que le problème persiste, communiquez avec nous
Interfaces API – Account Information
Quel compte bancaire est associé à mon code de compte d’interface API de BMO?
Lorsque vous effectuez un appel dans notre système, en particulier un appel de type Search for Accounts, vous obtenez une liste des comptes autorisés. Pour des raisons de sécurité, ces comptes porteront un code unique différent du numéro de compte.
Pour connaître le compte associé au code obtenu, reportez-vous au champ du numéro de compte dans le corps de la liste.
Quels comptes serai-je en mesure de voir lorsque je connecterai une application dans l’environnement de production?
Lorsque vous connecterez une application dans l’environnement de production, vous verrez les comptes que vous avez le droit de consulter dans les Services bancaires en ligne pour entreprises.
Puis-je choisir les comptes que je partage avec différentes applications?
Dans le flux d’autorisation, vous pourrez choisir les comptes auxquels vous souhaitez donner accès.
Les comptes que j’ajoute dans les Services bancaires en ligne pour entreprises seront-ils automatiquement partagés avec une application connectée?
Les nouveaux comptes admissibles ne seront pas automatiquement partagés avec une application connectée. Pour les ajouter, veuillez suivre à nouveau la procédure de consentement afin de mettre à jour votre sélection de compte pour chaque interface API. Pour plus de détails, veuillez suivre respectivement notre guide bac à sable, notre guide préproduction ou notre guide production (envoyé par courriel).
Interfaces API – Imaging
Ai-je besoin d'interfaces API supplémentaires pour récupérer mes images de dépôt?
En plus de l'interface API – Authorize qui permet un accès sécurisé de votre application à nos serveurs, vous n'aurez besoin que de l'interface API – Image Retrieval pour récupérer les images de dépôt.
Comment puis-je rechercher et récupérer des images de dépôt?
Une fois que votre application a été authentifiée au moyen de l'interface API – Authorize, vous pouvez commencer votre recherche d’images de dépôt. Voici comment ça fonctionne :
- Obtenez une liste de vos comptes autorisés des Services bancaires en ligne pour entreprises.
- Précisez le numéro de compte, la plage de dates et le type d'article. Vous pouvez également ajouter d’autres critères de recherche.
- Dans l'index des images disponibles, choisissez celles que vous voulez récupérer.
Le processus est-il différent pour les articles canadiens et américains?
Le processus est le même pour les articles canadiens et américains.
Pendant combien de temps ai-je accès aux images de chèques au moyen de l'interface API?
Vous pouvez demander des images d'articles déposés remontant à aussi loin que sept ans. Pour les conserver encore plus longtemps, vous pouvez utiliser l'interface API pour les télécharger et les enregistrer automatiquement dans vos propres archives.
Dans quel format les images sont-elles présentées?
Toutes les images seront en format TIFF.
Interfaces API – Account Validation
Ai-je besoin d'interfaces API supplémentaires pour vérifier la propriété de comptes?
En plus de l'interface API « Account Validation » pour vérifier le titulaire de comptes, vous aurez également besoin de l'interface API « Authorize » pour donner à votre compte un accès sécurisé à nos serveurs et de l'interface API « Encryption » pour chiffrer les renseignements confidentiels de bout en bout.
Quels types de comptes aux États-Unis sont actuellement pris en charge?
À l’heure actuelle, cette interface API prend en charge uniquement les comptes d’épargne et de dépôt aux États-Unis.
Combien de comptes puis-je valider par appel?
Chaque appel permet de valider jusqu'à 100 comptes. Il n'y a aucune limite pour les appels que vous soumettez.
Puis-je choisir de vérifier uniquement le titulaire du compte ou le niveau de risque?
Vous pouvez choisir de vérifier le titulaire du compte, le niveau de risque ou les deux. Il vous suffit de soumettre les renseignements que vous voulez que nous vérifiions.
Que signifient la cote « Owner Match » et la cote « Account Risk »?
Owner Match
Cette cote indique dans quelle mesure les renseignements sur le titulaire du compte que vous avez fournis correspondent à ceux qui figurent au dossier de l’autre banque. Vous pouvez également passer en revue les résultats pour chaque champ. Pour assurer une meilleure correspondance, vous pouvez vérifier plus de renseignements sur le propriétaire dans votre demande.
Account Risk
Cette cote indique le risque lié à l'établissement d'une transaction concernant ce compte. Elle tient compte de divers facteurs, notamment :
- Le compte est-il ouvert et actif?
- Le compte accepte-t-il les crédits et les débits?
- Disposons-nous d'assez de renseignements sur le compte?
- Y a-t-il des antécédents de fraude, de fonds insuffisants ou de demandes de rappel?
| Risque | Raisons possibles |
|---|---|
| Élevé | Le compte peut être fermé ou avoir des antécédents de fraude ou de fonds insuffisants. |
| Moyen | Le compte est ouvert, mais les renseignements sont limités ou l'historique prouve quelques transactions échouées. |
| Faible | Le compte est ouvert et actif, sans historique négatif récent. |
Paiements ACH
Pourquoi un paiement ACH est-il rejeté même si le format de la demande est valide ?
Les paiements ACH peuvent toujours être rejetés en raison des validations d'affaires en aval qui ont habituellement lieu après l'acceptation de la demande initiale. Voici les raisons courantes de rejet :
- restrictions relatives à la banque bénéficiaire
- renseignements inexacts sur le bénéficiaire
- validations des limites
- vérification des sanctions
Si vous n'êtes pas en mesure de résoudre le problème, veuillez nous envoyer un courriel à
Quels caractères spéciaux sont autorisés dans le fichier Nacha (ACH) ?
Les règles d'exploitation et les lignes directrices de la Nacha fournissent une liste définie des caractères spéciaux autorisés qui doivent être respectés lors du traitement des transactions.
L'utilisation de caractères non autorisés peut entraîner le rejet du lot ou du paiement. Consultez les spécifications de l’interface API ACH pour connaître tous les caractères spéciaux approuvés.
L'interface API de paiements ACH prend-elle en charge les prénotes et les microdépôts?
Aujourd'hui, nous avons la balise parent « Category Purpose Code » qui sert à indiquer l'objet du paiement, et ce champ est limité à 4 caractères.
Puisque la spécification Nacha des microdépôts exige que la phrase ACCTVERIFY soit ajoutée pour toutes les transactions de microdépôt, la balise enfant « Category Purpose proprietary » sera mise en correspondance avec la description de l'entrée de la société (Company Entry Description) avec une limite de 35 caractères.
Les transactions API de microdépôts des clients pourront ainsi être formatées conformément à la norme Nacha. Ce changement entrera en vigueur en juillet 2026. Il sera également pris en charge dans le Portail des développeurs de BMO aux fins de mise à l'essai à l'automne 2026.
Service de virement automatisé (SVA)
Pourquoi un paiement SVA est-il rejeté même si le format de la demande est valide ?
Les paiements SVA peuvent toujours être rejetés en raison des validations d'affaires en aval qui ont habituellement lieu après l'acceptation de la demande initiale. Voici les raisons courantes de rejet :
- restrictions relatives à la banque bénéficiaire
- renseignements inexacts sur le bénéficiaire
- validations des limites
- vérification des sanctions
Si vous n'êtes pas en mesure de résoudre le problème, veuillez nous envoyer un courriel à
Paiements instantanés
Pourquoi un paiement instantané est-il rejeté même si le format de la demande est valide ?
Les paiements instantanés peuvent toujours être rejetés en raison des validations d'affaires en aval qui ont habituellement lieu après l'acceptation de la demande initiale. Voici les raisons courantes de rejet :
- restrictions relatives à la banque bénéficiaire
- renseignements inexacts sur le bénéficiaire
- validations des limites
- vérification des sanctions
Si vous n'êtes pas en mesure de résoudre le problème, veuillez nous envoyer un courriel à
Le lien d'exécution (gateway URL) peut-il être retourné directement à notre système au lieu d'être envoyé par courriel au répondant?
Oui, vous pouvez choisir la façon dont le lien d'exécution est envoyé. Nous pouvons soit vous renvoyer le lien directement à votre système, l'envoyer par courriel au répondant ou faire les deux. Cela vous donne un contrôle total et vous permet de supprimer la notification par courriel si elle ne correspond pas à votre expérience ou à votre flux de travail.
À la page d’exécution, puis-je personnaliser le nom du demandeur ?
Oui, vous pouvez préciser le nom du demandeur affiché dans la charge utile.
Qu'advient-il de mon paiement si le destinataire ne répond pas à la question?
Le paiement demeurera en attente jusqu'à ce que la question et la réponse soient répondues, jusqu'à l'expiration du paiement ou jusqu'à l'annulation du paiement.
Si un destinataire doit entrer un mot de passe pour déposer des fonds dans son compte, combien de tentatives infructueuses a-t-il avant que la transaction échoue complètement et doit être annulée?
Le destinataire a 3 tentatives.
Dans quelle mesure les transactions effectuées via l'API de Paiements instantanés sont-elles définitives ?
L’interface API de Paiements instantanés règle les paiements au moyen du service Virement Interac. Les transactions Virement Interac sont des paiements définitifs et irrévocables. Cela signifie que, contrairement aux chèques ou aux dépôts directs, qui peuvent potentiellement être retournés ou annulés, les paiements instantanés ne peuvent pas être annulés. Il peut y avoir certaines exceptions, comme les fonds mal acheminés, les problèmes de fraude et les enquêtes liées à la LBA.
Comment pourrais-je savoir quelles institutions financières destinataires peuvent accepter les paiements acheminés par numéro de compte?
Interac a augmenté le nombre d'institutions financières en mesure de recevoir des paiements acheminés par numéro de compte. Vous trouverez la liste complète sur le site d’Interac. En même temps, le point de terminaison « Obtenir les options de paiement » vous permet de nous envoyer un appel API avec le numéro de compte du destinataire, et nous répondrons en temps réel si cette institution financière prend en charge l'acheminement du numéro de compte.
Virements télégraphiques
Pourquoi un virement télégraphique est-il rejeté alors que la charge utile de la demande est valide ?
Même si la demande passe la validation du schéma et du format, les virements télégraphiques peuvent toujours être rejetés en raison des validations d’affaires en aval. Ces validations ont habituellement lieu après l'acceptation de la demande initiale.Les raisons courantes comprennent :
- BIC invalide ou inexistant
- restrictions relatives aux banques bénéficiaires
- limites de devises ou de corridors
- contrôle des sanctions
- absence de données de règlement requises
Pourquoi un virement télégraphique reste-t-il à l'état en attente ou en traitement ?
Un virement télégraphique peut demeurer à l'état d'attente ou de traitement en raison des heures limites, du traitement par une banque intermédiaire, de vérifications de conformité ou du calendrier de règlement en aval. Les mises à jour sur l'état sont fournies à mesure qu'elles sont accessibles par l'intermédiaire de l'interface API.
Comment les nouveaux essais sont-ils traités pour les soumissions de virements télégraphiques ?
Chaque soumission de virement télégraphique doit inclure un « MessageIdentification », un identifiant d'interface API unique utilisé pour identifier la demande de paiement. La valeur ne doit pas contenir plus de 35 caractères et être unique au cours d'une période de 6 mois. Les soumissions en double ne sont pas permises et échoueront avec une réponse pain.002. Pour tenter de nouveau un virement télégraphique, les clients doivent soumettre une nouvelle demande au moyen d'un nouveau « MessageIdentification » unique.
Pourquoi un virement télégraphique réussit-il les essais en mode bac à sable, mais échoue-t-il en production ?
Le bac à sable n'effectue pas de vérification complète des sanctions, ni de validation du réseau, ni d'acheminement en direct entre banques. Les défaillances de production sont souvent liées à des données bancaires réelles, à des vérifications de conformité ou à des restrictions relatives aux corridors qui ne sont pas entièrement simulées dans le bac à sable.
Pourquoi les données sur le débiteur ultime ne sont-elles pas envoyées au bénéficiaire ?
Le débiteur ultime (Ultimate Debtor) désigne la personne ou l'organisation qui fournit ultimement les fonds pour le virement télégraphique. Ces renseignements ne sont fournis que lorsque les droits appropriés sont activés. Si ces renseignements sont manquants, il est possible que l'établissement de votre organisation ne dispose pas des autorisations requises. Veuillez communiquer avec votre représentant pour confirmer votre configuration.
Remarque : Pour les types de clients Entreprises de services monétaires (ESM), Prêts pour paiement de paiement – Autre ou Expéditeur tiers de la Mise de paiement pour paiement de tiers, des renseignements sur le débiteur ultime sont requis. S'il n'est pas fourni, le virement télégraphique sera rejeté.
Les virements télégraphiques que j'envoie via l'interface API s'affichent-ils à l'écran « Gérer les virements télégraphiques » dans les Services bancaires en ligne pour entreprises ?
Non, les virements télégraphiques effectués au moyen de l'interface API ne s'affichent pas dans les Services bancaires en ligne pour entreprises.
L’adresse « Creditor Address » complète est-elle obligatoire pour les virements télégraphiques ?
Il est fortement recommandé de fournir l’adresse « Creditor Address » complète pour faciliter tout examen de conformité.
Clients américains – Seuls « Creditor Town Name/City » et « Country » sont des champs obligatoires (à compter de novembre 2026) lors de l'envoi d'un virement télégraphique national ou international (à l'extérieur du Canada).
Lorsque vous envoyez un paiement à un « Creditor » domicilié au Canada, l'adresse complète doit être fournie.
* L'environnement de préproduction valide actuellement l'adresse complète du Creditor pour tous les pays, même si ce n'est pas une exigence dans le cadre de l’environnement de production.
Clients au Canada – L'adresse complète du « Creditor » est obligatoire.
Authentification
Quelles sont les durée de vie des jetons TTL/OAuth dans les environnements de bac à sable, de préproduction et de production ?
Les cours TTL pour les jetons sont identiques dans tous les environnements de bac à sable, de préproduction et de production :
- codes d'autorisation expirent après 5 minutes
- jetons d'accès expirent après 15 minutes
- jetons d'actualisation expirent après 1 mois
En quoi l'authentification diffère-t-elle dans les environnements de bac à sable, de préproduction et de production ?
L'authentification pour les environnements de bac à sable et de préproduction repose sur la vérification des identifiants du client.
- Pour trouver vos identifiants de test de bac à sable, accédez au Portail des développeurs de BMO > Espace de travail > Mes applications.
- Pour les identifiants de test en préproduction, nous vous les enverrons par courriel. Consultez notre Guide du client OAuth
L'authentification en production repose sur des identifiants de production précis qui vous donnent accès à notre environnement de production. Vous les recevez par courriel sécurisé.
L'expiration du jeton d'actualisation est-elle réinitialisée lorsqu'un nouveau jeton d'actualisation est émis ?
Oui, BMO émet un nouveau jeton d'actualisation chaque fois qu'un jeton est échangé au point de terminaison /oauth20/token. Le nouveau jeton d'actualisation est valide pendant 1 mois (30 jours). L'ancien jeton ne sera plus valide.
Quand dois-je renouveler mon autorisation ou consentement ?
Si vos interfaces API ne sont pas utilisées activement pendant un certain temps, vos identifiants d'accès peuvent expirer pour des raisons de sécurité. Dans ce cas, vous devrez de nouveau suivre le processus d'autorisation et de consentement pour rétablir l'accès. Cela permet de s'assurer que les identifiants ne sont actifs que lorsqu'ils sont utilisés.
Consentement
Pourquoi l'ensemble de la demande d'interface API échoue-t-elle si le consentement manque pour 1 compte ?
Les échecs de la vérification du consentement dépendent du type de paiement (rail de paiement) et du niveau auquel le consentement échoue.
- Si le consentement échoue au niveau de l'identifiant SBLE, le message complet échoue pour tous les types de paiement.
- Si le consentement échoue au niveau du compte, du numéro de compte SVA ou de l'ACH Company ID, le résultat dépend du type des paiements.
- Dans le cas des transactions ACH, une omission de consentement au niveau de l'ACH Company ID entraîne l'échec seulement du lot concerné — et de toutes les transactions à son intérieur — et non l'ensemble du message.
- Dans le cas des transactions SVA, des virements télégraphiques et du service Interac (paiements instantanés), une omission de consentement au niveau du compte entraîne l'échec de l'ensemble du message.
Pourquoi mon consentement échoue-t-il même si le numéro de compte ou l’ACH Company ID est valide ?
Le consentement est validé au moyen de correspondances exactes. Si le numéro de compte, l’ACH Company ID ou le numéro de compte SVA dans votre demande ne correspond pas exactement à ce qui a été autorisé au moment du consentement, la demande échouera. Cela comprend les différences de formatage ou de longueur.
Cryptage
Les charges utiles chiffrées devraient-elles utiliser un encodage Base64 ou Base64URL ?
Les charges utiles chiffrées doivent utiliser un encodage Base64. Si votre intégration utilise un encodage Base64URL, la demande pourrait échouer. Veiller à ce que le bon format d'encodage est important pour réussir le chiffrement et le déchiffrement.
Avons-nous besoin de fournir la clé publique à BMO ?
Nous suivons un modèle où vous :
- Générez une clé de chiffrement du contenu (CEK) symétrique
- le chiffrez à l'aide de la clé publique de BMO (extraite du point de terminaison de la clé de chiffrement)
- envoyez la clé CEK chiffrée à BMO dans l'en-tête de x-crypto-key
BMO déchiffre la clé CEK avec sa clé privée et utilise la même clé CEK pour chiffrer la réponse qui vous est retournée. Comme vous avez créé la clé CEK et que vous la maintenez dans la main, vous pouvez déchiffrer la réponse à l'aide de cette clé.
Sommaire des directions clés :
- BMO → client : clé publique de BMO
- Client → BMO : clé CEK chiffrée
- Client garde : clé CEK (utilisé pour déchiffrer les réponses)
À quelle fréquence dois-je récupérer une nouvelle clé publique ?
En production, chaque clé publique est valide pendant 120 jours. Pour assurer la continuité, BMO effectue automatiquement la rotation des clés de 7 à 10 jours avant qu'elles expirent.. Il incombe aux clients de récupérer et d'utiliser la nouvelle clé publique avant que l'ancienne clé expire.La réponse API de clé publique comprend un horodatage , afin que vous puissiez facilement savoir quand une actualisation est requise.
Façons recommandées de gérer la rotation des clés
Ces options garantissent que votre intégration continue de se dérouler sans interruption en raison de l'expiration des clés.
Option 1 : Mise en mémoire cache et actualisation (recommandée)
- Stockez la clé publique en toute sécurité.
- Surveillez l'horodatage.
- Récupérez une nouvelle clé avant que 'ancienne clé expire.
Option 2 : Récupération planifiée
- Récupérez la clé publique selon un horaire régulier (p. ex., quotidiennement ou hebdomadaire).
- Utilisez toujours la clé la plus récente rentrée par l'interface API.
General
Comment puis-je obtenir des exemples de charges utiles spécifiques qui n'existent pas dans le bac à sable ?
Veuillez nous envoyer un courriel à
Le comportement des interfaces API en production correspond-il à celui du bac à sable et de préproduction ?
Les environnements de bac à sable et préproduction sont conçus pour soutenir les tests et l'intégration, mais ils ne se comportent pas toujours exactement comme la production.
Bien que l'intention soit d'assortir le plus possible, il peut y avoir quelques petites différences selon la version.
Si vous rencontrez un problème, veuillez consulter les guides de bac à sable et de préproduction.
Si vous n'êtes pas en mesure de résoudre le problème, veuillez nous envoyer un courriel à
En quoi consistent les schémas et comment puis-je accéder aux schémas utilisés par les interfaces API ?
Les schémas définissent la structure attendue des données — quels champs sont autorisés, lesquels sont requis, leur format et les règles qu'ils doivent suivre. Ils sont utilisés pour valider les demandes et les réponses,, en s'assurant que les données sont complètes, correctement formatées et uniformes afin que les systèmes puissent les traiter de façon fiable.
Vous pouvez accéder aux schémas en nous envoyant un courriel à tps.apisupport@bmo.com
Puis-je utiliser des comptes virtuels avec des interfaces API ?
À l'heure actuelle, les comptes virtuels ne sont pas pris en charge par les interfaces API de paiement ou de renseignements sur les comptes.
Le profil d'utilisateur de bout en bout figure-t-il sur le relevé bancaire ?
Non, le code d'utilisateur de bout en bout ne figurera pas sur votre relevé bancaire (code d'utilisateur unique par transaction).
Interac:
- Le code d'utilisateur de bout en bout figurera sur le relevé bancaire pour les paiements envoyés.
- Le code d'utilisateur de bout en bout ne figurera pas sur le relevé bancaire pour les transactions de demande de fonds traitées.
ACH : Le code d'utilisateur de bout en bout s'affichera dans vos rapports Pain.002 et Renseignements sur les comptes/BAI
SVA : Les 19 derniers caractères du code d'utilisateur de bout en bout seront mis en correspondance aux fins de traitement des paiements et figureront dans le site Références de l'émetteur dans les Services bancaires en ligne pour entreprises.
Virements télégraphiques : Le code d'utilisateur de bout en bout s'affichera sous la balise « RFB » par l'intermédiaire du service Renseignements sur les comptes/BAI
Il ne s'affiche pas dans les champs référence de la Banque ou du client
Que signifient les différents états?
Les codes d'état de votre paiement indiquent à quel point se trouve votre paiement. Bien que les étapes de traitement puissent varier selon le type de paiement, les définitions ci-dessous s'appliquent uniformément à l'ensemble des types de paiement pris en charge.
Remarque : Tous les types de paiement ne prennent pas en charge tous les codes d'état. Certains états ne s'appliquent qu'à certains types de paiement, comme il est indiqué ci-dessous.
ACTC – Validation technique acceptée Le paiement a été reçue et réussie toutes les validations techniques et d'affaires requises. Il s'agit du premier état positif pour tous les types de paiement.
RJCT – Rejeté Le paiement a été rejeté et ne peut pas être traité ultérieurement. Cet état peut être retourné à n'importe quelle étape du cycle de vie des paiements, pour tous les types de paiement.
ACCP – Accepté (prétraitement terminé) Le paiement a réussi les validations et est prêt pour le traitement. Cet état s'applique uniquement aux paiements ACH.
ACSP – Règlement accepté en cours Le paiement est en cours de traitement ou de règlement. Cet état s'applique à tous les types de paiement.
ACSC – Règlement accepté et effectué Le traitement et le règlement des paiements ont été effectués avec succès par BMO. Pour le service ACH, le SVA et les virements télégraphiques, il s'agit de la dernière étape de traitement.
Remarque : Les paiements ACH et SVA peuvent toujours être retournés après cet état.
CANC – Annulé Annulation du paiement effectuée avec succès. Cet état s'applique au SVA, au service ACH et aux paiements Interac.
ACCC – Crédit accepté Le règlement a été effectué et le paiement a été traité du côté du bénéficiaire. Cet état ne s'applique qu'aux paiements Interac.
PATC – Vérification technique partiellement acceptée Un état d'acceptation partielle ou provisoire utilisé lors des processus d'annulation, de mise à jour ou de suppression. Cet état s'applique uniquement aux paiements ACH.
Header
Quelles valeurs sont nécessaires pour chaque en-tête ?
L'en-tête facultatif indique l'application interne sous-jacente liée à l'interface API en question : REPLACE_THIS_VALUE' \ : Facultatif; indique si la demande provient d'une application interne BMO
Valeurs:
- Pour Paiements ACH, il doit être 80613
- Pour Service de virement automatisé (SVA), il doit être 87335
- Pour Virements télégraphiques, il doit être 87102
- Pour Paiements instantanés (Interac), il doit être 87679
- en-tête 'x-fapi-customer-ip-address: REPLACE_THIS_VALUE' \ Facultatif, l'adresse IP publique pour l'utilisateur final
- en-tête 'x-fapi-customer-last-logged-time: REPLACE_THIS_VALUE' \ Facultatif, Horodatage du dernier accès d'un utilisateur
- 'en-tête 'x-fapi-customer-user-agent: REPLACE_THIS_VALUE' \ Facultatif, Décrit le type de client utilisé par l'OP (navigateur ou appli mobile). Le client peut remplir ce champ avec la chaîne d'en-tête User-Agent si le navigateur est utilisé. Si l'appli mobile est utilisée, le contenu x-fapi-customer-user-agent doit être différent des chaînes d'agent utilisateur basées sur le navigateur.
- en-tête 'x-fapi-financial-id: REPLACE_THIS_VALUE' \ est 001 pour tous les types de paiements
- en-tête 'x-fapi-interaction-id: REPLACE_THIS_VALUE' \ Requis. C'est un moyen d'identifier la demande. Cela donne un identifiant unique à l'appel API et, dans la réponse, nous retournerons le même identifiant. Ça facilite le dépistage et le débogage, surtout s'il y a beaucoup d'appels en même temps. Peut être la même chose que le code de demande X si aucun lien de session n'est requis
- en-tête 'x-request-id: REPLACE_THIS_VALUE’ \ Requis et unique par demande. Détermine chaque demande individuelle d'interface API aux fins de dépistage et de soutien
Idempotency
Pourquoi un appel en double me donne-t-il une mise à jour de l'état en double et non un RJCT ?
Le système est conçu pour reconnaître lorsqu'une même demande de paiement est soumise plus d'une fois.Si le numéro de message et tous les renseignements sur le paiement sont les mêmes, le paiement ne sera pas traité de nouveau. Le système affichera plutôt le même état qui a été fourni pour le paiement initial, ce qui permettra de traiter le paiement une seule fois.Si le même code de message est réutilisé, mais que les renseignements sur le paiement sont différents, la demande est traitée comme non valide et sera rejetée, car chaque code de message doit représenter un paiement unique