Czy ktoś zastanawiał się/już przerabiał taką zagwozdkę: firma posiada kilka oddziałów rozmieszczonych w dużych odległościach, a co za tym idzie, mających różne sekretariaty. Przykładowo: sekretariat z Gdańska chce otrzymywać jedynie "swoje" faktury (koszt wygenerowany przez ten oddział), z Warszawy "swoje" - nie jest pożądane, aby sekretariaty widziały faktury innych oddziałów. Przy czym to są oddziały jednej spółki, zatem NIP jest ten sam. Pobierając z Ksef faktury zakupowe tej spółki pobieramy wszystkie, tj. wszystkich oddziałów. Wydaje mi się, że przewijał się temat identyfikatorów wewnętrznych w tym kontekście, natomiast w dokumentacji Ksef 2.0 natrafiam mniej więcej w tym temacie jedynie na GV oraz JST. Czy ma ktoś doświadczenie w tego typu potrzebach biznesowych?
Problem, który opisujesz, pojawia się w wielu firmach mających kilka oddziałów działających pod jednym NIP-em. Niestety KSeF – zarówno w wersji obecnej, jak i 2.0 – nie oferuje natywnego podziału faktur na oddziały, o ile wszystkie funkcjonują pod tym samym numerem NIP.
Mechanizmy typu GV czy JST odnoszą się do zupełnie innych scenariuszy i nie rozwiązują tego przypadku.
Co to oznacza w praktyce?
Pobierając faktury przy użyciu NIP, otrzymujesz pełny zestaw dokumentów całej firmy, bez możliwości filtrowania według oddziału na poziomie KSeF.
Jak poradzić sobie z tym w praktyce?
- Stosowanie identyfikatorów wewnętrznych (tagów oddziałów)
Najczęstsze i najprostsze rozwiązanie.
W firmie ustalasz, że każdy oddział ma swój kod/skrót, np.
GDA – Gdańsk
WAW – Warszawa
KRK – Kraków
Wystawiając fakturę (kosztową i sprzedażową), dodajesz ten kod:
W polu Opis,
W polu Uwagi,
W pozycji wartość własna ERP,
lub w dedykowanym elemencie rozszerzeń (jeżeli ERP na to pozwala).
Po pobraniu faktury z KSeF Twój system ERP lub middleware odczytuje tag i kieruje dokument do właściwego sekretariatu.
To jest dziś najczęściej stosowany standard i praktycznie jedyne pewne rozwiązanie.
- Mapowanie oddziałów na podstawie danych kontrahenta
Jeśli dostawcy wystawiają faktury na adres oddziału (różne adresy, choć ten sam NIP), można:
parsować sekcję <AdresPodmiotu> / <AdresPodmiotuNabywcy>
rozpoznawać po kodzie pocztowym/ulicy, który oddział wygenerował koszt.
To działa tylko wtedy, gdy kontrahenci konsekwentnie wpisują właściwy adres oddziału.
- System pośredni (middleware) jako filtr i router faktur
Firmy z bardziej rozbudowaną strukturą stosują:
własny moduł integracyjny,
bazę reguł (np. przypisanie działów na podstawie prefixu w numerze zamówienia, adresu dostawy, kodu projektu itd.).
KSeF daje wszystkie faktury, a routing odbywa się w Twoim systemie, według ustalonych kryteriów.
- (Mniej popularne, ale możliwe) Wyodrębnienie oddziałów organizacyjnych z własnymi kontami KSeF
Nie chodzi o NIP – on pozostaje jeden – ale o:
różne konta użytkowników,
różne tokeny,
różne poziomy uprawnień.
Wciąż jednak każdy użytkownik z uprawnieniem do pobierania zobaczy wszystkie faktury, dlatego poniższe rozwiązanie stosuje się rzadko:
Każdy sekretariat pobiera faktury przez własny system (lub własne API), a sam system filtruje dane lokalnie przed wyświetleniem.
Z punktu widzenia KSeF nic to nie zmienia – nadal KSeF zwraca pełny strumień faktur.
Podsumowanie
KSeF nie zapewnia natywnego podziału faktur na oddziały w ramach jednego NIP. (chyba)
Aby sekretariaty widziały tylko “swoje” faktury, trzeba:
oznaczać dokumenty identyfikatorem oddziału (najlepsze rozwiązanie),
lub dzielić je po adresie,
lub filtrować je we własnym systemie po pobraniu z KSeF.
Jeszcze jedno praktyczne rozwiązanie, które dobrze działa przy wielu oddziałach pod jednym NIP-em: numeracja faktur z kodem oddziału.
Skoro KSeF nie rozróżnia oddziałów (jeden NIP = jeden strumień faktur), to podział robimy logiką biznesową + numeracją. Przykład:
Gdańsk: 123/GDA/03/2025
Warszawa: 45/WAW/03/2025
Kraków: 7/KRK/03/2025
KSeF przyjmie taki numer bez problemu, byle był unikalny w skali firmy/roku.
Potem po stronie bazy/appki robisz po prostu filtrowanie po numer_faktury.