Pokaż spis treści

Słowniki

Kontrahenci

Kontrahenci są wspólną kartoteką dla KSeF, sprzedaży, płatności i banku. Ten ekran nie pełni roli prostej listy adresowej: przechowuje decyzje, które później wpływają na wystawienie faktury, wysyłkę do KSeF, generowanie przelewu i ocenę bezpieczeństwa płatności.

Kartoteka, która steruje zachowaniem systemu

W ExKSeF kontrahent jest jednym z głównych punktów spójności danych. Ten sam rekord jest używany przy fakturach otrzymanych, fakturach wystawianych, proformach, płatnościach i dopasowaniu historii bankowej. Dzięki temu operator nie buduje osobnych kopii dostawcy albo odbiorcy w każdym module.

Lista pokazuje NIP, nazwę, adres, miasto, status zaufania, znaczniki JST i grupy VAT oraz opcjonalnego nabywcę faktury. Z poziomu tabeli można filtrować po zaufaniu, NIP, nazwie, ulicy, kodzie pocztowym i miejscowości, sortować po najważniejszych kolumnach, grupować rekordy po pierwszej literze oraz rozwijać kontrahenta do historii dokumentów.

Uprawnienia są rozdzielone na przeglądanie i zarządzanie. Użytkownik z prawem podglądu widzi kartotekę, ale nie dostaje przycisków, które zmieniają dane, importują CSV albo usuwają rekord. To ważne, bo flaga zaufania i dane płatnika mają realny wpływ na dalszy obieg dokumentów.

Zaufanie kontrahenta i bezpieczne płatności

Status zaufania nie jest ozdobnym polem. System używa go jako decyzji biznesowej przy pracy z fakturami zakupowymi i płatnościami. Operator może oznaczyć kontrahenta jako zaufanego z tabeli lub w dialogu edycji, a później mechanizmy tworzenia płatności mogą odróżnić stałego dostawcę od przypadkowego podmiotu, który pojawił się w KSeF.

W tym samym miejscu przechowywana jest flaga pominięcia sprawdzenia białej listy VAT. Jeżeli jest ustawiona, generowanie pliku przelewu może pominąć weryfikację rachunku na białej liście. Taka decyzja jest świadoma i przypisana do konkretnego kontrahenta, a nie ukryta w pojedynczej płatności.

To podejście ogranicza ryzyko operacyjne: zespół może dodać kontrahenta, zweryfikować dane, oznaczyć go jako zaufanego i dopiero wtedy pozwolić, aby płatności wynikające z faktur przechodziły przez dalszy proces.

Przepływ decyzji: od faktury do bezpiecznej płatności

%%{init: {"themeVariables": {"fontSize": "12px"}}}%%
flowchart TD
  A[Faktura z KSeF lub dokument ręczny] --> B{Czy kontrahent jest w kartotece?}
  B -- Nie --> C[Kolejka lub dodanie nowego kontrahenta]
  B -- Tak --> D[Odczyt zaufania i ustawień kontrahenta]
  C --> D
  D --> E{Zaufany kontrahent?}
  E -- Tak --> F[Możliwe tworzenie płatności w kontrolowanym obiegu]
  E -- Nie --> G[Operator musi podjąć świadomą decyzję]
  F --> H{Czy pomijać białą listę VAT?}
  H -- Nie --> I[Kontrola rachunku przed plikiem przelewu]
  H -- Tak --> J[Przelew pomija kontrolę białej listy dla tego kontrahenta]

Dialog kontrahenta: dane księgowe, KSeF i rejestry publiczne

Dodawanie i edycja kontrahenta odbywa się w dialogu, który zbiera dane potrzebne nie tylko do kontaktu, ale też do poprawnego XML faktury i płatności. Wymagane są nazwa, adres, kod pocztowy i miejscowość, a NIP jest wymagany dla podmiotów innych niż osoba fizyczna.

Operator może sprawdzić NIP na białej liście VAT. Jeżeli dane z wykazu MF różnią się od aktualnych, ekran nie nadpisuje ich automatycznie, tylko pokazuje wybór: zachować obecne dane albo przyjąć dane z rejestru. Gdy biała lista nie wystarcza, dostępny jest fallback CEIDG/KRS, również z decyzją dotyczącą nazwy i adresu.

Formularz obsługuje szczególne przypadki KSeF: osobę fizyczną, której faktura nie jest wysyłana do KSeF, jednostkę podrzędną JST, członka grupy VAT, identyfikator wewnętrzny IdWew oraz sytuację, w której formalny nabywca faktury jest innym kontrahentem niż odbiorca. Te pola wpływają później na strukturę Podmiot2 i Podmiot3 w XML.

Podgląd historii po stronie kontrahenta

Rozwinięcie wiersza kontrahenta pokazuje jego dokumenty bez przechodzenia na osobne listy. Zakładka faktur otrzymanych pobiera faktury zakupowe powiązane z nazwą kontrahenta, wylicza ich stan płatności i ukrywa korekty już rozliczone jako kompensata. Zakładka faktur wystawionych pokazuje sprzedaż dla tego odbiorcy wraz ze statusem dokumentu.

W obu listach dostępny jest podgląd faktury w tym samym panelu szczegółów, który wykorzystują inne ekrany. Operator może więc przejść od rekordu kontrahenta do źródłowego dokumentu, kwot, numeru KSeF, rachunku bankowego i statusu bez ręcznego filtrowania głównych list.

To jest praktyczny przykład projektowania ekranów operacyjnych: słownik nie kończy się na CRUD, tylko staje się miejscem szybkiej kontroli relacji z dostawcą lub odbiorcą.

Import CSV z kontrolą konfliktów

Import kontrahentów obsługuje polskie i angielskie nazwy kolumn, między innymi nazwę, NIP, adres, kraj, e-mail, telefon, zaufanie, JST, grupę VAT, osobę fizyczną, białą listę, IdWew, adres bankowy i identyfikator płatnika. Plik musi zawierać nazwę i NIP, a rekord osoby fizycznej może działać bez NIP.

System normalizuje NIP, sprawdza jego format i nie aktualizuje konfliktów po cichu. Jeżeli dla tego samego NIP istnieją już inne dane, pojawia się dialog z porównaniem aktualnego rekordu i danych z CSV. Operator wybiera, czy zachować obecne dane, użyć danych z importu albo pominąć konflikt.

Dzięki temu masowy import nie niszczy ręcznie wypracowanej kartoteki. Liczniki importu pokazują dodane, zaktualizowane, pominięte i konfliktowe rekordy, a ostrzeżenia trafiają do komunikatu po zakończeniu.

Dlaczego ten ekran dobrze pokazuje jakość implementacji

Kontrahenci spinają kilka warstw aplikacji: UI z filtrowaniem i podglądem dokumentów, walidację pól, integrację z rejestrami publicznymi, import CSV, role użytkowników oraz reguły wpływające na płatności i XML faktury. To nie jest odizolowany moduł administracyjny.

W praktyce taka kartoteka musi być odporna na niepełne dane, konfliktowe importy, rozróżnienie nabywcy i odbiorcy, wyjątkowe przypadki JST/GV oraz ryzyko przelewu na rachunek, który wymaga dodatkowej decyzji. ExKSeF pokazuje te decyzje w interfejsie operatora, zamiast chować je dopiero w błędach technicznych podczas generowania dokumentu.

Pytania praktyczne

Czy można dodać kontrahenta bez NIP?

Tak, ale tylko wtedy, gdy zostanie oznaczony jako osoba fizyczna. Dla zwykłego kontrahenta NIP jest wymagany i walidowany.

Czy import CSV nadpisuje dane automatycznie?

Nie w przypadku konfliktu. Jeżeli istniejący kontrahent ma inne dane niż plik CSV, operator musi wybrać, które dane zachować.

Po co pole nabywcy faktury?

Obsługuje przypadek, w którym odbiorca dokumentu jest inny niż formalny nabywca. Dane trafiają później do struktury Podmiot2 i Podmiot3 w XML.