Oui, l'API externe d'Odoo permet à un autre logiciel de lire et d'écrire pratiquement toutes les données de votre base : clients, produits, devis, commandes, factures, stock, fabrication. Sur Odoo Online, elle n'est accessible qu'avec le plan Custom, et chaque accès passe par une clé d'API liée à un utilisateur dont les droits limitent ce que l'intégration peut faire. Depuis Odoo 19, une nouvelle API appelée JSON-2 remplace les anciens protocoles XML-RPC et JSON-RPC, dont Odoo annonce la suppression pour Odoo Online 21.1 (hiver 2027) et Odoo 22 (automne 2028).
Que permet concrètement l'API externe d'Odoo ?
Une API, c'est une porte d'entrée par laquelle un programme parle à Odoo sans passer par l'écran. En pratique, presque tout ce qu'un utilisateur fait à la main dans Odoo, un programme peut le faire par l'API, dans la limite des droits de l'utilisateur qu'il représente :
- Lire : le chiffre d'affaires du mois, les factures impayées, le stock disponible d'un article, l'avancement d'un ordre de fabrication.
- Créer : un contact, un devis avec toutes ses lignes, une commande, une facture en brouillon, un article, une nomenclature.
- Modifier : une adresse de livraison, une quantité, un statut, une date promise.
- Déclencher les actions métier : confirmer un devis, valider une livraison, lancer une fabrication. Ce sont les mêmes boutons que dans l'interface.
Ce dernier point est important : l'API ne contourne pas Odoo. Une commande créée par un programme suit les mêmes règles qu'une commande saisie par un vendeur : droits d'accès, numérotation, taxes.
L'API n'est pas une application prête à l'emploi : il faut un programme de l'autre côté, qu'il s'agisse d'un connecteur existant, d'un outil d'automatisation comme Make, Zapier ou n8n, ou d'une application sur mesure.
Quel plan Odoo faut-il pour utiliser l'API sur Odoo Online ?
La documentation officielle est claire : l'accès aux données par l'API externe n'est disponible que sur les plans tarifaires Custom. Il n'est pas disponible sur les plans One App Free et Standard. La page des tarifs d'Odoo range d'ailleurs l'« API externe » parmi ce qu'apporte le plan Custom, avec Studio, le multisociété et la possibilité d'héberger sur Odoo.sh ou sur votre propre serveur.
Conséquence pratique : si votre base est au plan Standard et que vous voulez connecter un outil externe, il faut compter le passage au plan Custom, facturé par utilisateur, pour toute la base. J'en parle plus en détail dans les articles sur le coût d'un projet Odoo en Belgique et sur les limites d'Odoo Online.
À l'inverse, les intégrations intégrées à Odoo lui-même (prestataires de paiement, synchronisation bancaire, envoi des factures par Peppol) ne passent pas par l'API externe : elles fonctionnent avec votre abonnement, sans programme tiers.
Clés d'API : comment sécuriser l'accès à vos données ?
Une clé d'API est l'équivalent d'un mot de passe, mais pour un programme. Elle se crée dans les préférences de l'utilisateur, onglet Sécurité du compte, avec une description et une durée de validité. Dans la documentation d'Odoo 19 et 20, une clé ne peut pas durer plus de trois mois : une intégration permanente doit donc prévoir le renouvellement de sa clé au moins une fois par trimestre. Pour un usage ponctuel, Odoo recommande une durée courte, typiquement un jour.
Une clé d'API donne exactement les droits de l'utilisateur qui la porte. Si cet utilisateur est administrateur, la clé l'est aussi.
Les règles que j'applique sur chaque projet :
- Un utilisateur dédié à l'intégration. La documentation d'Odoo recommande des utilisateurs « robots » pour les usages automatisés. Les modifications apparaissent sous ce nom dans l'historique, sans se faire passer pour un collaborateur, et son mot de passe peut rester vide pour empêcher toute connexion à l'écran. Cet utilisateur interne est en principe compté dans votre abonnement.
- Des droits minimaux. Un configurateur en ligne qui crée des contacts et des devis n'a besoin ni de la comptabilité ni des salaires. On ne donne que ce qui sert.
- Une clé jamais exposée. Pas dans le code d'une page web visible par le navigateur, pas dans un e-mail, pas dans un tableur partagé, pas dans un dépôt de code. Elle reste côté serveur, dans un emplacement prévu pour les secrets.
- Une date d'expiration suivie. L'échéance de la clé est notée, et la nouvelle clé est installée avant qu'elle n'expire. En cas de doute, la clé est révoquée immédiatement ; une clé supprimée ne peut pas être récupérée, il suffit d'en créer une autre.
XML-RPC, JSON-RPC, JSON-2 : quelle différence et quel calendrier ?
Ce sont trois « langues » techniques pour parler à la même API. Pour un dirigeant, la seule chose qui compte est de savoir laquelle utilisent vos connecteurs, parce que deux d'entre elles vont disparaître.
| Protocole | Statut | Ce qu'il faut retenir |
|---|---|---|
| XML-RPC | Déprécié depuis Odoo 19 | Le protocole historique, utilisé par de nombreux connecteurs existants. Suppression annoncée pour Odoo Online 21.1 (hiver 2027) et Odoo 22 (automne 2028). |
| JSON-RPC | Déprécié depuis Odoo 19 | Même calendrier de suppression que XML-RPC. |
| JSON-2 | Recommandé depuis Odoo 19 | La nouvelle API officielle, présentée par Odoo comme le remplacement des deux autres. |
Le point d'attention, c'est Odoo Online. Les bases Online reçoivent les versions intermédiaires : un connecteur écrit en XML-RPC peut donc cesser de fonctionner sur une base Online dès l'hiver 2027, bien avant la sortie d'Odoo 22. La question à poser à votre prestataire est simple : « Ce connecteur utilise-t-il JSON-2 ? Sinon, quand est-il prévu de le migrer ? »
Ce que JSON-2 change en pratique
- Chaque appel vise une adresse claire, qui contient l'objet et l'action (par exemple « lire des contacts »), et la clé d'API voyage dans l'en-tête de la requête.
- Chaque appel est traité comme une opération indépendante. On ne peut pas enchaîner plusieurs appels en un seul bloc qui serait annulé entièrement en cas d'erreur. Une intégration bien conçue regroupe donc les opérations liées en un seul appel.
- Chaque base dispose d'une documentation générée automatiquement des objets, champs et actions disponibles chez vous.
Webhooks et volume d'appels : ce qu'il faut savoir
Les webhooks, quand Odoo prévient lui-même un autre logiciel
Avec l'API, c'est l'autre logiciel qui pose la question à Odoo. Avec un webhook, c'est l'événement qui déclenche l'échange, sans attendre. Odoo propose les deux sens dans ses règles d'automatisation :
- Recevoir : le déclencheur « Sur webhook » génère une adresse unique. Un outil externe y envoie des données (un paiement reçu, un formulaire rempli) et Odoo exécute l'action prévue. La documentation insiste : cette adresse est confidentielle, et elle peut être régénérée si elle a circulé.
- Envoyer : une règle d'automatisation peut transmettre des données à un service externe quand un enregistrement change, par exemple à la confirmation d'une commande.
Les webhooks conviennent bien aux échanges simples et ponctuels. Pour des règles plus riches (vérifier, transformer, répartir entre plusieurs outils), on place une petite application entre les deux, qui reçoit le webhook et parle ensuite à Odoo par l'API. Odoo recommande de tester tout webhook sur une copie de la base avant de l'activer en production.
Y a-t-il des limites au nombre d'appels ?
La documentation de l'API ne publie pas de quota chiffré. En revanche, la politique d'utilisation acceptable d'Odoo interdit les appels massifs sans régulation, et précise que des appels limités à environ un par seconde, sans appels en parallèle et sur des périodes non soutenues, sont généralement acceptables. Odoo rappelle aussi qu'il existe des outils d'import par lots, et cite l'hébergement dédié sur Odoo.sh comme alternative pour lever cette restriction.
Concrètement, une intégration sérieuse sur Odoo Online :
- lit et écrit par lots plutôt qu'enregistrement par enregistrement ;
- ne synchronise que ce qui a changé depuis le dernier passage ;
- garde en mémoire les données stables (catalogue, tarifs) au lieu de les redemander à chaque clic ;
- préfère un webhook à une interrogation toutes les dix secondes ;
- sait patienter et réessayer quand Odoo répond qu'il est trop sollicité.
Si vos volumes sont vraiment élevés, la question de l'hébergement se pose. Je compare les options dans l'article Odoo Online, Odoo.sh ou serveur.
Quels projets peut-on mener avec l'API ?
Quelques exemples typiques pour une PME, tous réalisables en restant sur Odoo Online, sans module installé dans la base :
- Un configurateur en ligne qui calcule le prix d'un produit sur mesure et crée dans Odoo le client, l'article, la nomenclature et le devis à signer. Je détaille cette approche dans l'article sur le configurateur de produit relié à Odoo.
- Un portail pour vos clients, revendeurs ou fournisseurs, qui affiche commandes, livraisons et documents en direct depuis Odoo (voir portail client Odoo).
- Un tableau de bord de direction, en lecture seule, qui réunit trésorerie, ventes et production.
- Une synchronisation avec une boutique externe : commandes, clients et stock échangés avec un site qui n'est pas sur Odoo.
- Un outil métier interne, comme un portail d'étude pour un installateur, qui prépare le devis et le chantier dans Odoo.
Le principe est toujours le même : Odoo reste la référence pour les données (clients, prix, stock, comptabilité), et l'application externe n'ajoute que les écrans et les calculs qu'Odoo ne sait pas faire. Votre base reste standard et suit les mises à jour automatiques d'Odoo Online.
Que faut-il prévoir à chaque nouvelle version d'Odoo ?
Sur Odoo Online, les mises à jour de version finissent par s'imposer : Odoo prévient dans la base quelques semaines avant une mise à jour obligatoire, puis la déclenche automatiquement si rien n'est fait avant l'échéance. Odoo recommande de demander d'abord une base de test mise à jour, et cite explicitement les intégrations avec des logiciels externes parmi ce qu'il faut tester. Ma liste de contrôle :
- Tenir l'inventaire des intégrations : quel outil, quel protocole, quel utilisateur, quelle clé et quelle date d'expiration.
- Tester sur la base de test les scénarios complets : créer un devis, le confirmer, facturer. Attention, Odoo y désactive les actions planifiées, l'envoi d'e-mails et les paiements.
- Vérifier les champs et les actions utilisés : d'une version à l'autre, Odoo renomme ou réorganise parfois des champs, et une intégration qui s'appuie sur un ancien nom tombe en erreur.
- Contrôler le protocole au regard du calendrier de suppression de XML-RPC et JSON-RPC.
- Prévoir un petit budget de maintenance chaque année : une intégration n'est pas un achat unique, c'est un outil qu'on entretient.
Questions fréquentes
Puis-je utiliser l'API d'Odoo avec le plan Standard ?
Non. Selon la documentation officielle, l'accès aux données par l'API externe est réservé aux plans Custom. Les plans One App Free et Standard n'y donnent pas accès.
Mon connecteur en XML-RPC va-t-il cesser de fonctionner ?
Oui, à terme. Odoo a déprécié XML-RPC et JSON-RPC avec Odoo 19 et annonce leur suppression pour Odoo Online 21.1 (hiver 2027) et Odoo 22 (automne 2028). Il faut migrer le connecteur vers JSON-2 avant ces échéances.
L'API d'Odoo est-elle sûre ?
Elle respecte les mêmes droits et règles que l'interface. La sécurité dépend surtout de vous : un utilisateur dédié aux droits minimaux, une clé stockée côté serveur et jamais exposée, renouvelée au moins tous les trois mois.
Faut-il un développeur pour utiliser l'API ?
Pour relier deux outils avec un connecteur existant ou un outil comme Make ou n8n, pas forcément. Dès qu'il y a des règles métier, des calculs ou des écrans spécifiques, il faut une application conçue pour votre cas.
Vous avez un logiciel à relier à Odoo, ou un connecteur à moderniser avant la fin de XML-RPC ? Décrivez-moi votre situation via le formulaire de projet. Je vous montre ensuite, sur votre propre cas, à quoi ressemblerait l'intégration : cette démo est gratuite.