Établir des factures dans une autre devise en UBL : DocumentCurrencyCode, TaxCurrencyCode et doubles totaux de TVA.
Toutes les factures ne sont pas en euros. Dans le cadre du commerce international, il arrive régulièrement de facturer en dollars, en livres sterling ou dans une autre devise. UBL prend cela en charge, mais une couche supplémentaire entre en jeu : dans de nombreux cas, la TVA doit être exprimée dans la devise locale de l'administration fiscale. Cet article explique comment construire correctement une facture en devise étrangère.
La devise de la facture est déterminée par l'élément DocumentCurrencyCode. Tous les montants de la facture (montants par ligne, totaux, PayableAmount) sont exprimés dans cette devise :
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
Dans cet exemple, la facture est établie en dollars américains. Les codes de devise suivent la norme ISO 4217 (EUR, USD, GBP, CHF, etc.).
Lorsque la devise de la facture diffère de celle dans laquelle la TVA doit être déclarée à l'administration fiscale, vous indiquez une seconde devise via TaxCurrencyCode :
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode>
Cela indique que la facture est établie en dollars, mais que les montants de TVA doivent également être exprimés en euros. Aux Pays-Bas, la devise de déclaration de TVA est toujours l'euro. Cet élément est donc pertinent pour les fournisseurs néerlandais qui facturent dans une autre devise.
Lorsque TaxCurrencyCode est renseigné et diffère de DocumentCurrencyCode, la facture doit contenir deux blocs TaxTotal :
TaxTotal dans la devise de la facture (avec des éléments TaxSubtotal)TaxTotal dans la devise de TVA (uniquement le montant total de TVA, sans TaxSubtotal)<!-- TVA dans la devise de la facture (USD) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="USD">210.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">1000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">210.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- TVA dans la devise de déclaration (EUR) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">189.00</cbc:TaxAmount>
</cac:TaxTotal>
Le premier bloc contient le détail complet de la TVA en dollars. Le second bloc ne contient que le montant total de TVA en euros. Ce second montant est basé sur le taux de change en vigueur au moment de la facturation.
Attention: le second bloc TaxTotal ne contient pas d'éléments TaxSubtotal. Seul le montant total de TVA dans la devise de déclaration est requis.
La norme UBL ne prescrit pas la manière dont le taux de change doit être enregistré. En pratique, deux approches existent :
Taux implicite. Le taux de change peut être déduit du rapport entre les montants de TVA dans les deux devises. Dans l'exemple ci-dessus : 189,00 / 210,00 = 0,90 (1 USD = 0,90 EUR). C'est l'approche la plus courante.
Mention explicite. Certaines organisations mentionnent le taux de change utilisé dans les PaymentTerms ou sous forme de note. Ce n'est pas standardisé, mais peut être utile pour la comptabilité.
Conseil: pour le taux de change, vous pouvez utiliser le taux de référence de la BCE en vigueur à la date de la facture. La plupart des logiciels comptables appliquent ces taux automatiquement.
Tous les montants dans LegalMonetaryTotal sont exprimés dans la DocumentCurrencyCode. Il n'existe pas de bloc de totaux distinct dans la devise de déclaration :
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="USD">1000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="USD">1210.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="USD">1210.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Les situations les plus courantes :
Pour les livraisons intracommunautaires au sein de l'UE, la facturation se fait généralement en euros, mais une autre devise est autorisée à condition que la déclaration de TVA soit effectuée dans la devise locale.
eConnect traite les factures dans toutes les devises courantes. Les éléments DocumentCurrencyCode et TaxCurrencyCode sont automatiquement reconnus et validés. Si vous envoyez des factures en devise étrangère via la PSB API, assurez-vous que tous les attributs currencyID contiennent systématiquement le bon code de devise. Un mélange de devises au sein des montants par ligne entraîne une erreur de validation.
Valider une facture