Różnice kursowe z wyciągów bankowych: wyliczenie, które biura wciąż robią w Excelu
Jedna faktura, trzy kursy
Weźmy klienta, który importuje z Niemiec. Faktura od dostawcy na 10 000 EUR ma datę 2 września. 25 września klient płaci ją z rachunku złotowego, a bank przewalutowuje kwotę.
Oto, co księgowa musi ustalić dla tej jednej zapłaty. Używam okrągłych, przykładowych kursów, a nie prawdziwych z tych dni:
- Koszt: średni kurs NBP z ostatniego dnia roboczego przed dniem poniesienia kosztu, powiedzmy 4,2700. Koszt to 42 700 zł.
- Zapłata: klient płacił z rachunku złotowego, więc liczy się kurs faktycznie zastosowany przez bank, jego kurs sprzedaży, powiedzmy 4,2950. Klient zapłacił 42 950 zł.
- Różnica: 10 000 × (4,2950 − 4,2700) = 250 zł ujemnej różnicy kursowej, koszt podatkowy we wrześniu.
Zmieńmy jedną rzecz: klient płaci z rachunku w euro, z pieniędzy, które w sierpniu wpłacił mu odbiorca, a ten wpływ wyceniono po 4,2500. Teraz wychodzi 200 zł dodatniej różnicy, czyli przychód. Ta sama faktura, ten sam dzień, a wynik różni się o 450 zł. Zmieniło się tylko to, z którego rachunku wyszły pieniądze.
I to jest cały problem. Sama różnica kursowa to prosta arytmetyka. Trudne jest co innego: wiedzieć, jaki kurs stoi po każdej stronie, skąd się wziął, i mieć to dla każdej płatności walutowej każdego klienta.
Gdzie są przepisy
Krótko, bo szczegóły są w ustawach:
- Podatek dochodowy, ujęcie: przychody i koszty w walucie przelicza się po średnim kursie NBP z ostatniego dnia roboczego poprzedzającego dzień uzyskania przychodu albo poniesienia kosztu.
- Podatek dochodowy, zapłata: art. 15a CIT i art. 24c PIT liczą różnice kursowe od kursu faktycznie zastosowanego w dniu otrzymania lub zapłaty. Dopiero gdy faktycznego kursu nie da się ustalić, stosuje się średni kurs NBP z ostatniego dnia roboczego przed tym dniem. Urząd może zakwestionować kurs faktyczny, który odbiega od średniego kursu NBP o ponad 5%.
- VAT: art. 31a ustawy o VAT przelicza podstawę opodatkowania po średnim kursie NBP z ostatniego dnia roboczego przed powstaniem obowiązku podatkowego (albo po kursie EBC, jeśli podatnik tak wybierze). W VAT różnice kursowe nie powstają. Kwota podatku w złotych jest ustalona w chwili ujęcia faktury.
- Koniec roku: wycena bilansowa według art. 30 ustawy o rachunkowości daje różnice niezrealizowane. W domyślnej metodzie podatkowej nie wchodzą one do podstawy opodatkowania. Klient może zamiast tego wybrać dla podatku metodę rachunkową (art. 9b CIT, art. 14b PIT), a ten wybór wiąże go co najmniej trzy lata.
Ostatni punkt waży więcej, niż się wydaje. Jeśli nie wiecie, którą metodę wybrał klient, każda liczba poniżej to zgadywanie.
Gdzie biura się mylą
Przejrzałem dość arkuszy z zamknięcia miesiąca, żeby wiedzieć, że wraca w nich tych samych pięć błędów:
- Kurs NBP przy przewalutowanej zapłacie. Klient zapłacił z rachunku złotowego, bank przeliczył po swoim kursie, a arkusz i tak bierze średni kurs NBP z dnia zapłaty. Na każdym wierszu różnica jest przesunięta o spread banku. Na pojedynczej pozycji to grosze, w skali roku już nie.
- Rachunek walutowy bez kolejki. Euro wpływa po jednym kursie, a wychodzi później na zapłatę dostawcom. Bez kolejki FIFO (albo innej metody ustalonej z doradcą klienta) prowadzonej z miesiąca na miesiąc nikt nie powie, po jakim kursie euro z danej zapłaty weszło na rachunek. Zwykle ktoś odtwarza to w grudniu.
- Zapłaty częściowe. Faktura zapłacona w trzech ratach daje trzy różnice kursowe, każdą od zapłaconej części. Arkusze często obsługują pierwszą ratę, a potem gubią wątek.
- Zaliczki. Pieniądze zapłacone przed wystawieniem faktury zmieniają to, jaki kurs dotyczy której części faktury. Tu potrzebny jest człowiek, nie formuła.
- Kompensaty. Nota kompensacyjna między należnością a zobowiązaniem w euro to też rozliczenie i daje różnice po obu stronach. Na wyciągu jej nie ma, więc proces oparty na wyciągu ją pomija.
Nic z tego nie jest egzotyczne. Klient z trzema dostawcami z UE i kilkoma odbiorcami zagranicznymi trafia na wszystkie pięć w ciągu kwartału.
Problem skali
Ten rachunek pokazuje, że to problem procesu, a nie wiedzy. Typowy klient z dużym importem, w portfelu 40 klientów, ma około 40 płatności walutowych miesięcznie. Przy każdej księgowa szuka faktury, sprawdza kurs, po którym ją ujęto, znajduje zapłatę na wyciągu, ustala kurs zapłaty i jego źródło, liczy i księguje.
Przy czterech, pięciu minutach na wiersz to trzy godziny miesięcznie na jednego klienta. Większość to szukanie, nie decyzje. A wszystko spada na ten sam tydzień co zamknięcie miesiąca. Opisałem to w tekście o zamknięciu miesiąca w biurze rachunkowym: różnice kursowe muszą być policzone przed zaliczką na podatek dochodowy do 20.
Co już jest w danych
Większość tego, czego potrzeba do wyliczenia, istnieje już w postaci, którą maszyna może odczytać:
- Faktury: od czasu KSeF faktury zakupowe i sprzedażowe przychodzą jako ustrukturyzowany XML z walutą, kwotami i datami. Faktura w walucie obcej podaje też VAT w złotych.
- Kursy NBP: NBP publikuje tabelę A przez darmowe, publiczne API, według waluty i daty. Nikt nie musi przepisywać kursów z przeglądarki.
- Zapłaty: wyciągi MT940 z rachunku złotowego i walutowego. Większość banków przy przewalutowanych płatnościach podaje kurs w opisie transakcji. Niektóre nie podają i takie wiersze wymagają flagi, a nie zgadywania. Import wyciągów opisałem w tekście o wyciągach bankowych i MT940 w enova365.
- Powiązanie: przypisanie zapłaty do faktury to ten sam krok co przy zwykłym uzgadnianiu wyciągów, o którym pisałem w tekście o automatyzacji księgowania wyciągów bankowych. Gdy zapłata jest już powiązana, różnica kursowa to wyliczenie na dwóch znanych wierszach.
Co przygotowuje agent
Tak wygląda miesięczne zestawienie, które chciałbym mieć na biurku księgowej około 10. dnia miesiąca, dla każdego klienta:
- każde rozliczenie walutowe w miesiącu, powiązane z fakturą: rozliczona kwota, kurs faktury, kurs zapłaty;
- źródło każdego kursu zapłaty: kurs banku z wyciągu, warstwa FIFO z rachunku walutowego albo średni kurs NBP, bo nic lepszego nie było;
- wyliczona różnica dla każdego wiersza i sumy za miesiąc, dodatnie i ujemne;
- kolejka FIFO dla każdego rachunku walutowego, przeniesiona z poprzedniego miesiąca i zamknięta na ten;
- flagi: przewalutowana zapłata bez kursu na wyciągu, zapłaty częściowe, zaliczki, zapłaty bez pasującej faktury, kursy odbiegające od średniego NBP o ponad 5%.
Księgowa przechodzi przez flagi i księguje. W zwykłym miesiącu to około 15 minut na klienta zamiast trzech godzin. Agent nie wybiera metody dla rachunku walutowego, nie decyduje, jak rozliczyć zaliczkę, i niczego nie księguje. Dlaczego trzymam tę granicę, wyjaśniłem w tekście agent AI a odpowiedzialność. Jak taka współpraca wygląda w praktyce, opisuję na stronie agenci AI dla firm.
Od czego zacząć
Zanim cokolwiek zautomatyzujecie, odpowiedzcie na jedno pytanie dla każdego klienta z rachunkiem walutowym: jaką metodę stosujemy przy zapłatach z tego rachunku i gdzie to jest zapisane? Jeśli odpowiedź brzmi „tak, jak Kasia robiła w zeszłym roku”, to jest pierwsza rzecz do naprawy i nic nie kosztuje.
Chcecie zobaczyć, jak agent buduje miesięczną listę różnic kursowych z KSeF i wyciągów Waszych klientów? Napiszcie do mnie. Przejdę przez to na jednym prawdziwym kliencie i powiem uczciwie, czy przy Waszej skali automatyzacja ma sens.
Sprawdź kontrahenta w kilka sekund — za darmo
KsięgoAI sprawdza NIP na białej liście i w VIES, ocenia ryzyko i zapisuje dowód należytej staranności. Działa na Telegramie i w Claude.
Wypróbuj KsięgoAI→Porozmawiajmy o Twoim projekcie
Bezpłatna 30-minutowa konsultacja. Sprawdzimy, czy i jak mogę pomóc.



