Connecter Sage Intacct : synchroniser clients, factures et produits
Obtenez un Client ID et un Client Secret dans Sage Developer Portal, autorisez un utilisateur Web Services dédié, collez les valeurs dans Integration, testez, mappez et activez : clients, factures et produits se synchronisent dans les deux sens.
Le connecteur Sage Intacct synchronise clients, factures et produits entre Sage Intacct et votre système dans les deux sens : vous pouvez importer chacun d’eux et le renvoyer. Les commandes de vente et le stock ne font pas partie de cette connexion aujourd’hui : vous synchronisez pour l’instant clients, factures et produits. Un détail compte dès le départ : les identifiants sont liés à un utilisateur d’intégration Web Services dédié, et se connecter à l’interface web avec cet utilisateur invalidera le token (REST-2102).
Prérequis#
- Une société Sage Intacct, plus une app dans Sage Developer Portal pour cette société.
- Un utilisateur d’intégration Web Services dédié, autorisé explicitement dans la configuration de la société. Utilisez un utilisateur créé uniquement pour cette connexion, pas le compte quotidien d’une personne.
- Ne vous connectez jamais à l’interface web de Sage Intacct avec cet utilisateur d’intégration. Cela invalide le token et les synchronisations suivantes échouent avec REST-2102.
- Si votre société utilise plusieurs entités, préparez l’Entity ID : vous le saisirez dans le champ company_id. Les sociétés à entité unique peuvent laisser ce champ vide.
Obtenir les identifiants#
- Allez dans Sage Developer Portal → votre app, et copiez le Client ID affiché.
- Au même endroit, copiez le Client Secret. Le secret n’est affiché qu’une seule fois : enregistrez-le en lieu sûr avant de quitter la page.
- Assurez-vous que ces identifiants sont liés à l’utilisateur Web Services autorisé explicitement dans la configuration de votre société Sage Intacct. Autorisez-y votre utilisateur d’intégration dédié : l’étape du token sera rejetée si l’app n’est pas autorisée dans la configuration Web Services de la société.
Remplir dans Integration#
- Ouvrez Integration, créez une nouvelle connexion et choisissez Sage Intacct. Le formulaire comporte les trois champs ci-dessous : remplissez-les dans cet ordre.
- client_id (Client ID) : obligatoire, champ texte. Collez le Client ID copié depuis Sage Developer Portal → votre app.
- client_secret (Client Secret) : obligatoire, champ mot de passe. Collez le Client Secret de la même page de l’app. Il est conservé comme secret et n’est plus réaffiché après l’enregistrement.
- company_id (Company ID (optional)) : facultatif, champ texte, par exemple mycompany. Ne le remplissez que si vous travaillez avec plusieurs entités : saisissez l’Entity ID ici. Dans ce formulaire, Company ID et Entity ID sont la même valeur — il n’y a pas de champ d’entité séparé, et les sociétés à entité unique le laissent vide.
- Il n’y a aucun champ d’adresse de serveur à remplir. La connexion utilise toujours l’adresse de l’API REST v1 de Sage Intacct : https://api.intacct.com/ia/api/v1.
Tester la connexion#
Cliquez sur Tester la connexion : le système exécute deux étapes réelles. Étape un : il échange votre Client ID et votre Client Secret contre un token à l’adresse de token Sage Intacct (POST https://api.intacct.com/ia/api/v1/oauth2/token). Si l’un des champs obligatoires est vide, le test s’arrête aussitôt avec MISSING_CLIENT_SECRET et n’envoie aucune requête. Si Sage Intacct répond 401 à cette étape, le résultat est INVALID_CREDENTIALS : les valeurs sont incorrectes, ou l’app n’est pas autorisée dans la configuration Web Services de la société.
Étape deux : avec ce token, le système fait un petit sondage via le service de requêtes (POST /services/core/query) en demandant un client — objet customer, champs id et name, taille 1. Une réponse 200 signifie que la connexion fonctionne de bout en bout. Si le sondage répond 401, le résultat est INVALID_TOKEN et le message contient le rappel REST-2102 : se connecter à l’interface web avec l’utilisateur autorisé invalide le token. Le test attend jusqu’à 12 secondes avant de déclarer un dépassement de délai.
Mapping / choisir un modèle#
Mappez les trois types d’objets de cette connexion : les clients, les factures (l’objet arinvoice dans Sage Intacct) et les produits. Pour chaque type, associez les champs Sage Intacct aux champs de votre côté —au minimum l’id et le nom de l’enregistrement— et vérifiez l’aperçu avec un enregistrement réel avant d’activer. Si vous avez rempli company_id, confirmez que les enregistrements de l’aperçu appartiennent à cette entité.
Activer#
Après activation, les flux activés synchronisent clients, factures et produits entre Sage Intacct et votre système : les enregistrements nouveaux et modifiés sont importés, et ceux que vous créez ou mettez à jour de votre côté sont renvoyés vers Sage Intacct. Surveillez les premières exécutions dans Runs / Logs. Si les synchronisations se mettent soudain à échouer avec REST-2102, ne changez pas d’abord le mapping : vérifiez si quelqu’un s’est connecté à l’interface web avec l’utilisateur d’intégration, faites émettre un nouveau token et assurez-vous que cet utilisateur reste hors de l’interface web.
FAQ#
La synchronisation échoue soudain avec REST-2102, ou le test renvoie INVALID_TOKEN
Le token a été invalidé. La cause habituelle : quelqu’un s’est connecté à l’interface web de Sage Intacct avec l’utilisateur d’intégration Web Services autorisé — cette connexion invalide le token dont dépend cette connexion.
Faites émettre un nouveau token pour la connexion, testez à nouveau et gardez cet utilisateur d’intégration hors de l’interface web définitivement : il ne doit exister que pour cette connexion.
Le test renvoie INVALID_CREDENTIALS (401 lors de l’obtention du token)
Soit le Client ID ou le Client Secret collé est incorrect, soit l’app n’est pas autorisée dans la configuration Web Services de votre société Sage Intacct : Sage Intacct rejette la demande de token dans les deux cas.
Recopiez les deux valeurs depuis Sage Developer Portal → votre app (le secret n’est affiché qu’une fois : utilisez la copie enregistrée), collez-les à nouveau sans espaces supplémentaires et confirmez dans la configuration de la société que l’app est autorisée pour votre utilisateur Web Services dédié. Puis testez à nouveau.
Le test renvoie MISSING_CLIENT_SECRET
L’un des deux champs obligatoires — client_id ou client_secret — est vide dans le formulaire de connexion. Le test vérifie cela d’abord et n’envoie aucune requête à Sage Intacct tant que les deux ne sont pas remplis.
Remplissez client_id et client_secret avec les valeurs de Sage Developer Portal → votre app, enregistrez et relancez le test.
Les commandes de vente ou le stock n’arrivent pas
Ce n’est pas une erreur de mapping. Cette connexion synchronise uniquement clients, factures et produits : les commandes de vente et le stock ne sont pas transportés, donc rien n’arrive pour ces deux types, quel que soit le mapping.
Limitez les flux de cette connexion aux clients, factures et produits, et traitez pour l’instant les commandes de vente et le stock par votre autre processus existant.