Krajowy system e-Faktur

ZB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

Czy jest sposób na pobranie metadanych faktury mając tylko numer KSeF? Jedna metoda od pobieranie daje tylko XML z fakturą. Z kolei metoda od pobierania metadanych faktur ma co prawda filtr na numer KSeF, ale jednocześnie pola subjectType i dateRange w filtrze są jako required, więc jest kłopot.
Da się pobrać metadane inaczej?

MO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0

Czy pojawiło się jakieś rozwiązanie problemu, gdzie KSeF nie akceptuje XML-a którego sam wygenerował, nie mówiąc o wygenerowanym na zewnątrz, mimo że ten przechodzi test schemy? Przy imporcie przez API faktury są odrzucane, a przy imporcie przez stronę "Plik XML zawiera błędy" - mimo że wizualizacja działa i pokazuje ładną fakturę.

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 185
0

AI przerobiła mi biblioteki od wizualizacji na EXE i ten EXE może równie dobrze przyjmować plik jak i strumień. 40MB.
Próbuję jeszcze zrobić DLL, ale uparł się i opakowuje tego EXE tylko. Chcę, żeby była w pełni autonomiczna, ale ciężko idzie i ciągle jeśli już coś wypluje, to wymaga nodeJS runtime zainstalowanego.

Ktoś by chciał takiego exe? Nie wiem, czy będę mógł źródła opublikować - na razie jeszcze mimo wszystko męczę drugą opcję.

FL4RE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Czołem ekipa, orientujecie sie, czy MCU juz dziala przedprodukcyjnie i mozliwe jest generowanie certyfikatow do uwierzytelniania?

N1ebieski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Trochę śmiech przez łzy, ale właśnie zorientowałem się, że w swoim kliencie od 30.09 miałem takiego babola > https://github.com/N1ebieski/ksef-php-client/blob/v0.14.2/src/Requests/Sessions/Online/Send/SendRequest.php#L20

Jeśli do tej pory nikt tego nie wyłapał to znaczy, że nikt kto z niego korzysta jeszcze nawet nie dotarł do etapu implementacji korekt technicznych dla faktur offline. I my mamy zdążyć na 01.02 xD

JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Cześć! Czy też macie tak, że certyfikatów KSeF utworzonych przez API nie widać w aplikacji test? Analogicznie tworzone tokeny KSeF widzę.

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

po przekonwertowaniu pliku xsl+xml na html mam GROUP SPĂ“ĹKA Z O , ktoś to robił i ma ok ? jakieś wskazówki ? ( w jpk mam taką samą metodę a jest ok)

RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0

Czy są jakieś estymaty czasu przetwarzania faktury przez ksef? Wiadomo, że kodu to nie interesuje za bardzo ale jak zwykle stawiam się w roli użytkownika i myślę, że wolałby on nie drukować faktur offline. Oczywiście nie ma szans ich uniknąć ale gdybyśmy wiedzieli, że to będzie ok pół minuty albo około 5 minut to można by kminić jakiś flow w guju "drukuj_prawie_natychmiast_ale_jak_się_przeciąga_trochę_to_już_pozwól_kolejną_fakturę_wystawiać". Tylko nie ma sensu pakować w to pary jeśli nie wiadomo czy ma to sens. Słyszał ktoś coś?

CF
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Przeczytałem podręcznik 2.5.7. Certyfikat KSeF a zakres uprawnień oraz inne wyjaśnienia dotyczące pracy w biurze rachunkowym .

Proszę o potwierdzenie , czy dobrze rozumiem :)

  1. "Fizycznie" nie potrzebuje certyfikatów klientów biura rachunkowego, tylko mój certyfikat (na biuro) zawiera/odczytuje z KSEF uprawnienia nadane przez klientów ?
  2. I przez program komercyjny loguje się swoim certyfikatem KSEF i działam już na danych odpowiedniej firmy , która nadała mi uprawnienia ?

Z góry dziękuję !

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 185
1

Generator PDF dla WIndows (exe)
Ok, chyba nie pochrzaniłem niczego
https://github.com/Dzyszla/ksef-pdf-generator-win64/releases/tag/Win64-executable
W załącznikach można pobrać 7zip z exe. Jak ktoś chce budować, to w BUILD_EXE.md jest opis.

Przykład użycia na strumieniu:
ksef-pdf-generator.exe --stream --nrKSeF "ABC" --qrCode "http://www/" -t invoice < "fa.xml" > out.pdf
W helpie są co prawda wywołania dla node, ale to się do exe też odnosi. Moze kiedyś przerobię na spokojnie.
@v2 wołam


EDIT: I wjeżdża wersja 0.2 z obsługą parametrów w QR - myślę, że pokochacie ten fature
https://github.com/Dzyszla/ksef-pdf-generator-win64/releases/tag/Win64-exe-v.0.2

Teraz wystarczy wywołać:
ksef-pdf-generator.exe --stream --nrKSeF "ABC" --qrCode "https://ksef-test.mf.gov.pl/client-app/invoice/{nip}/{p1}/{hash}" -t invoice < "FA_3_Przykład_1.xml" > out.pdf
Nie trzeba samemu przekazywać NIP, daty czy liczyć hasha!


I przykładowy kod dla Delphi wywołujący:

Kopiuj
procedure GenPDF(const aXML: TStream; const ANrKSeF: string; const aXMLType: TXMLType; const aOutStream: TStream);
const
	C_BUFF_SIZE = 32 * 1024;
var
	SI: TStartupInfo;
	PI: TProcessInformation;
	Sec: TSecurityAttributes;
	StdInRead, StdInWrite: THandle;
	StdOutRead, StdOutWrite: THandle;
	Cmd: string;
	BytesRead, BytesWritten: Cardinal;
	Buffer: array [0 .. C_BUFF_SIZE - 1] of Byte;
	res: Integer;
begin
	// Rurki muszą być dziedziczone
	Sec.nLength := SizeOf(Sec);
	Sec.lpSecurityDescriptor := nil;
	Sec.bInheritHandle := True;

	// STDIN pipe
	if not CreatePipe(StdInRead, StdInWrite, @Sec, 0) then
		RaiseLastOSError;
	if not SetHandleInformation(StdInWrite, HANDLE_FLAG_INHERIT, 0) then
		RaiseLastOSError;

	// STDOUT pipe
	if not CreatePipe(StdOutRead, StdOutWrite, @Sec, 0) then
		RaiseLastOSError;
	if not SetHandleInformation(StdOutRead, HANDLE_FLAG_INHERIT, 0) then
		RaiseLastOSError;

	ZeroMemory(@SI, SizeOf(SI));
	SI.cb := SizeOf(SI);
	SI.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
	SI.wShowWindow := SW_HIDE;
	SI.hStdInput := StdInRead;
	SI.hStdOutput := StdOutWrite;
	SI.hStdError := StdOutWrite; // też przekierowujemy na wypadek błędów

	ZeroMemory(@PI, SizeOf(PI));

	case aXMLType of
		xtUPO1, xtUPO3:
			Cmd := Format('"%sKSeF-PDFGen.exe" --stream -t upo', [ExtractFilePath(ParamStr(0))]);
	else
		Cmd := Format('"%sKSeF-PDFGen.exe" --stream --nrKSeF "%s" --qrCode "%s" -t invoice', [ExtractFilePath(ParamStr(0)), ANrKSeF, 'https://ksef.mf.gov.pl/client-app/invoice/{nip}/{p1}/{hash}' ]);
	end;


	if not CreateProcess(nil, PChar(Cmd), nil, nil, True { dziedziczenie uchwytów},	CREATE_NO_WINDOW, nil, nil, SI, PI) then
		RaiseLastOSError;
	CloseHandle(StdInRead);   StdInRead := 0;
	CloseHandle(StdOutWrite); StdOutWrite := 0;

	// ---- Piszemy dane do STDIN procesu ----
	try
		if Assigned(aXML) then
		begin
			aXML.Position := 0;
			while True do
			begin
				BytesRead := aXML.Read(Buffer, SizeOf(Buffer));
				if BytesRead = 0 then
					Break;

				if not WriteFile(StdInWrite, Buffer, BytesRead, BytesWritten, nil) then
					RaiseLastOSError;
			end;
		end;
		// Zamykamy STDIN – proces musi wiedzieć, że nie będzie więcej danych
		CloseHandle(StdInWrite);
		StdInWrite := 0;

		// ---- Czytamy STDOUT procesu ----
		if Assigned(aOutStream) then
		begin
			repeat
				if not ReadFile(StdOutRead, Buffer, SizeOf(Buffer), BytesRead, nil) then
					Break;
				if BytesRead > 0 then
					aOutStream.WriteBuffer(Buffer, BytesRead);
			until BytesRead = 0;
		end;

		// Czekamy na zakończenie procesu
		WaitForSingleObject(PI.hProcess, INFINITE);
		GetExitCodeProcess(PI.hProcess, DWORD(res));
		if res <> 0 then
			raise Exception.CreateFmt('Run-time exception #%d', [res]);
	finally
		if StdInWrite <> 0 then
			CloseHandle(StdInWrite);
		if StdOutRead <> 0 then
			CloseHandle(StdOutRead);

		CloseHandle(PI.hThread);
		CloseHandle(PI.hProcess);
	end;
end;

Z takich niewiadomych to typ odróżnia, czy to jest UPO czy faktura - można uprościć sobie, ja używam bardziej złożonego na inne potrzeby też.
Oczywiście można sobie też dodać obsługę linków dla innych środowisk (wstawiłem stały tekst w przykładzie)

SI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

Mam obecnie zrobioną autoryzację certyfikatem oraz wysyłkę wsadową (online), czego potrzebuję jeszcze żeby moc w minimalnym stopniu wdrożyć w firmie ksef? Co tak naprawdę powinno być moim priorytetem w obecnej chwilii? Planuję brać się za wizualizację i pobieranie faktur, kody QR oraz tryb offline.

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
0

Chce się upewnić, aby się uwierzytelnić z ksef powinienem od księgowej w firmie której pracuje otrzymać certyfikat, klucz prywatny oraz hasło ? Tak się uwierzytelniam na mojej JDG

AL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Odnośnie faktur Online / Offline:

  1. Czy mogę korzystać zawsze z trybu Offline(offline24), czyli każda faktura wystawiona w flagą Offline i dosyłam je później do 24h? Czy musi być rzeczywisty powód aby móc skorzystać z trybu Offline(offline24)?
  2. https://ksef.podatki.gov.pl/informacje-ogolne-ksef-20/potwierdzenie-transakcji - na tej stronie www oraz w podręczniku KSEF jest podane, że gdy Nabywca jest podatnikiem krajowym z NIP to w trybie Offline(offline24) mogę mu wydać jedynie potwierdzenie transakcji (a nie fakturę z dwoma QR). Co jeśli niezależnie od Nabywcy wydawałbym zawsze fakturę Offline z dwoma kodami QR, czy jest to dopuszczalne?
DVI Kesatuan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Po wysłaniu faktury i odpytaniu /api/v2/sessions/{sessionReferenceNumber}/invoices/{invoiceReferenceNumber} za pierwszym razem mimo tego, że faktura została już przetworzona, dostała swój numer ksef to pole permanentStorageDate jest null. Czy ktoś się z tym spotkał i ma jakiś pomysł poza odpytaniem drugi raz albo poczekaniem przed odpytaniem? Doprecyzuje, że zanim edpytam ten endpoint to czekam dopóki cała sesja się nie przetworzy

Michał Lipnicki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Przestroga dla deployujących swoje rozwiązanie na infrastrukturze klientów: Imperva a Chiny - testujcie wcześnie...

Swoją drogą to jakiś żart, że Imperva ingeruje w poprawnie skonstruowane żądania a klient nie ma historii naruszeń...

MG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

"Podczas wystawiania faktury w środowisku przedprodukcyjnym (Demo) należy używać fikcyjnych danych. " czyli wystawiać faktury na losowe NIPy i nieistniejace nazwy i adresy? Czy na NIPy klientów, ale testowe faktury? Jak rozwiązać testowanie na demo?

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 185
0

Cóż za skok w numeracji wersji - mamy 6.0!
Changelog ma ponad półtora ekranu https://github.com/CIRFMF/ksef-docs/blob/2.0.0-RC6.0/api-changelog.md

Wreszcie limity są na teście możliwe do testowania!
Zmieniono pobieranie przyrostowe.
Dodano UPO 4.3

NO to zaczynamy zabawę od nowa, wersja do wyrzucenia.

Zapowiedziano kolejne dwie nowe aktualizacje - 19 i 22.12 :) Co prawda można już testować to, co wtedy wejdzie, ale co jeszcze wejdzie...?

FI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Czy ktoś spotkał się z problemem (w środowisku testowym), że dokumenty wysyłane przy pomocy biblioteki ksef-client-csharp w sesji Interaktywnej (metody SendOnlineSessionInvoiceAsync) otrzymuje tryb InvoicingMode.Offline a nie Online?

WS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Czy mogę prosić kolegów i koleżanki o wystawienie KILKU faktur na NIP 5711327442 w środowisku testowym ?

Z góry dziękuję...

xoree
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
1

Nowa aktualizacja repozytorium KSeFClient
https://github.com/bsdnetpl/KSeFClient

Projekt został zaktualizowany i rozbudowany o dodatkowe funkcje.
Wszystkie szczegóły, przykłady użycia i opis integracji dostępne są w repozytorium.

W sprawie integracji, wsparcia technicznego lub wdrożenia biblioteki w Twoim systemie proszę o kontakt:
adrian@bsd-net.pl

Możliwe integracje:

C++ – aplikacje desktopowe lub serwisowe

PHP – sklepy internetowe, panele administracyjne, systemy ERP

C# / .NET – aplikacje biznesowe, API REST, usługi serwerowe

Frontend (React / Angular) – integracja poprzez REST API

Istnieje możliwość uruchomienia klasy PHP na dowolnym hostingu w ramach usługi integracji.

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Czy udało się komuś wysłać fakturę RR? Mógłbym prosić o przykładowy XML?

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 185
0

[Delphi] i day z czasem

Jak sobie radzicie z tym problemem precyzji zapisu czasu z dokładnością do 100ns? TDateTime na ten moment ma błąd ok 600ns, więc już dyskwalifikujący 7 miejsc po przecinku, a nawet 6 miejsc...

Co prawda zrobiłem funkcje, które zamieniają String<->TDateTime, ale co któreś trafienie i tak jest błędne. Zaczyna mnie korcić utworzenie własnego rekordu, gdzie część ułamkowa czasu byłaby na osobnym polu (choć nawet tam niewygodnie będzie trzymać femtosekundy, jak sobie ubzdurają zaraz jeszcze większą dokładność bo ktoś może zechce badania nad kwantowym aspektem istnienia faktur robić).

V2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
0

W środowisku demo złożyłem przez API, używając pieczęci firmowej, jakieś wnioski certyfikacyjne, i dostały status 200. Ale jak się loguję tą samą pieczęcią do Aplikacji podatnika, to tam żadnych certyfikatów nie widać. Wie ktoś dlaczego?

RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0

No nie mogę się powstrzymać przed napisaniem posta. Widzieliście, że w AP kod qr w podglądzie html jest w rozmiarze L ale po pobraniu pdf'a jest już M?
Na szkoleniach dla księgowych, które nie mają nic lepszego do roboty niż się czepiać, powinni informować że to jeden grzyb :)

W2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Walczę z wysyłką wsadową paczki faktur w Delphi Tokyo.

Kopiuj
function TKsefObs2.Wsadowa_wysylka_paczki(accessToken,nmZb,referenceNumber,url:string):integer;
var
  fs:tfileStream;
  resp:string;
begin
  fs:=tfilestream.Create(nmZb,fmOpenRead);
  fs.Seek(0,0);
  try
    RRequest.Resource:='';
    RRequest.Client.baseUrl:=url;
    RRequest.Method:=rmPut;
    RRequest.Params.clear;
    RRequest.Params.AddItem('referenceNumber',referenceNumber,pkHTTPHEADER,[poDoNotEncode]);
    RRequest.Params.AddItem('ordinalNumber','1',pkHTTPHEADER,[poDoNotEncode]);
    RRequest.Params.AddItem('Content-Type','application/octet-stream',pkHTTPHEADER,[poDoNotEncode]);
    RRequest.Params.AddItem('x-ms-blob-type','BlockBlob',pkHTTPHEADER,[poDoNotEncode]);
    RRequest.AddBody(fs, ctAPPLICATION_OCTET_STREAM);
    RRequest.Execute;
    result:=RResponse.statusCode;
    resp:=RResponse.content;
  finally
    fs.Free;
  end;
end;

Czy ktoś życzliwy mógłby mi podpowiedzieć, czego tu brakuje,
a czego jest za dużo (w krańcowej desperacji dokładałem co się dało).
Niezmiennie dostaję komunikaty:

  • Przy "RRequest.Execute" wyskakuje "Protocol field is empty"
  • Przy próbie zamykania sesji -
    "Nie przesłano zadeklarowanej '1' części pliku.
    Pakiet nie może być pusty."

(Plik "nmZb" zawiera zaszyfrowaną paczkę spakowanych faktur.)

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 185
0

Fajna rzecz z limitami - można zablokować komuś możliwość unieważnienia certyfikatu/tokenu xD Albo wylogowania siłowego (w tym siebie samego).

SI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

Wysyłka wsadowa nie przyjmuje jeszcze faktur FA3?

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

jak dodać załącznik do faktury - ma ktoś link do opisu ? , i jak wygenerowac paczkę płatności ?

DVI Kesatuan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Działają wam linki weryfikacyjne na test?
screenshot-20251203144145.png

To jest mój przykład https://ksef-test.mf.gov.pl/client-app/invoice/5833414343/05-11-2025/V1hCK2p5ZjZFVndCcWxxTkpxb1VXckNsRTVGZ2RhZW1NQUQ3czBhTkRqVT0

Nip -> podmiotu 1 (sprzedawcy)
Data P_1 -> 2025-11-05 00:00:00.0000000
Hash fakury -> zwrócony przez ksef lub obliczony przez SHA256 (jest ten sam) i przerzucony przez Base64UrlEncoder.Encode

Co tu jest nie tak?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.