Vous utilisez Odoo pour vos ventes, vos achats ou vos stocks, mais votre comptabilité tourne sur QuickBooks et vos commerciaux vivent dans HubSpot ou Salesforce ? L'Odoo API permet de faire circuler clients, devis, factures et paiements entre ces outils sans ressaisie. Dans cet article, nous expliquons comment fonctionne l'API d'Odoo, quels flux synchroniser avec chaque logiciel, et comment construire une intégration fiable plutôt qu'un script fragile qui casse au premier incident.
Comment fonctionne l'Odoo API
Odoo expose une API externe qui donne accès à presque tous ses modèles de données : res.partner pour les contacts, sale.order pour les commandes, account.move pour les factures, product.product pour les articles, stock.quant pour les stocks. Historiquement, cette API passe par les protocoles XML-RPC et JSON-RPC, avec une méthode centrale (execute_kw) qui permet de lire, chercher, créer, modifier ou supprimer des enregistrements.
Les versions récentes d'Odoo introduisent une API JSON plus moderne et annoncent la sortie progressive de XML-RPC et JSON-RPC. Si vous démarrez un projet aujourd'hui, vérifiez la version de votre instance et prévoyez une couche d'accès isolée dans votre code : le jour où le protocole change, vous ne modifiez qu'un seul module.
Quelques points pratiques à connaître avant de commencer :
- Authentification : utilisez une clé API liée à un utilisateur technique dédié, jamais le compte d'un collaborateur.
- Droits : l'utilisateur technique ne doit avoir accès qu'aux modèles nécessaires. Moins de droits, moins de risques.
- Offre Odoo : sur Odoo Online, l'accès à l'API externe dépend de votre abonnement. Vérifiez-le avant de chiffrer le projet.
- Champs personnalisés : les champs ajoutés via Studio ou un module (préfixe
x_) sont accessibles par l'API comme les autres.
Connecter Odoo à QuickBooks : factures et paiements
Le cas le plus fréquent : Odoo gère la vente et la logistique, QuickBooks (ou Xero, ou Sage) reste l'outil du cabinet comptable. L'objectif est que chaque facture validée dans Odoo apparaisse dans QuickBooks, et que chaque paiement enregistré côté comptable remonte dans Odoo.
Les flux à synchroniser
- Clients : Odoo vers QuickBooks, avec une clé de correspondance stockée des deux côtés (l'identifiant QuickBooks dans un champ Odoo, par exemple).
- Articles et comptes : un tableau de correspondance entre produits Odoo et articles QuickBooks, et entre taxes Odoo et codes de TVA.
- Factures et avoirs : Odoo vers QuickBooks, uniquement à l'état « comptabilisé ».
- Paiements : QuickBooks vers Odoo, pour lettrer les factures et suivre les impayés.
Les pièges courants
L'API QuickBooks Online utilise OAuth 2.0 avec des jetons d'accès de courte durée (de l'ordre d'une heure) et un jeton de rafraîchissement à renouveler régulièrement. Un connecteur qui ne gère pas ce renouvellement s'arrête silencieusement au bout de quelques semaines. Autre piège : les arrondis de TVA. Si Odoo calcule la taxe par ligne et QuickBooks au total, quelques centimes d'écart suffisent à bloquer un rapprochement. Il faut décider qui fait foi et envoyer les montants calculés plutôt que les laisser recalculer.
Connecter Odoo à HubSpot : du marketing à la commande
HubSpot est souvent l'outil du marketing et des commerciaux, Odoo celui de l'exécution. Une bonne intégration Odoo avec HubSpot évite la double saisie au moment où une affaire est gagnée.
- Contacts et entreprises : synchronisation bidirectionnelle, avec une règle claire sur le champ maître (l'adresse e-mail pour les contacts, le SIREN ou le nom de domaine pour les entreprises).
- Transactions gagnées : création automatique d'un devis ou d'une commande dans Odoo quand une transaction HubSpot passe à « gagnée ».
- Retour d'information : statut de commande, montant facturé ou date de livraison renvoyés dans HubSpot pour que les commerciaux voient l'état réel du client.
HubSpot propose des webhooks : plutôt que d'interroger l'API toutes les cinq minutes, vous recevez un événement à chaque modification. C'est plus réactif et cela consomme moins de quota. Les limites de requêtes HubSpot se comptent par fenêtre de quelques secondes et varient selon l'abonnement : un import initial de plusieurs dizaines de milliers de contacts doit être découpé en lots.
Connecter Odoo à Salesforce : volumes et gouvernance
Salesforce équipe plutôt des structures commerciales plus importantes, avec des volumes et des règles de gestion plus lourds. Le principe reste le même (comptes, opportunités, devis, commandes), mais trois éléments changent la donne :
- Les limites d'API quotidiennes dépendent de l'édition et du nombre de licences. Un connecteur mal conçu peut épuiser le quota et bloquer d'autres outils branchés sur Salesforce.
- La Bulk API est adaptée aux synchronisations massives (reprise d'historique, mises à jour de catalogue) : elle traite des milliers d'enregistrements par appel au lieu d'un seul.
- Les événements (Change Data Capture, Platform Events) permettent de réagir en quasi temps réel aux modifications côté Salesforce sans interrogation permanente.
Avec Salesforce, la gouvernance compte autant que le code : qui peut modifier un compte ? Quel système crée l'identifiant client ? Ces décisions doivent être écrites avant de développer le connecteur Odoo.
Connecteur du marché ou intégration API sur mesure ?
Il existe des connecteurs prêts à l'emploi sur l'App Store Odoo et des plateformes d'automatisation sans code. Ils conviennent bien à des besoins standard. Le sur-mesure devient pertinent quand les règles métier sortent du cadre.
| Critère | Connecteur du marché | Intégration API sur mesure |
|---|---|---|
| Mise en route | Quelques heures à quelques jours | Quelques semaines selon le périmètre |
| Règles métier spécifiques | Limitées aux options prévues | Adaptées à votre processus |
| Volumes importants | Variable, souvent facturé au volume | Traitements batch dimensionnés |
| Gestion des erreurs | Souvent opaque | Journalisée, rejouable, alertes |
| Coût récurrent | Abonnement mensuel | Maintenance seulement |
Une règle simple : si vous passez plus de temps à contourner le connecteur qu'à l'utiliser, ou si des écarts apparaissent chaque mois entre vos outils, une intégration API sur mesure avec Odoo sera vite rentable.
Les règles d'une intégration Odoo API qui tient dans le temps
Que vous développiez en interne ou avec un intégrateur Odoo, ces principes font la différence entre un flux fiable et une source d'incidents :
- Idempotence : renvoyer deux fois le même message ne doit jamais créer deux factures. Chaque enregistrement porte un identifiant externe vérifié avant création.
- Reprises automatiques : une API indisponible quelques minutes ne doit provoquer ni doublon ni perte. Les tâches échouées sont réessayées avec un délai croissant (une file de tâches comme Celery s'y prête bien).
- Rejets explicites : une donnée invalide (TVA inconnue, client sans adresse) part dans une liste de rejets visible, au lieu d'être ignorée en silence.
- Journalisation : chaque synchronisation est tracée et peut être rejouée. Quand le comptable demande pourquoi une facture manque, la réponse se trouve en deux minutes.
- Accès minimal : identifiants en lecture seule quand c'est possible, jamais écrits dans les journaux.
- Supervision : une alerte en cas d'échec et un tableau de bord des synchronisations.
Ces règles ne sont pas théoriques. Notre fondateur a réduit des tâches d'intégration Celery de plusieurs heures à quelques minutes sur des connecteurs Salesforce, QuickBooks, Xero et HubSpot, et conçu des workflows batch financiers traitant environ 50 000 enregistrements par minute.
Questions fréquentes
L'Odoo API est-elle disponible sur toutes les offres ?
Sur une instance Odoo hébergée chez vous ou sur Odoo.sh, l'API externe est disponible. Sur Odoo Online, l'accès dépend de l'abonnement souscrit : vérifiez votre offre avant de lancer le projet.
Combien de temps faut-il pour connecter Odoo à QuickBooks ou HubSpot ?
Pour un flux simple (clients et factures dans un sens), comptez de l'ordre de quelques jours à deux semaines, tests compris. Une synchronisation bidirectionnelle avec règles métier, reprise d'historique et supervision demande plutôt plusieurs semaines.
Faut-il synchroniser en temps réel ?
Pas toujours. Les contacts et les transactions gagnent à être synchronisés à l'événement (webhooks). Les factures et les paiements peuvent très bien passer en lots toutes les heures ou chaque nuit, ce qui simplifie les contrôles et ménage les quotas d'API.
Vous voulez relier Odoo à QuickBooks, HubSpot, Salesforce ou à un autre outil ? Découvrez notre offre d'intégrateur Odoo et d'intégration API ERP/CRM, puis décrivez-nous votre intégration : nous vous répondons avec une première analyse des flux et une estimation du périmètre.