Przejdź do treści

NEWSLETTERRaz w miesiącu konkrety z wdrożeń w firmach usługowych, zero spamu. Zapisz się i odbierz checklistę →

Pobieranie faktur z KSeF do SharePoint: jak to zautomatyzować

Jak faktury kosztowe z KSeF same trafiają do biblioteki SharePoint: co zapisać, czym to zbudować, co robi Power Automate i ile to kosztuje.

Filip Kostecki

Opublikowano

Faktury kosztowe z KSeF mogą same trafiać do SharePoint. Mały program co godzinę pobiera nowe faktury przez API KSeF, zapisuje XML i PDF w bibliotece dokumentów i wypełnia kolumny: numer KSeF, sprzedawcę, kwotę i datę. Dalej Power Automate prowadzi fakturę do akceptacji. Samego logowania do KSeF Power Automate bez dodatkowego kodu nie zrobi, dlatego tę część oddajemy programowi.

Jak faktura trafia z KSeF do SharePoint?

Przepływ ma 5 kroków. Pierwsze 4 robi program, piąty Power Automate.

  1. Logowanie. Program loguje się do KSeF tokenem z jednym uprawnieniem: przeglądaniem faktur. Jak wybrać między tokenem a certyfikatem, opisujemy w artykule jak podłączyć KSeF do własnych narzędzi.
  2. Nowe faktury. Co godzinę w godzinach pracy program pyta KSeF o faktury kosztowe od ostatniego pobrania. Do stałej synchronizacji Ministerstwo Finansów rekomenduje eksport paczek z punktem kontrolnym: program zapamiętuje, do którego momentu dotarł, i następnym razem zaczyna od tego miejsca.
  3. PDF z XML. API KSeF zwraca fakturę jako XML. PDF do czytania program robi z tego pliku, na przykład biblioteką Ministerstwa Finansów do wizualizacji faktur.
  4. Zapis w SharePoint. Program wgrywa oba pliki do biblioteki dokumentów przez Microsoft Graph i uzupełnia kolumny danymi z faktury.
  5. Obieg. Power Automate zauważa nowy plik w bibliotece i uruchamia akceptację, powiadomienie albo przekazanie do księgowości.

Faktura z KSeF to dane, a nie skan, więc OCR faktur nie jest tu potrzebny: kwoty i NIP-y program bierze wprost z XML.

Schemat: program co godzinę pobiera z KSeF nowe faktury kosztowe od punktu kontrolnego, robi z XML plik PDF do czytania i zapisuje oba pliki w bibliotece SharePoint przez Microsoft Graph z nazwą równą numerowi KSeF i kolumnami numer KSeF, sprzedawca, kwota, data i status; dalej Power Automate prowadzi akceptację, powiadomienia i przekazanie do księgowości
Droga faktury z KSeF do biblioteki SharePoint i dalej do obiegu w Power Automate.

W jednej z firm transportowych, z którymi pracujemy, faktury kosztowe z KSeF wpadają do SharePoint automatycznie: ok. 150–200 miesięcznie, bez ręcznego pobierania. SharePoint przechowuje tam pliki, a zespół pracuje na fakturach w wewnętrznym portalu, czyli aplikacji webowej.

Zapytaj o przepływ z KSeF

Co zapisać w SharePoint: XML, PDF czy oba?

Zapisuj oba pliki. XML jest oryginałem z KSeF, a PDF służy do czytania i do wysłania księgowej. Nazwą pliku niech będzie numer KSeF: każda faktura ma własny, więc program łatwo sprawdzi, czy faktura już jest w bibliotece.

Foldery ogranicz do roku i miesiąca. Resztę trzymaj w kolumnach SharePoint, bo po kolumnach da się filtrować, sortować i ustawiać widoki.

Kolumna Do czego służy
Numer KSeF kontrola duplikatów, tytuł przelewu
NIP i nazwa sprzedawcy filtr po dostawcy
Numer faktury i data wystawienia wyszukiwanie, zestawienia miesięczne
Kwota brutto i waluta próg akceptacji, na przykład wyższe kwoty do zarządu
Status kto zatwierdził i kiedy, wpisuje Power Automate

Przy 2 plikach na fakturę i 150–200 fakturach miesięcznie biblioteka przekroczy próg widoku 5 000 elementów po ok. 13–17 miesiącach. Pliki dalej się zapiszą, ale widok, który ma pokazać ponad 5 000 elementów naraz, przestanie działać. Dlatego od początku zaindeksuj kolumny daty i statusu i ustaw widoki z filtrem, na przykład „bieżący miesiąc” albo „do akceptacji”.

Czym to zbudować: program, Power Automate czy oba?

Najprościej podzielić pracę: program rozmawia z KSeF, a Power Automate z ludźmi.

Część Czym Licencja
Logowanie do KSeF, pobieranie, PDF, zapis w bibliotece mały program w Azure Functions albo na serwerze plan Flex Consumption ma bezpłatną pulę 250 000 wykonań miesięcznie, a uruchomienie co godzinę w dni robocze to ok. 220
Akceptacja, powiadomienia, przekazanie do księgowości Power Automate z konektorem SharePoint konektor standardowy, w licencji Microsoft 365

Czemu nie wszystko w Power Automate? Logowanie tokenem KSeF wymaga zaszyfrowania go kluczem publicznym Ministerstwa algorytmem RSA (dokumentacja API), a wyrażenia Power Automate nie mają takiej funkcji. Da się to obejść konektorem niestandardowym z kodem w C#, ale on, tak samo jak konektor HTTP do dowolnego API, wymaga płatnego planu. Power Automate Premium kosztuje 13 euro netto na użytkownika miesięcznie przy płatności rocznej, a Microsoft 365 obejmuje tylko konektory standardowe.

Na co uważać przy automatycznym pobieraniu?

  • Duplikaty. Kolejne okna pobierania mogą się zazębiać, dlatego Ministerstwo zaleca usuwać duplikaty po numerze KSeF. Przed zapisem program sprawdza, czy plik o tej nazwie już jest.
  • Faktura jeszcze niedostępna. Faktura bywa przyjęta w KSeF, ale jeszcze niegotowa do pobrania. Program zostawia ją wtedy na następny przebieg.
  • Limity. Lista faktur ma limit 20 zapytań na godzinę, a Ministerstwo zaleca odstęp nie krótszy niż 15 minut (limity API). Pobieranie co godzinę mieści się w tym z zapasem.
  • Uprawnienia. Bibliotekę z fakturami widzą tylko osoby z obiegu kosztów i księgowość. Program zapisuje pliki z osobnego konta aplikacji w Microsoft Entra ID, a jego sekret i token KSeF trzymasz poza kodem.
  • Zmiany w API. Ministerstwo zmienia API i podaje daty wycofań w historii zmian, więc przepływ potrzebuje kogoś, kto to śledzi.

Ile kosztuje taki przepływ i ile trwa?

Automatyzacja zaczyna się u nas od 2 tys. zł, a z integracją z innym programem kosztuje zwykle 4–12 tys. zł i trwa 3–6 tygodni. Przepływ z KSeF do SharePoint z obiegiem akceptacji to ten drugi przypadek. Licencje przy podziale z tabeli wyżej to zwykle nic ponad Microsoft 365 i bezpłatna pula Azure Functions. Co jeszcze wpływa na cenę, opisujemy w artykule ile kosztuje automatyzacja jednego procesu.

Jeśli ktoś w Twojej firmie pobiera dziś faktury z KSeF ręcznie, opisz, gdzie mają trafiać i kto je zatwierdza. Odpowiemy, jak zbudować przepływ i ile będzie kosztował.

Opisz obieg swoich faktur

Pytania i odpowiedzi

Czy Power Automate sam pobierze faktury z KSeF?

Bez dodatkowego kodu nie. Logowanie tokenem KSeF wymaga szyfrowania RSA, którego nie ma w wyrażeniach Power Automate. Pobieranie i zapis robi więc mały program, a Power Automate prowadzi obieg na konektorach standardowych z licencji Microsoft 365.

Czy KSeF daje fakturę w PDF?

API KSeF zwraca fakturę jako XML. PDF tworzy się z tego pliku, na przykład biblioteką Ministerstwa Finansów do wizualizacji faktur i UPO.

Jak często pobierać faktury z KSeF?

Co godzinę w godzinach pracy: faktura jest w SharePoint tego samego dnia. Ministerstwo zaleca odstęp nie krótszy niż 15 minut, a lista faktur ma limit 20 zapytań na godzinę.

Ile faktur zmieści biblioteka SharePoint?

Biblioteka mieści do 30 milionów elementów. Widok bez filtra pokaże najwyżej 5 000, dlatego przy większej liczbie faktur ustaw widoki z filtrem na indeksowanej kolumnie.

Pojęcia z tego artykułu

Filip Kostecki

Założyciel FKDRIVE i programista. Buduje i utrzymuje systemy webowe oraz automatyzacje.

CZYTAJ DALEJ

Powiązane artykuły.

Porozmawiajmy o Twoim projekcie.

Trzydzieści minut online o jednym albo dwóch procesach, które zjadają najwięcej czasu. Jeśli wolisz napisać, formularz kontaktowy jest równie dobrą drogą.

Umów 30 minut

NEWSLETTER

Raz w miesiącu konkrety z wdrożeń, zero spamu

Piszemy o tym, co realnie wychodzi z wdrożeń w firmach usługowych: co zjada godziny, co daje się przestawić bez wymiany całego systemu i ile to zwykle kosztuje. Bez sprzedawania w każdej wiadomości. Na start dostajesz checklistę 15 sygnałów.

Wypisujesz się w każdej chwili. Bez zobowiązań.

COOKIES

Bez ciasteczek pracujemy po ciemku

Nie wiemy wtedy, które fragmenty tej strony komuś pomagają, a które są do wyrzucenia. Zgoda włącza statystyki odwiedzin, nagrania sesji z automatycznie maskowaną treścią formularzy oraz pomiar skuteczności reklam. Danymi nie handlujemy i nie sprzedajemy ich nikomu.

Decyzję zmienisz w każdej chwili linkiem „Ustawienia cookies” w stopce. Co dokładnie zbieramy →