Jak wystawiać faktury w obcej walucie w UBL: DocumentCurrencyCode, TaxCurrencyCode i podwójne sumy VAT.
Nie każda faktura jest wystawiona w euro. W handlu międzynarodowym regularnie zdarza się fakturowanie w dolarach, funtach brytyjskich lub innej walucie. UBL obsługuje tę możliwość, ale pojawia się dodatkowa warstwa: w wielu przypadkach VAT musi być wyrażony w walucie lokalnej urzędu skarbowego. Niniejszy artykuł wyjaśnia, jak prawidłowo zbudować fakturę w obcej walucie.
Waluta faktury jest określona przez element DocumentCurrencyCode. Wszystkie kwoty na fakturze (kwoty pozycji, sumy, PayableAmount) są wyrażone w tej walucie:
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
W tym przykładzie faktura jest wystawiona w dolarach amerykańskich. Kody walut są zgodne ze standardem ISO 4217 (EUR, USD, GBP, CHF itd.).
Jeśli waluta faktury różni się od waluty, w której VAT musi być zadeklarowany w urzędzie skarbowym, wprowadza się drugą walutę za pomocą TaxCurrencyCode:
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode>
Oznacza to, że faktura jest wystawiona w dolarach, ale kwoty VAT muszą być wyrażone również w euro. W Holandii walutą deklaracji VAT jest zawsze euro, dlatego dla holenderskich dostawców fakturujących w innej walucie ten element jest istotny.
Gdy TaxCurrencyCode jest podany i różni się od DocumentCurrencyCode, faktura musi zawierać dwa bloki TaxTotal:
TaxTotal w walucie faktury (z elementami TaxSubtotal)TaxTotal w walucie VAT (tylko łączna kwota VAT, bez TaxSubtotal)<!-- VAT w walucie faktury (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>
<!-- VAT w walucie sprawozdawczej (EUR) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">189.00</cbc:TaxAmount>
</cac:TaxTotal>
Pierwszy blok zawiera pełne obliczenie VAT w dolarach. Drugi blok zawiera jedynie łączną kwotę VAT w euro. Ta druga kwota opiera się na kursie wymiany obowiązującym w momencie wystawienia faktury.
Uwaga: drugi blok TaxTotal nie zawiera elementów TaxSubtotal. Wystarczy podać jedynie łączną kwotę VAT w walucie sprawozdawczej.
Standard UBL nie określa, w jaki sposób kurs wymiany powinien być rejestrowany. W praktyce stosowane są dwa podejścia:
Kurs dorozumiany. Kurs wymiany można wywnioskować ze stosunku kwot VAT w obu walutach. W powyższym przykładzie: 189,00 / 210,00 = 0,90 (1 USD = 0,90 EUR). Jest to najpowszechniejsze podejście.
Jawne wskazanie. Niektóre organizacje podają zastosowany kurs wymiany w PaymentTerms lub jako notatkę. Nie jest to metoda znormalizowana, ale może być przydatna dla celów administracyjnych.
Wskazówka: jako kurs wymiany można wykorzystać kurs referencyjny EBC obowiązujący w dniu wystawienia faktury. Większość programów księgowych stosuje te kursy automatycznie.
Wszystkie kwoty w LegalMonetaryTotal są wyrażone w DocumentCurrencyCode. Nie ma osobnego bloku sum w walucie sprawozdawczej:
<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>
Najczęstsze sytuacje:
Przy dostawach wewnątrzwspólnotowych w ramach UE zazwyczaj fakturuje się w euro, ale również w tym przypadku dopuszczalna jest inna waluta, pod warunkiem że sprawozdawczość VAT odbywa się w walucie lokalnej.
eConnect przetwarza faktury we wszystkich popularnych walutach. Pola DocumentCurrencyCode i TaxCurrencyCode są automatycznie rozpoznawane i walidowane. Jeśli faktury w obcej walucie wysyłane są przez PSB API, należy upewnić się, że wszystkie atrybuty currencyID zawierają spójnie prawidłowy kod waluty. Mieszanie walut w kwotach pozycji prowadzi do błędu walidacji.
Zwaliduj fakturę