Broker polski vs zagraniczny — PIT-8C i samodzielne rozliczenie
U polskiego brokera zwykle dostajesz gotowe liczby do sprawdzenia. U zagranicznego sam liczysz wynik i sam bierzesz na siebie błąd. Stawka podatku: identyczna. Robota w kwietniu: zupełnie inna. Różnica w robocie może kosztować weekend i 600 PLN dla biura rachunkowego — albo zaległości podatkowe za trzy lata.
- Broker polski (XTB, TMS Brokers) wystawia PIT-8C do końca lutego — dane trafiają do e-PIT. Broker zdejmuje z ciebie większość roboty administracyjnej, ale nie odpowiedzialność za zeznanie.
- Broker zagraniczny co do zasady nie wystawia polskiego PIT-8C. Musisz samodzielnie pobrać statement, przeliczyć transakcje na PLN i ręcznie wypełnić PIT-38. Wyjątek: niektórzy zagraniczni brokerzy mają oddział z licencją KNF.
- Kurs przeliczeniowy: średni kurs NBP z ostatniego dnia roboczego POPRZEDZAJĄCEGO dzień transakcji (Tabela A). Nie kurs z dnia transakcji. Nie kurs brokera. Art. 11a traktuje przychody i koszty osobno.
- Statement nie jest święty. Raport platformy, raport roczny i dane back-office potrafią się różnić przez korekty, cash adjustments i sposób grupowania zamknięć. Zweryfikuj zanim wpiszesz.
- CRS działa automatycznie. Brak PIT-8C od zagranicznego brokera nie oznacza niewidzialności — instytucje finansowe raportują dane o rachunkach do KAS bez twojego udziału.
- Broker EU z polskim oddziałem to nie to samo co broker polski. Sprawdź encję prawną w umowie — CySEC czy KNF? Brand był lokalny. Encja już nie.
1. Broker polski — PIT-8C i co z niego masz
Jeśli handlujesz u brokera z siedzibą w Polsce i licencją KNF — masz najprostszą ścieżkę podatkową. Broker jest płatnikiem informacji podatkowej i ma obowiązek wystawienia PIT-8C do końca lutego roku następującego po roku podatkowym.
PIT-8C to informacja o przychodach z kapitałów pieniężnych. Broker wykazuje sumę przychodów, sumę kosztów uzyskania przychodu i dochód (lub stratę) — przeliczone na PLN. Dane trafiają jednocześnie do urzędu skarbowego i do systemu Twój e-PIT, gdzie PIT-38 jest przygotowany na podstawie tych informacji.
Jeśli masz jednego polskiego brokera, PIT-38 w Twój e-PIT jest przygotowany na podstawie danych z PIT-8C. Sprawdzasz, czy liczby się zgadzają z twoją ewidencją, i zatwierdzasz — albo koregujesz, jeśli broker się pomylił. Broker zdejmuje z ciebie robotę administracyjną, nie odpowiedzialność. Za prawidłowość zeznania odpowiadasz ty.
2. Broker zagraniczny — samodzielne rozliczenie od A do Z
Broker zagraniczny — każdy broker, którego encja prawna nie ma siedziby w Polsce — co do zasady nie wystawia polskiego PIT-8C. Nie podlega polskiemu prawu podatkowemu w zakresie informacji podatkowej. Broker offshore ma polską skarbówkę w głębokim poważaniu — jesteś dla niego klientem handlowym, a nie obiektem polskiej administracji podatkowej. Ich licencja, ich zasady. Twój Excel i twój problem — co nie zmienia faktu, że ty masz polską skarbówkę w poważaniu znacznie mniej, jeśli chcesz uniknąć kontroli.
Co musisz zrobić sam:
- Pobrać historię transakcji (statement/raport) z platformy
- Wyodrębnić zamknięte pozycje — otwarte pozycje na koniec roku nie generują przychodu
- Przeliczyć transakcje na PLN po kursie średnim NBP z dnia poprzedzającego
- Rozdzielić przychody i koszty — osobno przychód, osobno koszty (prowizje, swapy)
- Wpisać kwoty ręcznie do PIT-38
To nie jest matematyka. To selekcja danych, kursy NBP i obrona twojej metodologii przed organem, który będzie oceniał dokumenty przez pryzmat formularza, nie logiki tradingowej. Przy kilkudziesięciu transakcjach rocznie — kilka godzin. Przy tysiącach — bez automatyzacji jesteś w tym sam, w grudniu, i wyciągasz błędy dopiero gdy urząd pyta.
3. Statement — jak pobrać i czego nie ufać
Statement to twój podstawowy dokument rozliczeniowy. Bez niego nie masz danych do PIT-38. Ale na papierze statement wygląda jak prawda objawiona — w praktyce potrafi być tylko eksportem z frontu, nie pełnym obrazem z back-office.
MetaTrader 4 / MetaTrader 5
W MT4/MT5 otwierasz zakładkę „Account History" → klik prawym → „Period" → „Custom Period" na pełny rok (1 stycznia – 31 grudnia) → „Save as Detailed Report". Dostajesz HTML z każdą transakcją: czas otwarcia, czas zamknięcia, instrument, wolumen, cena open/close, prowizja, swap, profit.
Kluczowe kolumny: Close Time (data zamknięcia = data powstania przychodu), Profit (zysk/strata w walucie konta), Commission, Swap.
cTrader
Statements → Account Statement → wybierz rok → eksport do CSV lub PDF. cTrader rozbija realized P&L, commissions i swaps na osobne kolumny.
Interactive Brokers (IBKR)
Performance & Reports → Statements → Activity Statement → Annual. IBKR generuje szczegółowy raport z podziałem na instrumenty, waluty i kategorie (Trades, Forex P&L, Interest, Dividends). Uwaga: samo „Forex P&L" w IBKR nie zawsze odpowiada temu, co podatnik finalnie kwalifikuje do jednej pozycji w arkuszu do PIT — raporty IBKR rozbijają zdarzenia operacyjnie, a nie pod polski formularz. Dodatkowo IBKR rozróżnia fizyczne pozycje walutowe od CFD — każda kategoria ma inną sekcję.
Statement nie jest święty
Przy jednym brokerze raport zgadza się co do centa. Przy drugim po korekcie nocnej dostajesz różnicę w realized P&L, której nie rozumiesz, dopóki nie zobaczysz dodatkowych adjustmentów. W statementach IBKR i niektórych brokerów CFD pojawiają się pozycje „Dividend Adjustment" — broker pobiera lub uznaje konto ekwiwalentem dywidendy. To przychód lub koszt podatkowy niewidoczny w kolumnie Profit, który większość traderów pomija. Raport platformy, raport roczny i dane back-office potrafią się różnić przez korekty, cash adjustments, rebates, interest i sposób grupowania częściowych zamknięć.
4. Przeliczanie na PLN — kurs NBP, strefy czasowe i pułapki
Art. 11a ust. 1 ustawy o PIT: przychody w walutach obcych przelicza się na złote według kursu średniego NBP z ostatniego dnia roboczego poprzedzającego dzień uzyskania przychodu. Koszty uzyskania przychodu przelicza się analogicznie — art. 11a ust. 2, kurs z dnia poprzedzającego poniesienie kosztu. To są dwa osobne przeliczenia i nie zawsze wystarczy „spiąć" wszystko jednym kursem bez ryzyka sporu interpretacyjnego.
Nie kurs z dnia transakcji. Nie kurs brokera. Nie kurs kantorowy. Kurs średni NBP z Tabeli A.
Pułapka strefy czasowej
Większość serwerów brokerów zagranicznych działa w czasie EET (Eastern European Time), GMT+2, lub EST (Eastern Standard Time, GMT-5). Zamknięcie pozycji na MT4 o 00:30 czasu serwera (EET) to w Polsce wciąż 23:30 poprzedniego dnia (CET zimą) lub ta sama godzina (CEST latem, bo Polska i Cypr mają ten sam offset). Ale jeśli serwer jest w EST — różnica wynosi 6 godzin i transakcja zamknięta „w poniedziałek" na serwerze może być zamknięta „w niedzielę" czasu polskiego.
Jeśli zaciągniesz daty bezpośrednio ze statementu bez korekty strefy czasowej do czasu polskiego, możesz wziąć zły kurs NBP. Przy kilku transakcjach to groszowa różnica. Przy tysiącach — kumuluje się.
Piątek, weekend, poniedziałek
Zamknięcie pozycji w piątek (dowolna godzina) → kurs NBP z czwartku. Dzień poprzedzający piątek to czwartek. NBP publikuje tabelę w piątek ok. 12:00, ale ta tabela to kurs piątkowy — bierzesz go przy transakcjach zamkniętych w sobotę lub niedzielę (przez serwer brokerski). Przy zamknięciu w piątek — zawsze czwartkowy.
Swapy — ten sam kurs czy osobny?
Dla prowizji naliczonej w momencie zamknięcia pozycji to ten sam kurs co dla przychodu. Dla swapów naliczanych za poszczególne noce — formalnie powinieneś stosować kurs z dnia poprzedzającego każde naliczenie. To wygodne uproszczenie, którego żaden doradca nie podpisze oficjalnie — stosowanie jednego kursu z dnia zamknięcia dla wszystkich kosztów pozycji. W razie kontroli bronisz się sam. Ryzyko małe przy niewielkich kwotach swapów, ale rośnie przy długich pozycjach carry trade.
api.nbp.pl/api/exchangerates/rates/a/usd/2025-03-13/ — zwraca kurs USD/PLN z 13 marca 2025 w formacie JSON. Limit zapytań: kilka na sekundę. Przy rocznym CSV z 10 000 transakcji warto batchować zapytania, bo serwer NBP zablokuje zbyt agresywne odpytywanie.5. Problem skali — scalper z 12 500 transakcjami
Tu wychodzi brutalna różnica: jeden trader sprawdza liczby, drugi buduje je od zera.
Swing trader z 50 pozycjami rocznie potrzebuje 50 kursów NBP. To kilka godzin z arkuszem. Scalper z 50 pozycjami dziennie przez 250 dni handlowych ma 12 500 transakcji. Po trzech godzinach ręcznego czyszczenia danych większość odkrywa, że największym wrogiem nie był spread, tylko własny bałagan. Rynek cię nie zabije. Zrobi to Excel z jedną złą formułą przeciągniętą przez cały rok.
Workflow arkusza — minimalne kolumny
Niezależnie od narzędzia, twój arkusz rozliczeniowy powinien zawierać:
| Kolumna | Źródło | Uwagi |
|---|---|---|
| Ticket | Statement | Unikalny identyfikator pozycji |
| Instrument | Statement | EUR/USD, DAX, BTC/USD itp. |
| Open Time | Statement | Skorygowany do czasu polskiego |
| Close Time | Statement | Skorygowany do czasu polskiego |
| Realized P&L | Statement | Wynik w walucie konta |
| Commission | Statement | Prowizja w walucie konta |
| Swap | Statement | Naliczony swap (ujemny/dodatni) |
| Waluta konta | Broker | USD, EUR, GBP |
| Data kursu NBP | Obliczasz | Ostatni dzień roboczy przed Close Time |
| Kurs NBP | api.nbp.pl / Tabela A | Kurs średni z Tabeli A |
| Przychód PLN | Obliczasz | Zyskowne zamknięcia × kurs NBP |
| Koszt PLN | Obliczasz | Stratne zamknięcia + prowizje + swapy × kurs |
| Uwagi | Ty | Korekty, adjustmenty, wątpliwości |
Przykład liczbowy — jeden wiersz
| Ticket | Instrument | Close Time | P&L (USD) | Comm. | Swap | Data kursu NBP | Kurs USD/PLN | Przychód PLN | Koszt PLN |
|---|---|---|---|---|---|---|---|---|---|
| #8847291 | EUR/USD | 14.03.2025 16:42 | +340,00 | -7,00 | -2,30 | 13.03.2025 | 4,1520 | 1 411,68 | 38,61 |
Przychód: 340,00 USD × 4,1520 = 1 411,68 PLN. Koszt: (7,00 + 2,30) × 4,1520 = 38,61 PLN. Dochód z tej pozycji: 1 373,07 PLN. To jest wzorzec, który kopiujesz do arkusza. Pełna procedura z wieloma pozycjami — w następnym artykule.
6. Broker EU z polskim oddziałem — pułapka encji prawnej
To klasyk. Trader widzi polską stronę, polski support i szybkie BLIK-i, więc myśli, że siedzi u polskiego brokera. Potem przychodzi luty, PIT-8C nie ma, support odpisuje korporacyjnym bełkotem, a klient dopiero wtedy odkrywa, z kim naprawdę podpisał umowę. Brand był lokalny. Encja już nie.
Kluczowe pytanie: jaka encja prawna jest wskazana w twojej umowie klienta?
- Brand ABC (Cypr) Ltd — spółka cypryjska, licencja CySEC, passporting do Polski. Polska strona, polski support, wpłaty w PLN. Encja prawna: Cypr → NIE wystawia PIT-8C.
- Brand ABC Polska sp. z o.o. — spółka polska, licencja KNF. Wystawia PIT-8C.
Obie mogą mieć identyczną stronę i identyczne warunki handlowe. Ale obowiązki podatkowe klienta są fundamentalnie różne. Znany case z polskiej społeczności traderskiej: broker z wielką polską kampanią reklamową, polski numer telefonu, polskojęzyczna platforma. Trader przez dwa lata handlował, nie dostał PIT-8C, uznał że broker „zapomniał". W trzecim roku — wezwanie z urzędu. Broker okazał się encją maltańską. Trzy lata zaległości wstecz, odsetki, trzy korekty PIT-38. Umowa klienta leżała w emailu od dnia rejestracji — nikt jej nie czytał. Wyjątek: niektórzy zagraniczni brokerzy (np. polski oddział CMC Markets) mają encję z licencją KNF i wystawiają PIT-8C. Zawsze sprawdź encję w umowie.
Jak to sprawdzić:
- Umowa klienta — na pierwszej stronie: pełna nazwa spółki, siedziba, numer licencji.
- Stopka strony brokera — informacje regulacyjne i nazwy encji.
- Rejestr KNF — firma na liście „firm inwestycyjnych KNF" = polska encja. Na liście „notyfikowanych" (passporting) = encja zagraniczna działająca w Polsce.
7. Rachunek u brokera zagranicznego — formalności i CRS
Art. 9 ust. 1d ustawy o zasadach ewidencji i identyfikacji podatników dotyczy aktualizacji danych identyfikacyjnych podatnika. Jednocześnie oficjalny formularz ZAP-3 służy do aktualizacji adresu, danych kontaktowych i rachunku osobistego do zwrotu nadpłaty. Czy rachunek u zagranicznego brokera należy zgłaszać w tym trybie — pozostaje w praktyce kwestią niejednoznaczną. Konserwatywne podejście: zgłoś, bo koszt jest zerowy, a brak zgłoszenia przy jednoczesnym niezłożeniu PIT-38 może pogorszyć obraz podatnika w trakcie kontroli.
CRS — co naprawdę działa
CRS nie jest teorią. Działa, raportuje i trafia do KAS — zanim ty złożysz cokolwiek. Instytucje finansowe z jurysdykcji uczestniczących w CRS (110+ krajów — cały UE, UK, Szwajcaria, Australia, Singapur) raportują do administracji podatkowych określone dane o rachunkach: numer konta, saldo na koniec roku, określone kategorie płatności. Dane trafiają do polskiej KAS automatycznie, bez żadnego wniosku z twojej strony.
8. Czego ten artykuł nie rozstrzyga
Przy swapach, odsetkach, bonusach, rebate'ach, dividend adjustments i innych pozycjach nie każdy broker raportuje tak samo. Przy większej skali handlu potrzebujesz spójnej metodologii — i najlepiej konsultacji z doradcą podatkowym, który rozumie specyfikę CFD. Ten artykuł daje ramy. Nie zastępuje interpretacji indywidualnej KIS ani porady prawnej.
Konkretne tematy wymagające ostrożności:
- Konwersja walutowa na koncie multi-currency — jeśli broker dokonuje automatycznej konwersji USD→PLN przy wpłacie lub wypłacie, może to być traktowane jako odrębna transakcja walutowa generująca przychód. Temat sporny, ale pomijany powszechnie.
- Ujemne saldo konta po stop-out — jeśli broker zalikwidował pozycje i trader zakończył rok ze stratą przekraczającą depozyt, może to rodzić spór co do zakresu kosztu i sposobu ujęcia zdarzenia. Negative balance protection (ESMA) zmienia obraz, ale nie eliminuje pytania o kwalifikację przy equity zerowym.
- Hedging i FIFO przy brokerze NFA — brokerzy regulowani przez NFA (USA) wymuszają zamykanie pozycji w regule FIFO, co może zaburzać kolejność w polskim dzienniku zdarzeń podatkowych. Szczegóły w artykule 14.1.
Porównanie: broker PL vs zagraniczny EU vs non-EU
| Kryterium | Broker polski (KNF) | Broker zagraniczny EU (CySEC, FCA, BaFin) | Broker zagraniczny non-EU (ASIC, FINMA, FSA) |
|---|---|---|---|
| PIT-8C | Tak — do końca lutego | Nie | Nie |
| Dane w e-PIT | Automatycznie | Brak — ręcznie | Brak — ręcznie |
| Waluta konta | Zwykle PLN | Zwykle EUR lub USD | Zwykle USD |
| Przeliczanie na PLN | Robi broker | Robi trader (kurs NBP) | Robi trader (kurs NBP) |
| Zgłoszenie rachunku | Nie dotyczy | Niejednoznaczne* | Niejednoznaczne* |
| CRS | Nie dotyczy (PIT-8C) | Tak — dane do KAS | Tak, jeśli jurysdykcja w CRS* |
| Odpowiedzialność za rozliczenie | Trader (na bazie PIT-8C) | Wyłącznie trader | Wyłącznie trader |
| Nakład pracy | Minimalny | Wysoki (zależy od skali) | Wysoki |
| Dźwignia | ESMA: max 1:30 majors | ESMA: max 1:30 majors | Zależy od regulatora (do 1:500) |
| Przykłady | XTB, TMS Brokers | IC Markets (CySEC), Pepperstone (CySEC) | IC Markets (ASIC), Dukascopy (FINMA)** |
* ASIC, FINMA i większość regulowanych jurysdykcji uczestniczy w CRS. Brak CRS dotyczy nielicznych offshore bez regulacji. ** Dukascopy Bank SA (Szwajcaria, FINMA) — Szwajcaria nie jest w UE, ale uczestniczy w CRS od początku i ma ścisłą regulację.
FAQ — Broker polski vs zagraniczny
Czy muszę tłumaczyć statement brokera na język polski?
Czy Interactive Brokers (oddział w Irlandii) to broker zagraniczny?
Jak rozliczyć się z dwóch brokerów — polskiego i zagranicznego?
Dlaczego traderzy świadomie wybierają brokera zagranicznego mimo podatkowego piekła?
Czy swap jest kosztem uzyskania przychodu?
Źródła i bibliografia
- Ustawa z dnia 26 lipca 1991 r. o podatku dochodowym od osób fizycznych (Dz.U. 2024 poz. 226 z późn. zm.) — art. 30b, art. 11a ust. 1-2, art. 39 ust. 3 (PIT-8C)
- Ustawa z dnia 13 października 1995 r. o zasadach ewidencji i identyfikacji podatników i płatników (Dz.U. 2024 poz. 375 z późn. zm.) — art. 9 ust. 1d (aktualizacja danych identyfikacyjnych podatnika)
- Narodowy Bank Polski — Tabele kursów średnich walut obcych (Tabela A), nbp.pl/statystyka-i-sprawozdawczosc/kursy/tabela-a
- Narodowy Bank Polski — API kursów walut, api.nbp.pl
- Krajowa Administracja Skarbowa — Automatyczna wymiana informacji CRS/AEOI, podatki.gov.pl/crs