quote → cash
FR/EN Contact

Taxe·Référence·9 min·Mis à jour le 05/10/2026

Cas d’usage · Taxe

TVA intracommunautaire

Appliquer la bonne TVA au-delà des frontières européennes, cas à taux zéro compris, et pouvoir justifier n’importe quel taux sur n’importe quelle facture.

Salesforce docs documenté par SalesforceTerrain constaté sur une vraie orgRecommandé ce que nous recommandonsÀ vérifier non vérifié

Le besoin métier

Facturer des clients dans et hors UE en appliquant la TVA domestique, les règles intracommunautaires et l’exonération à l’export — et permettre à la comptabilité de justifier chaque ligne à un auditeur.

Pourquoi ce n’est pas trivial

Trois pièges distincts. Le taux doit suivre le bon pays. Le code de TVA doit changer avec le pays, ce qu’aucun mécanisme natif ne fait. Et une ligne à taux zéro et une ligne non taxée se ressemblent sur la facture alors qu’elles veulent dire des choses complètement différentes.

L’architecture recommandée

Résoudre depuis le profil de facturation (voir taxation pilotée par le profil), porter une zone fiscale sur le compte, et poser le traitement sur la ligne avec une policy Manual (voir code de TVA par pays).

Chargez les taux zéro explicitement. Une ligne qui dit « c’est à taux zéro » est un fait différent d’une ligne absente, et une seule des deux est défendable.

Composants Salesforce

Sélectionnez-en un pour ouvrir son détail.

Le flux

Architecture fiscale transaction → code → taux
QUI QUELLE RÈGLE COMBIEN RÉSULTAT country selection looks up LegalEntity qui vend BillingAccount qui est facturé TaxPolicy comment choisir TaxTreatment produit × code TaxEngine le calculateur TaxRate code × pays × période InvoiceLineTax le seul endroit où le code atterrit

Scroll the diagram sideways

Deux choses décident de tout ici. D’abord, c’est le pays du profil de facturation qui commande le taux, pas l’adresse de la commande — vérifié dans les deux sens sur deux commandes aux adresses différentes et au même profil. Ensuite, aucun mécanisme natif ne fait varier le code de TVA par pays : TaxTreatmentItem n’a aucun champ géographique, et la decision table standard prend un code en entrée et rend un taux, donc elle ne peut jamais produire un code.

Mise en œuvre

  1. Zone fiscale en picklist sur le compte, maintenue par la comptabilité plutôt que dérivée — les exceptions sont un vrai besoin, pas un cas marginal.
  2. Une ligne de taux par code × pays × période, zéros compris.
  3. Un flow qui mappe zone vers code de TVA à la création et à la mise à jour de la ligne de devis.
  4. Policy en Manual pour que le reprice ne défasse rien.

Attention

  • Une zone qui paraît à taux zéro peut ne pas l’être. Un territoire couramment supposé hors TVA s’est avéré appartenir à la zone TVA d’un pays voisin, au taux domestique plein — confirmé contre la table de taux, pas contre les notes de réunion. Vérifiez la table, pas la salle.
  • Le code de TVA n’atteint jamais InvoiceLine.TaxCode. Exposez-le par un champ formule sur le traitement si la comptabilité doit le voir sur la ligne.

Alternatives

Un moteur fiscal externe supprime la charge de maintenance des taux et devient la bonne réponse à grande échelle ou aux États-Unis. Pour une poignée de pays européens aux taux stables, il ajoute une dépendance et un coût pour des règles qui tiennent dans une table.

Ressources Salesforce