Pourquoi vos montants de TVA diffèrent entre e-commerce et ERP
Comprendre pourquoi les taxes calculées par Shopify, WooCommerce ou Prestashop ne correspondent jamais exactement à celles de votre ERP ou logiciel de facturation, et comment aligner les deux
En résumé
Votre plateforme e-commerce et votre ERP (ou logiciel de facturation) calculent tous deux la taxe correctement, mais avec une logique différente. L'écart que vous observez — souvent de quelques centimes à quelques euros par commande — n'est pas un bug. C'est un problème fondamental de traduction entre deux systèmes conçus pour des objectifs différents.
La solution n'est pas de déplacer un chiffre d'un système à l'autre. Il s'agit d'aligner la logique derrière ce chiffre.
Si vous avez déjà observé un écart de 1,02 € entre Shopify et Pennylane, Sellsy ou Odoo, et vous vous êtes demandé d'où il venait : cette page est pour vous.
Le malentendu central
La plupart des intégrations traitent la taxe comme un prix ou une référence produit : une valeur que l'on déplace d'un système à un autre.
Or la taxe n'est pas une valeur stockée, c'est un champ calculé. Elle dépend de :
- La catégorie du produit
- Le type de client (B2B, B2C, exonéré)
- La juridiction (pays, région, État)
- Les règles de remise
- La fiscalité appliquée aux frais d'expédition
- La méthode d'arrondi
Lorsque vous « synchronisez » un montant de taxe depuis l'e-commerce vers l'ERP, vous poussez le résultat de la logique du système A dans le système B, qui applique alors sa propre logique et obtient une réponse différente.
C'est la cause profonde de l'écart.
Pourquoi les deux systèmes calculent différemment
Plateformes e-commerce
Shopify, WooCommerce, Magento, Prestashop ou BigCommerce sont optimisés pour la rapidité de passage en caisse. Ils utilisent :
- Des classes de taxe produit simples (« taxable / non taxable »)
- Un arrondi au niveau de chaque ligne de commande
- La logique de remise par défaut de la plateforme
- Des règles de fiscalité d'expédition basiques
ERP et logiciels de facturation
Pennylane, Sellsy, Odoo, Axonaut, Evoliz, NetSuite, SAP B1 ou Dynamics sont optimisés pour la conformité et les pistes d'audit. Ils utilisent :
- Des groupes de taxe d'éléments et des codes de taxe liés à la juridiction
- Un arrondi au niveau de la commande (ou mixte)
- Un séquencement strict des remises (avant ou après la taxe)
- Parfois des moteurs de taxe externes (Avalara, Vertex) qui recalculent à chaque modification de commande
Le résultat : deux systèmes où chacun est techniquement correct, mais aucun ne correspond exactement à l'autre.
Les six points d'échec
1. Différence de méthode d'arrondi
Shopify arrondit au niveau des lignes. Votre ERP arrondit souvent au niveau de la commande.
Sur une commande multi-articles avec plusieurs taux de taxe, la différence cumulée peut facilement produire un écart de 1 à 3 €. Les équipes financières appellent cela le « décalage de centime ». Ce n'est pas un bug, c'est une différence de conception.
2. Séquencement des remises
- Shopify applique toujours les remises avant la taxe.
- Magento et WooCommerce permettent de configurer l'ordre.
- Les ERP peuvent appliquer la logique de remise différemment selon le moteur de taxe.
Une remise de 10 % appliquée à différents moments dans la chaîne de calcul produit des montants imposables différents — donc une TVA différente.
3. Taxabilité des frais d'expédition
Les frais d'expédition sont taxables dans certaines juridictions, pas dans d'autres. Chaque système a sa propre logique.
S'ils ne sont pas explicitement alignés, vous aurez des discordances sur chaque commande comportant des frais de port.
4. Articles non taxables devenant taxables dans l'ERP
L'e-commerce facilite la gestion des exonérations : il suffit de désactiver « facturer la taxe ».
Les ERP, eux, exigent des groupes de taxe explicites, des codes de taxe, et parfois des certificats d'exemption. Si le mapping n'est pas exact, l'ERP recalculera silencieusement un produit « non taxable » comme taxable.
5. L'ERP ne fait pas confiance à votre taxe
La plupart des ERP sont conçus pour recalculer la taxe à l'import. Toute modification ultérieure — changement de quantité, mise à jour de remise, échange d'articles — déclenche un recalcul complet avec les règles côté ERP.
Même si les chiffres correspondaient au moment de la synchronisation, ils peuvent dériver plus tard.
6. Deux moteurs de taxe fonctionnant en parallèle
Shopify utilise son moteur de taxe natif. Votre ERP peut utiliser Avalara, Vertex, ou son propre moteur.
Deux moteurs séparément certifiés peuvent produire des résultats différents pour la même commande si la classification produit ou les données de juridiction ne sont pas strictement identiques des deux côtés.
Les solutions classiques (et leurs limites)
« Ne pas synchroniser la taxe »
Laisser l'ERP recalculer la taxe indépendamment. Fonctionne pour la comptabilité interne, mais échoue en B2B quand la taxe de la facture doit correspondre à celle du passage en caisse.
« Forcer le même moteur de taxe partout »
Utiliser Avalara ou Vertex dans les deux systèmes. C'est la meilleure approche, à condition que la classification produit, les exonérations client et les données de juridiction soient maintenues à l'identique des deux côtés. Si elles dérivent, les chiffres aussi.
« Ajustement manuel »
Les équipes financières corrigent à la main. Cela ne passe pas l'échelle au-delà de quelques centaines de commandes par mois.
L'approche propre à long terme
La solution durable consiste à aligner quatre éléments dans les deux systèmes, pas uniquement le montant final de taxe :
Montants imposables
Base de calcul HT identique des deux côtés, pas seulement la TVA finale
Logique d'arrondi
Même niveau d'arrondi (ligne ou commande) dans les deux systèmes
Séquencement des remises
Remises appliquées au même moment de la chaîne de calcul
Classification produit et client
Mêmes catégories de taxe, mêmes exonérations, mêmes juridictions
Puis construire une couche de réconciliation qui détecte les dérives avant qu'elles n'atteignent vos livres comptables.
Comment Order Invoicer gère ces écarts
Order Invoicer synchronise les commandes e-commerce vers votre logiciel de facturation en préservant autant que possible la logique d'origine :
- Les lignes de commande sont envoyées avec leur HT, TVA et TTC calculés par la plateforme source.
- Les frais d'expédition sont transmis comme une ligne distincte avec leur propre taux de TVA.
- Les remises sont appliquées au même niveau que sur la plateforme source pour éviter les dérives de base imposable.
- Les codes TVA côté ERP sont mappés explicitement aux taux e-commerce via la configuration du connecteur.
Un écart de quelques centimes entre la commande e-commerce et la facture ERP reste possible et attendu — il est lié aux règles d'arrondi structurelles décrites ci-dessus, pas à une erreur de synchronisation.
La fonctionnalité Ajustements
Pour absorber ces écarts d'arrondi sans intervention manuelle, Order Invoicer intègre une fonctionnalité Ajustements (« Adjustments ») disponible sur tous les connecteurs de facturation : Pennylane, Sellsy, Odoo, Qonto.
Comment ça marche
Après la création de chaque facture, avoir, devis ou commande côté ERP, Order Invoicer compare le TTC de la commande e-commerce avec le TTC calculé par l'ERP. Si les deux ne correspondent pas exactement, une ligne de correction est ajoutée automatiquement au document avec :
- Une quantité de 1
- Un montant unitaire égal exactement à l'écart (positif ou négatif)
- Un taux de TVA à 0 % (ligne exonérée, pour ne pas introduire de nouvelle base imposable)
- Le libellé de votre choix (ex. « Ajustement d'arrondi », « Écart TVA »)
- Le code comptable de votre choix (ex. un compte d'ajustement ou de produit exceptionnel)
Résultat : le TTC final de la facture correspond exactement au TTC de la commande e-commerce, tout en conservant la logique de calcul de taxe de l'ERP sur les lignes produits.
Configuration
Dans les paramètres de votre connecteur (Paramètres → carte Ajustements), vous configurez :
Libellé des ajustements
Le texte qui apparaîtra sur la ligne de correction de la facture
Code comptable
Le compte de l'ERP sur lequel imputer les ajustements
Différence de montant autorisée
Le seuil maximum au-delà duquel l'ajustement ne s'applique pas automatiquement
Notification par email
Recevoir un email en cas d'échec d'un ajustement automatique
Quand l'ajustement s'applique
L'ajustement automatique est déclenché uniquement si la différence absolue entre le TTC source et le TTC ERP est inférieure ou égale au seuil configuré (par défaut : 0,01 €, avec une tolérance technique de 0,01 € supplémentaire).
Si l'écart dépasse le seuil, aucun ajustement n'est appliqué. C'est volontaire : au-delà d'un certain montant, l'écart révèle un vrai problème de configuration (taux de TVA, taxabilité du port, mapping produit), pas un simple arrondi — il doit être investigué, pas masqué.
Robustesse
- L'ajustement est retenté jusqu'à 3 fois en cas d'échec temporaire de l'ERP.
- Si l'ajustement échoue malgré les retries, une notification par email est envoyée aux utilisateurs configurés, avec la référence de la commande.
- L'ajustement s'applique aux factures, avoirs, devis et bons de commande.
Quand l'ajustement ne suffit pas
Si vous constatez des écarts supérieurs au seuil d'ajustement, c'est le signe d'une dérive de configuration à corriger en amont :
- Vérifiez que les taux de TVA configurés dans l'ERP correspondent exactement à ceux de la plateforme e-commerce
- Vérifiez que la taxabilité des frais de port est identique des deux côtés
- Vérifiez que les produits exonérés sont correctement mappés vers un code TVA exonéré côté ERP
- Vérifiez que les clients B2B intracommunautaires sont bien identifiés comme tels dans les deux systèmes