Intégration · ERP

Connecter Microsoft Dynamics 365 Business Central à votre logiciel métier

Microsoft Dynamics 365 Business Central se relie à un logiciel métier par son API REST v2.0 (clients, articles, commandes, factures, écritures), par des webhooks qui signalent chaque création ou modification, et par des API personnalisées en AL quand un champ manque. YMHB Web construit ces liaisons sur mesure, avec une authentification OAuth 2.0 propre à l'application et un journal de chaque échange.

L'essentiel

  • L'API v2.0 de Business Central permet de lire et d'écrire les clients, fournisseurs, articles, devis, commandes et factures de chaque société, et d'en lire les écritures comptables.
  • Les webhooks de Business Central couvrent 22 entités standard, expirent au bout de trois jours et ne transmettent que la référence de la fiche modifiée.
  • Depuis octobre 2022, Business Central en ligne refuse les clés d'accès (Basic Auth) : toute intégration passe par OAuth 2.0 et Microsoft Entra ID.
  • Microsoft limite chaque utilisateur de l'API Business Central à 6 000 requêtes sur cinq minutes glissantes et à cinq requêtes simultanées.
  • Les abonnements Business Central Essentials et Premium incluent trois bacs à sable, où une intégration se teste sur une copie des données de production.

Que peut-on lire et écrire dans Business Central par l'API ?

Par l'API standard v2.0, un logiciel métier peut lire, créer, modifier et supprimer les fiches centrales de Business Central (tiers, articles, documents de vente et d'achat) et lire les écritures comptables, que l'API expose en lecture seule. Parmi les services web pris en charge (REST, SOAP, OData), Microsoft recommande la pile d'API REST dès qu'une autre application doit se connecter. En ligne, l'API est activée par défaut ; chaque appel vise un environnement nommé puis une société : api.businesscentral.dynamics.com/v2.0/{environnement}/api/v2.0/companies({id})/{objet}.

DomaineObjets de l'API v2.0Usage typique
Tierscustomers, vendors, employeesCréer le client saisi ailleurs
Catalogueitems, itemCategories, unitsOfMeasureAlimenter un configurateur ou un site
VentessalesQuotes, salesOrders, salesInvoices, salesCreditMemosDéposer une commande, suivre la facture
AchatspurchaseInvoicesTransmettre une facture fournisseur contrôlée
Comptabilitéaccounts, generalLedgerEntries, journals, customerPaymentJournals, dimensionsLire les écritures, saisir des encaissements
Référentielscurrencies, paymentTerms, paymentMethods, shipmentMethodsPartager les mêmes codes

Une commande de vente (salesOrder) expose ses lignes, son PDF (pdfDocument), ses pièces jointes et l'action shipAndInvoice, qui expédie et facture en un seul appel. Quand un champ propre à votre activité manque, Microsoft est clair : on n'ajoute pas de champ à une API standard. Il faut copier son code AL et publier une API personnalisée, appelée par un chemin api/{éditeur}/{groupe}/{version}.

Comment Business Central prévient-il votre logiciel d'un changement ?

Business Central prévient votre logiciel par des webhooks : le programme abonné reçoit un appel HTTP quand une fiche est créée, modifiée ou supprimée. Microsoft liste 22 entités standard compatibles, dont customers, items, salesOrders, salesInvoices et purchaseInvoices ; modifier une ligne déclenche une notification sur l'en-tête du document.

  • Poignée de main : à l'inscription, Business Central envoie un paramètre validationToken que votre service renvoie tel quel avec un code 200.
  • Trois jours de validité : sans renouvellement, l'abonnement expire.
  • Une référence, pas les données : le message donne la ressource et le type de changement (created, updated, deleted) ; votre logiciel relit la fiche par l'API.
  • Regroupement : Business Central attend 30 secondes ; si plus de 1 000 enregistrements changent entre-temps, il envoie une seule notification collection, avec un filtre à interroger.
  • Nouvelles tentatives : sur une réponse 408, 429 ou 5xx, Business Central réessaie pendant 36 heures ; toute autre erreur supprime l'abonnement.
  • Plafond : 200 abonnements par environnement.

Une API personnalisée peut aussi notifier, si c'est une page (pas une requête) sans clé composite.

Quelle authentification, quelles limites d'appels et quel bac à sable ?

Business Central en ligne impose OAuth 2.0 avec Microsoft Entra ID : selon Microsoft, les clés d'accès aux services web (Basic Auth) sont dépréciées et ne sont plus prises en charge en ligne depuis octobre 2022. Pour une synchronisation sans utilisateur connecté, Microsoft prévoit l'authentification de service à service (flux client credentials) : application enregistrée dans Microsoft Entra avec la permission API.ReadWrite.All, puis déclarée dans la page « Applications Microsoft Entra » de Business Central avec ses autorisations. L'ensemble SUPER est interdit aux applications, et ce compte d'application ne demande pas de licence selon Microsoft.

Limite publiée pour Business Central en ligneValeurRéponse au-delà
Débit par utilisateur6 000 requêtes sur une fenêtre glissante de 5 minutes429 Too Many Requests
Requêtes simultanées par utilisateur5, les suivantes en file d'attente503 après 8 minutes d'attente
Connexions par utilisateur100, traitées et en attente429
Taille d'une page de résultats20 000 entités413
Requête groupée ($batch)100 opérationsnon précisé
Durée d'une opération8 minutes408, session annulée

Pour tester, les abonnements Essentials et Premium incluent trois bacs à sable. Créé comme copie de la production, un bac à sable a ses webhooks désactivés ; Microsoft le déconseille pour mesurer les performances.

Quels flux relier en priorité dans une PME ?

Les flux à relier en premier sont ceux qui font recopier une donnée d'un écran à l'autre, les doubles saisies. Cinq exemples pas à pas :

  1. Commande prise chez le client. Le commercial valide sur sa tablette, dans une application de prise de commande ; la salesOrder est créée avec les numéros d'articles Business Central ; à l'expédition, shipAndInvoice produit la facture, dont le numéro revient dans l'application.
  2. Client ouvert par la comptabilité. La comptable crée le client ; la notification customers arrive ; le logiciel de planning relit la fiche et garde l'identifiant Business Central, sans second code client.
  3. Facture dans l'espace client. Une salesInvoice est validée ; le portail client télécharge son PDF et le dépose dans le compte du client, qui n'appelle plus pour un duplicata.
  4. Intervention clôturée. Pièces consommées et temps passé saisis dans l'application terrain deviennent des lignes de commande ; une référence inconnue part dans une liste d'anomalies au lieu d'être forcée.
  5. Marge de la veille. Un traitement de nuit lit les écritures (generalLedgerEntries) du jour pour le tableau de bord de direction, sans export Excel retouché.

Comment se déroule une intégration Business Central ?

Une intégration Business Central se déroule en cinq étapes.

  1. Cadrage : liste des flux, logiciel maître pour chaque donnée, table de correspondance des codes.
  2. Accès : l'application est créée dans votre locataire Microsoft Entra, avec les seules autorisations nécessaires.
  3. Construction flux par flux contre un bac à sable copié de la production.
  4. Champ manquant : l'API personnalisée en AL se décide avec votre partenaire Business Central, qui maintient vos paramétrages.
  5. Mise en service en double circuit avant bascule, puis chaque mise à jour repasse par le bac à sable.

Ce qui fait échouer une synchronisation Business Central

  • Abonnement expiré en silence : sans renouvellement planifié, les notifications cessent sans erreur visible. Une tâche quotidienne renouvelle et vérifie.
  • Récepteur qui répond mal : une erreur 400 coûte l'abonnement. Le récepteur accuse réception tout de suite et traite ensuite, depuis une file d'attente.
  • Doublons : une commande renvoyée après une coupure ne doit pas exister deux fois ; l'identifiant de chaque document créé est vérifié avant écriture.
  • Erreurs 429 : une reprise de 30 000 articles dépasse vite le débit. Lecture par pages, lots de 100 opérations au plus, nouveaux essais espacés.
  • Modifications de masse : après un changement de tarif général, une seule notification collection arrive ; le connecteur Business Central de Power Automate ne la traite pas.
  • Secret client : affiché une seule fois par Microsoft Entra, il se range dans un coffre, jamais dans le code.
  • Données personnelles : clients particuliers et salariés relèvent du RGPD ; le journal garde l'identifiant et le statut de chaque échange, pas la fiche (voir notre guide RGPD).

Power Automate, Dataverse ou service d'intégration sur mesure ?

Power Automate suffit quand le flux est court et reste dans l'univers Microsoft, par exemple prévenir une personne quand une facture est validée. Microsoft propose aussi une intégration native entre Business Central et Dataverse : synchronisation, tables virtuelles et événements de modification. Ces outils sont à essayer avant tout développement.

Un service sur mesure se justifie dans quatre cas : le logiciel métier n'est pas un produit Microsoft ; le flux touche la facturation ou le stock et doit être rejoué sans perte ; les volumes dépassent le seuil des notifications collection ; la correspondance des codes demande des règles métier (regroupements, contrôles, exceptions). Les principes généraux de ces architectures sont décrits sur notre page pour connecter ses logiciels par API.

Ce que YMHB Web vous remet à la fin

YMHB Web livre un service d'intégration dont le code, les accès et l'hébergement sont à votre nom : application Entra dans votre locataire, dépôt de code remis au paiement intégral, documentation de chaque flux et de chaque correspondance de champ. Un journal et un écran des anomalies montrent quand une commande est partie, avec quelle réponse, et permettent de relancer un envoi (voir API et intégrations).

Par transparence : les intégrations publiées par YMHB Web portent sur d'autres systèmes, les services web Chronopost et l'API Dealer Parts de Peugeot Motocycles pour APARO. Sur Business Central, le cadrage commence par la lecture de votre environnement et de vos extensions.

Questions fréquentes

L'API de Business Central est-elle incluse dans l'abonnement ?

Oui, Microsoft indique que les API de Business Central en ligne sont activées par défaut. Microsoft indique qu'une application qui se connecte en service à service utilise un compte d'application qui ne demande pas de licence, et renvoie à son guide des licences pour les cas particuliers. Le coût d'une intégration Business Central tient donc surtout au développement, à l'hébergement du service et à sa maintenance.

Peut-on encore se connecter à Business Central avec une clé d'accès ?

Non, pas sur Business Central en ligne. Microsoft indique que les clés d'accès aux services web, c'est-à-dire l'authentification Basic, sont dépréciées et ne sont plus prises en charge en ligne depuis octobre 2022. Une intégration Business Central doit utiliser OAuth 2.0 avec Microsoft Entra ID, en général par le flux client credentials pour les traitements qui tournent sans utilisateur connecté.

Combien d'appels par minute l'API de Business Central accepte-t-elle ?

Microsoft ne fixe pas de plafond par minute pour l'API de Business Central, mais 6 000 requêtes par utilisateur sur une fenêtre glissante de cinq minutes, avec cinq requêtes simultanées au plus. Au-delà, l'API répond 429. Pour gagner en débit, Microsoft recommande de répartir les appels entre plusieurs utilisateurs ou principaux de service, à tour de rôle.

Les webhooks de Business Central envoient-ils les données modifiées ?

Non. Une notification webhook de Business Central contient la référence de la ressource, le type de changement (création, modification, suppression) et l'horodatage, mais pas le contenu de la fiche. Le logiciel abonné relit ensuite la fiche par l'API. Business Central attend 30 secondes avant d'envoyer, et regroupe en une notification collection les changements portant sur plus de 1 000 enregistrements.

Comment ajouter un champ qui n'existe pas dans l'API standard de Business Central ?

Microsoft indique qu'on ne peut pas étendre une API standard de Business Central avec des champs supplémentaires. La solution consiste à copier le code AL de l'API concernée et à publier une API personnalisée, définie par une page ou une requête de type API, dans une extension. Elle est ensuite appelée par un chemin qui comporte l'éditeur, le groupe et la version choisis.

Peut-on tester une intégration Business Central sans toucher à la production ?

Oui. Les abonnements Business Central Essentials et Premium incluent trois bacs à sable, qui peuvent être créés comme copie de la production. Microsoft y désactive alors les webhooks et certaines connexions, ce qui évite d'envoyer des données réelles par erreur. En revanche, Microsoft déconseille le bac à sable pour mesurer les performances, car il ne tourne pas sur les mêmes ressources que la production.

À lire aussi

Sources

  1. Microsoft Learn, Business Central : REST API overview (API standard, API personnalisées, pile recommandée)
  2. Microsoft Learn, Business Central API (v2.0) : activation par défaut en ligne, extension des API standard
  3. Microsoft Learn, Business Central : API endpoint structure
  4. Microsoft Learn, Business Central API v2.0 : salesOrder resource type (méthodes, action shipAndInvoice, pdfDocument)
  5. Microsoft Learn, Business Central API v2.0 : generalLedgerEntry resource type (méthode GET uniquement)
  6. Microsoft Learn, Business Central API v2.0 : Working with webhooks (entités, expiration, notifications, nouvelles tentatives)
  7. Microsoft Learn, Business Central : Operational limits online (limites OData et webhooks)
  8. Microsoft Learn, Business Central : Web services authentication (fin des clés d'accès en ligne depuis octobre 2022)
  9. Microsoft Learn, Business Central : Using OAuth to authorize web services (service à service, compte d'application sans licence, durée des jetons)
  10. Microsoft Learn, Business Central : Service-to-service authentication (Microsoft Entra, API.ReadWrite.All, ensemble SUPER interdit)
  11. Microsoft Learn, Business Central : Managing production and sandbox environments (trois bacs à sable inclus)
  12. Microsoft Learn, Business Central : Environment types (copie de production, webhooks désactivés)
  13. Microsoft Learn, Business Central : Integration overview (pile REST recommandée, SOAP, OData, Dataverse, Power Platform)

Prêt à démarrer ?

Décrivez-nous votre situation, pas une liste de fonctionnalités.

Réponse sous un jour ouvré, en général par téléphone. Si un outil du marché suffit, nous vous le dirons.

Premier échange sans engagementCadrage avant chiffrage

AppelerDécrire mon problème