Come emettere fatture in valuta estera in UBL: DocumentCurrencyCode, TaxCurrencyCode e doppi totali IVA.
Non tutte le fatture sono in euro. Nel commercio internazionale capita regolarmente di fatturare in dollari, sterline britanniche o un'altra valuta. UBL supporta questa possibilità, ma si aggiunge un livello ulteriore: in molti casi l'IVA deve essere espressa nella valuta locale dell'autorità fiscale. Questo articolo spiega come strutturare correttamente una fattura in valuta estera.
La valuta della fattura è determinata dall'elemento DocumentCurrencyCode. Tutti gli importi della fattura (importi delle righe, totali, PayableAmount) sono espressi in questa valuta:
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
In questo esempio la fattura è emessa in dollari americani. I codici valuta seguono lo standard ISO 4217 (EUR, USD, GBP, CHF e così via).
Se la valuta della fattura differisce dalla valuta in cui l'IVA deve essere dichiarata all'autorità fiscale, si inserisce una seconda valuta tramite TaxCurrencyCode:
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode>
Questo indica che la fattura è emessa in dollari, ma che gli importi IVA devono essere espressi anche in euro. Nei Paesi Bassi la valuta per la dichiarazione IVA è sempre l'euro, pertanto per i fornitori olandesi che fatturano in un'altra valuta questo elemento è rilevante.
Quando TaxCurrencyCode è specificato e differisce da DocumentCurrencyCode, la fattura deve contenere due blocchi TaxTotal:
TaxTotal nella valuta della fattura (con elementi TaxSubtotal)TaxTotal nella valuta IVA (solo l'importo IVA totale, senza TaxSubtotal)<!-- IVA in valuta della fattura (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>
<!-- IVA in valuta di rendicontazione (EUR) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">189.00</cbc:TaxAmount>
</cac:TaxTotal>
Il primo blocco contiene il calcolo IVA completo in dollari. Il secondo blocco contiene solo l'importo IVA totale in euro. Questo secondo importo si basa sul tasso di cambio vigente al momento dell'emissione della fattura.
Attenzione: il secondo blocco TaxTotal non contiene elementi TaxSubtotal. È sufficiente indicare solo l'importo IVA totale nella valuta di rendicontazione.
Lo standard UBL non prescrive come debba essere registrato il tasso di cambio. Nella pratica esistono due approcci:
Tasso implicito. Il tasso di cambio può essere ricavato dal rapporto tra gli importi IVA nelle due valute. Nell'esempio precedente: 189,00 / 210,00 = 0,90 (1 USD = 0,90 EUR). Questo è l'approccio più comune.
Indicazione esplicita. Alcune organizzazioni inseriscono il tasso di cambio applicato nei PaymentTerms o come nota. Non si tratta di un metodo standardizzato, ma può essere utile per l'amministrazione.
Suggerimento: per il tasso di cambio è possibile utilizzare il tasso di riferimento della BCE valido alla data della fattura. La maggior parte dei software contabili applica automaticamente questi tassi.
Tutti gli importi nel LegalMonetaryTotal sono espressi nella DocumentCurrencyCode. Non esiste un blocco totali separato nella valuta di rendicontazione:
<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>
Le situazioni più comuni:
Per le cessioni intracomunitarie all'interno dell'UE si fattura di norma in euro, ma anche in questo caso è consentita un'altra valuta, purché la rendicontazione IVA avvenga nella valuta locale.
eConnect elabora fatture in tutte le valute più comuni. I campi DocumentCurrencyCode e TaxCurrencyCode vengono riconosciuti e validati automaticamente. Se si inviano fatture in valuta estera tramite la PSB API, occorre assicurarsi che tutti gli attributi currencyID contengano in modo coerente il codice valuta corretto. Una combinazione di valute diverse all'interno degli importi delle righe genera un errore di validazione.
Validi la fattura