Krajowy system e-Faktur

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

Zmiany frontowe systemów fakturujących

Cześć, wrzucam pierwszy analityczne temat pod dyskusję. Jako że analityk to zaczynam od początku procesu. Kontekst: sklep internetowy, sklepy stacjonarny. Zróżnicowany klient, w tym „awanturujący się”. Pow. tysiąca faktur dziennie.

Schema FA (2) dla nabywcy dopuszcza 4 identyfikatory podatkowe (NIP, NrVatUE, Nr ID, BrakID), a dla podmiotu trzeciego 5 identyfikatorów (ww. + IDwew) i sześć interesujących mnie ról podmiotu 3: 2 Odbiorca; 4 Dodatkowy nabywca; 6 Dokonujący płatności; 8 Jednostka samorządu terytorialnego – odbiorca; 10 Członek grupy VAT – odbiorca. Dodatkowo inna rola i opis.

NrVatUE – co do zasady podmiot unijny, bez dostępu do KSeF, Nr ID – identyfikator podatkowy podatnika z kraju poza unijnego, bez dostępu do KSeF, BrakID – co do zasadny bez NIPu, bez dostępu do KSeF. Jakby było mało – NIPy podmiotowo zwolnione czyli NIP nie jest podatnikiem VAT czynnym – Art. 106gb. Ust. 6 „W przypadku, gdy nabywca nie jest podatnikiem VAT czynnym, podatnik jest obowiązany zapewnić temu nabywcy dostęp do faktury ustrukturyzowanej, jeżeli nabywca nie zwolni podatnika z tego obowiązku, poprzez: 1) podanie kodu, o którym mowa w ust. 5, oraz danych umożliwiających zidentyfikowanie tej faktury albo 2) oznaczenie kodem, o którym mowa w ust. 5, umożliwiającym dostęp do tej faktury w Krajowym Systemie e-Faktur, w przypadku, gdy faktura jest użyta, poza tym systemem.” Czyli mam jeszcze na froncie pytać i ewidencjonować zgody.

Sprzedaż w sklepie - najlepiej byłoby czekać online na zarejestrowanie i wydawać wydruk zarejestrowanej FV z numerem KSeF i z Kod QR – no ale to raz będzie 10 sekund innym razem minuta a innym 5 minut. Nie zablokuje ruchu przy kasie… a poprzedni Pan czekał chwilę i dostał fakturę a ja nie, a czekam już 10 min… Do tego cała gromada podmiotów, którym przy kasie trzeba wydać fakturę z Kod QR (NrVatUE, NrID, BrakID). Nie wspominając podatnika nie będącego podatnikiem VAT czynnym zgodnie z art. 106gb. Ust. 6 – uzyskiwać zwolnienia i pewnie je ewidencjonować.

Planuje na frontach – wdrożyć te wszystkie 120 wariantów w każdym kanale. Ponadto nie będę odpytywał o zwolnienie podatnika nie będącego podatnikiem VAT czynnym.

Analizowałem i aby rozwiązać ten powyższy problem zamierzam wydawać wszystkim papierową lub elektroniczną fakturę z Kod QR , ale bez numeru KSeF – zgodnie z Art. 106nh „gdy podatnik nie ma możliwości wystawienia faktury ustrukturyzowanej z innego powodu niż awaria Krajowego Systemu eFaktur” i potem rejestrować do końca kolejnego dnia w KSeF. Faktura z Kod QR i tak powstaje z xmla faktury, więc proces zrównoleglam – generuje xmla i równolegle powstaje na bazie tego obiektu wydruk a xml idzie online do KSeF.

Wg mnie - podmiot zagraniczny i bez NIP (NrVatUE, NrID, BrakID) nawet w sklepie przy kasie dostaje fakturę – wprawdzie z Kod QR ale online (nie czeka). Nie musze pytać o zwolnienie podatnika nie będącego podatnikiem VAT czynnym. Ryzyko – dobrowolnie skracam sobie czas na rejestracji FV z 15 kolejnego miesiąca do kolejnego dnia roboczego po wydaniu FV :-(

Ktoś się mierzy z takimi wyzwaniami? Jakieś błędy logiczne? Czegoś nie łapię? Jakieś przerosty formy nad treścią? Co o tym myślicie? Jakie ryzyka?

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

Czy mnie się wydaje, czy coś z numeracją KSeF uległo zmianie? Chcę pobrać fakturę:

Kopiuj
GET https://ksef-test.mf.gov.pl/api/online/Invoice/Get/5170359458-20230801-05AB3FD1B7E6-6D HTTP/1.1
Connection: Keep-Alive
Accept: application/json;q=0.9,text/plain;q=0.9,text/html
Accept-Charset: UTF-8
Cookie: dtCookie=v_4_srv_4_sn_C440BB170F105822BC142D5BBF916127_perc_100000_ol_0_mul_1_app-3Ae03f7c58bcd8b063_0
User-Agent: KSeF RESTClient/1.0
SessionToken: 1b2ad647762e66f6514dea7714bf88dbcc846247bf12c2c8e854abccf4624c7b
Host: ksef-test.mf.gov.pl

Odpowiedź:

Kopiuj
X-OneAgent-JS-Injection: true
Connection: keep-alive
Content-Type: application/json
Content-Length: 338
Server-Timing: dtRpid;desc="-778765928", dtSInfo;desc="0"
Date: Tue, 01 Aug 2023 08:21:08 GMT

{"exception":{"serviceCtx":"srvTEMFA","serviceCode":"20230801-EX-8070994DCC-2AB90BDE09-07","serviceName":"online.invoice.invoice.get","timestamp":"2023-08-01T08:21:08.005Z","referenceNumber":"20230801-SE-D5F47C7D75-6BF8E543D9-D4","exceptionDetailList":[{"exceptionCode":21414,"exceptionDescription":"Nieobsługiwana wersja zapytania."}]}}

Niby numer KSeF spełnia wyrażenie z YAMLa, ale dostaję taką odpowiedź, jak widać...

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

W trakcie, gdy KSeF praktycznie nie działa, to mam do Was pytanie, które już padało, ale jednak wrócę... Wizualizacja zarówno faktur jak i UPO...

Próbuję to robić następującym kodem:

Kopiuj
var
	XML: IXMLDocument;
	XSL: IXMLDocument;
	res: WideString;
begin
	if fTransform = nil then
		Exit('');

	try
		XML := TXMLDocument.Create(nil);
		XSL := TXMLDocument.Create(nil);
		TXMLDocument(XML).DOMVendor := DOMVendors.Find('MSXML');
		XML.Active := True;
		XML.LoadFromStream(aXML, xetUTF_8);

		TXMLDocument(XSL).DOMVendor := DOMVendors.Find('MSXML');
		XSL.Active := True;
		XSL.LoadFromStream(fTransform, xetUTF_8);

		XML.DocumentElement.TransformNode(XSL.DocumentElement, Res);
	except
		on E: Exception do
			Application.MessageBox(PChar('Błąd transformowania XML:'#13 + E.Message), PChar(Application.Title), MB_ICONERROR);
	end;

	Result := String(res);

Dla FA(1) używam transformaty, którą kiedyś tu chyba @Małgorzata Gunia zamieszczała. Dodaję zresztą obie do załącznika.
Niestety, efekt jest taki, że dla FA(1) wysypuje się błędem o braku pola, a dla UPO co prawda idzie bez błędu, ale wypluwa coś kompletnie jakichkolwiek znaczników pozbawionego:

Edit: Po zmianie sposobu robienia transformaty na następujący kod:

Kopiuj
class function TXMLUtils.TransformXML(const aXML, aXSL: String): String;
var
	XMLDoc, xslStyle: IXMLDOMDocument;
begin
	try
		XMLDoc := CoDOMDocument60.Create();
		xslStyle := CoDOMDocument60.Create();

		XMLDoc.loadXML(aXML);
		xslStyle.loadXML(aXSL);
		IXMLDOMDocument3(xslStyle).setProperty('AllowXsltScript', True);

		Result := String(XMLDoc.transformNode(xslStyle));
	except
		Result := '';
    end;
end;

...efekt jest taki:

  • Dla FA(1) dostaję wyjątek: EOleException with message 'Nazwany szablon 'NaglowekTytulowy' nie istnieje w arkuszu stylów'.
  • Dla UPO dostaję HTML z kodem, który prowadzi do wyświetlenia tekstu: 'Dane dotyczące podpisu Poświadczenie nie zawiera podpisu'

Podejrzewam, że w przypadku UPO to po prostu szablon nie obsługuje tego UPO, co zwraca KSeF. Ale w przypadku FA(1) to tak, jakby cały szablon miał błąd?

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

Komunikat z wczoraj z MF:

1 sierpnia 2023 r. występują utrudnienia w dostępie do środowiska testowego Krajowego Systemu e-Faktur.

Pracujemy nad przywróceniem poprawności działania usługi.

Przepraszamy za utrudnienia w korzystaniu z usługi.

Dziś faktycznie "tylko" kilka minut już się czeka. Ja się bardzo zastanawiam, co oni tam faktycznie nazmieniali, bo w pliku zmian tylko dwa zapisy, a nie dość, że pozmieniane są specyfikacje elektroniczne, działanie systemu, to jeszcze wszystko tak diametralnie siadło z wydajnością. Od nowa to pisali, czy jak?

S8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 81
0
Dzyszla napisał(a):

W trakcie, gdy KSeF praktycznie nie działa, to mam do Was pytanie, które już padało, ale jednak wrócę... Wizualizacja zarówno faktur jak i UPO...

Próbuję to robić następującym kodem:

Kopiuj
var
	XML: IXMLDocument;
	XSL: IXMLDocument;
	res: WideString;
begin
	if fTransform = nil then
		Exit('');

	try
		XML := TXMLDocument.Create(nil);
		XSL := TXMLDocument.Create(nil);
		TXMLDocument(XML).DOMVendor := DOMVendors.Find('MSXML');
		XML.Active := True;
		XML.LoadFromStream(aXML, xetUTF_8);

		TXMLDocument(XSL).DOMVendor := DOMVendors.Find('MSXML');
		XSL.Active := True;
		XSL.LoadFromStream(fTransform, xetUTF_8);

		XML.DocumentElement.TransformNode(XSL.DocumentElement, Res);
	except
		on E: Exception do
			Application.MessageBox(PChar('Błąd transformowania XML:'#13 + E.Message), PChar(Application.Title), MB_ICONERROR);
	end;

	Result := String(res);

Dla FA(1) używam transformaty, którą kiedyś tu chyba @Małgorzata Gunia zamieszczała. Dodaję zresztą obie do załącznika.
Niestety, efekt jest taki, że dla FA(1) wysypuje się błędem o braku pola, a dla UPO co prawda idzie bez błędu, ale wypluwa coś kompletnie jakichkolwiek znaczników pozbawionego:

Edit: Po zmianie sposobu robienia transformaty na następujący kod:

Kopiuj
class function TXMLUtils.TransformXML(const aXML, aXSL: String): String;
var
	XMLDoc, xslStyle: IXMLDOMDocument;
begin
	try
		XMLDoc := CoDOMDocument60.Create();
		xslStyle := CoDOMDocument60.Create();

		XMLDoc.loadXML(aXML);
		xslStyle.loadXML(aXSL);
		IXMLDOMDocument3(xslStyle).setProperty('AllowXsltScript', True);

		Result := String(XMLDoc.transformNode(xslStyle));
	except
		Result := '';
    end;
end;

...efekt jest taki:

  • Dla FA(1) dostaję wyjątek: EOleException with message 'Nazwany szablon 'NaglowekTytulowy' nie istnieje w arkuszu stylów'.
  • Dla UPO dostaję HTML z kodem, który prowadzi do wyświetlenia tekstu: 'Dane dotyczące podpisu Poświadczenie nie zawiera podpisu'

Podejrzewam, że w przypadku UPO to po prostu szablon nie obsługuje tego UPO, co zwraca KSeF. Ale w przypadku FA(1) to tak, jakby cały szablon miał błąd?

Upewnij się , czy na pewno dobry ten plik stylu masz. Ten link co dawałem to był do FA2. Jesli masz ten stary do FA1 (w razie czego załączam swójstyl.zip)

Moja funkcja do zmiany:

Kopiuj
function TransformXML(AXMLContent:String='';AXSLFile:String=''):String;
var
 XML: IXMLDOMDocument;
 XSL: IXMLDOMDocument;
 LDocument: IXMLDocument;
 XMLContent, AXSLContent: String;
begin
  XML := CoDOMDocument.Create;
  //XML.load(AXMLFile);
  XML.loadXML(AXMLContent);
  LDocument := TXMLDocument.Create(nil);
  LDocument.ParseOptions := [poPreserveWhiteSpace];
  LDocument.LoadFromFile(AXSLFile);
  XSL := CoDOMDocument.Create;
  XSL.loadXML(LDocument.XML.Text);
  Result:=  XML.TransformNode(XSL);
end;
AT
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Dobry! Na mnie też trafiła ta przyjemność zbadania możliwości integracji z KSeF. W tym wątku jest istna kopalnia, ale mam problem z tokenem sesyjnym, który nie wiem jak ugryźć i nie znalazłem niczego w tym temacie. Chodzi o ten token wstawiany do XML wysyłanego do online/Session/InitToken.

Wydaje się, że sam token umiem już wygenerować (nie dostaję już "Nieprawidłowy token." w odpowiedzi), za to utknąłem z "Nieprawidłowy czas tokena.".

Pobieram timestamp, koduję go - bazując na dyskusjach z tego wątku i pamiętając o wyzerowanych milisekundach - tak:

Kopiuj
timestamp_in_ms = str(int(datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S.%fZ").timestamp()) * 1000)

i uzyskuję wartość wyglądającą np. 1690977765000.

Potem sklejam go z tokenem wygenerowanym w testowym web page

Kopiuj
text = token + '|' + timestamp_in_ms

i wrzucam do XLS.

Ale jakbym nie kombinował zawsze dostaję zwrotkę z nieprawidłowym czasem tokena. Najpewniej robię jakiś prosty błąd w tej całej operacji, ale nie mogę na to wpaść. Poproszę o wskazówki/pomysły.

Dzięki!


edited:
Całkiem możliwe, że timestamp jest poprawny, ale coś krzywo robię w innym miejscu.

Aktualnie token generuję w ten sposób (sam kod wymaga pracy, ale to na razie PoC tylko):

Kopiuj
  rsa_key = RSA.importKey(open('certs/publicKey.der', 'rb').read())
  cipher = PKCS1_v1_5.new(rsa_key)
  
  timestamp_in_ms = str(int(datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S.%fZ").timestamp()) * 1000)
  text = token + '|' + timestamp_in_ms
  
  encrypted_text = cipher.encrypt(bytes(text, encoding='utf-8'))
  b64encoded = base64.b64encode(encrypted_text)

I dostaję ten nieprawidłowy czas tokena w odpowiedzi.

Jan Zynio
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Witam
Chciałem przetestować wysyłkę wsadową
Init i Upload idzie bez problemu
Przy operacji Finish dostaję błąd

Kopiuj
"exceptionCode":21001,"exceptionDescription":"Nieczytelna treść."

Spotkał się ktoś z takim problemem?

Uzupełnienie informacji:
Wysyłam 1 paczkę z 2 fakturami w wersji FA (1)
Środowisko testowe Request: /batch/Init

Kopiuj
{
  "resource": "/batch/Init",
  "parameters": [
    {
      "name": "Accept",
      "value": "application/json",
      "type": "HttpHeader"
    },
    {
      "name": "application/octet-stream",
      "value": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxJbml0UmVxdWVzdCB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL2JhdGNoL2luaXQvcmVxdWVzdC8yMDIxLzEwLzAxLzAwMDEiPg0KICA8SWRlbnRpZmllciB4bWxuczpxMT0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSIgeHNpOnR5cGU9InExOlN1YmplY3RJZGVudGlmaWVyQnlDb21wYW55VHlwZSI+DQogICAgPHExOklkZW50aWZpZXI+MTY2NjQ0NDU1NTwvcTE6SWRlbnRpZmllcj4NCiAgPC9JZGVudGlmaWVyPg0KICA8RG9jdW1lbnRUeXBlPg0KICAgIDxTZXJ2aWNlIHhtbG5zPSJodHRwOi8va3NlZi5tZi5nb3YucGwvc2NoZW1hL2d0dy9zdmMvdHlwZXMvMjAyMS8xMC8wMS8wMDAxIj5LU2VGPC9TZXJ2aWNlPg0KICAgIDxGb3JtQ29kZSB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSI+DQogICAgICA8U3lzdGVtQ29kZT5GQSAoMSk8L1N5c3RlbUNvZGU+DQogICAgICA8U2NoZW1hVmVyc2lvbj4xLTBFPC9TY2hlbWFWZXJzaW9uPg0KICAgICAgPFRhcmdldE5hbWVzcGFjZT5odHRwOi8va3NlZi5tZi5nb3YucGwvc2NoZW1hL2d0dy9zdmMvYmF0Y2gvaW5pdC9yZXF1ZXN0LzIwMjEvMTAvMDEvMDAwMTwvVGFyZ2V0TmFtZXNwYWNlPg0KICAgICAgPFZhbHVlPkZBPC9WYWx1ZT4NCiAgICA8L0Zvcm1Db2RlPg0KICA8L0RvY3VtZW50VHlwZT4NCiAgPEVuY3J5cHRpb24+DQogICAgPEVuY3J5cHRpb25LZXkgeG1sbnM9Imh0dHA6Ly9rc2VmLm1mLmdvdi5wbC9zY2hlbWEvZ3R3L3N2Yy90eXBlcy8yMDIxLzEwLzAxLzAwMDEiPg0KICAgICAgPEVuY29kaW5nPkJhc2U2NDwvRW5jb2Rpbmc+DQogICAgICA8QWxnb3JpdGhtPkFFUzwvQWxnb3JpdGhtPg0KICAgICAgPFNpemU+MjU2PC9TaXplPg0KICAgICAgPFZhbHVlPkNQNkovb1NPdWhCU0g0NUMwdDUyclVXYUJOVUpPbWkvNEVWUHgxMGNBSk9oMUtzYnMvZ0puV2tSaWpuV1Jrano0ck5xdjFld2R6bEV0dVVnbzJYRGxVSU9BQzFvR3FaVlJJZjZhZG5NVWJJa3pnV2hKWmJtQkVnNUUvZ2hXVEZiOUtvTXY5VERQVldsdWM0WUlCTVU4WE8xRytFLytObGtQMSttTHE2cy9WNXcxTEJxbHdzdWNZTnRaYXdpVG5SbjVpVzEwZkNMeU1JOERRR09pZm1mMUZZYUpwU0xaNnZwaVIzNklFUlNIai9yc1hBaHpvUUFiN0RZbFdQUlFZUmxhT2FDYm5wU1pVZkdsTEg2WDdVMHQ4M0dMd0I0YjdEdVFWTDJwR0llR1oyRHEzTGVLZFMwcTZEWjhaWWpEUkhhQ0ZoZzcva3crcU5pcU1MYTY1THVLdz09PC9WYWx1ZT4NCiAgICA8L0VuY3J5cHRpb25LZXk+DQogICAgPEVuY3J5cHRpb25Jbml0aWFsaXphdGlvblZlY3RvciB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSI+DQogICAgICA8RW5jb2Rpbmc+QmFzZTY0PC9FbmNvZGluZz4NCiAgICAgIDxCeXRlcz4xNjwvQnl0ZXM+DQogICAgICA8VmFsdWU+Um81eUs5Y3VJbVliN2FxMm0wTnRwdz09PC9WYWx1ZT4NCiAgICA8L0VuY3J5cHRpb25Jbml0aWFsaXphdGlvblZlY3Rvcj4NCiAgICA8RW5jcnlwdGlvbkFsZ29yaXRobUtleSB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSI+DQogICAgICA8QWxnb3JpdGhtPlJTQTwvQWxnb3JpdGhtPg0KICAgICAgPE1vZGU+RUNCPC9Nb2RlPg0KICAgICAgPFBhZGRpbmc+UEtDUyMxPC9QYWRkaW5nPg0KICAgIDwvRW5jcnlwdGlvbkFsZ29yaXRobUtleT4NCiAgICA8RW5jcnlwdGlvbkFsZ29yaXRobURhdGEgeG1sbnM9Imh0dHA6Ly9rc2VmLm1mLmdvdi5wbC9zY2hlbWEvZ3R3L3N2Yy90eXBlcy8yMDIxLzEwLzAxLzAwMDEiPg0KICAgICAgPEFsZ29yaXRobT5BRVM8L0FsZ29yaXRobT4NCiAgICAgIDxNb2RlPkNCQzwvTW9kZT4NCiAgICAgIDxQYWRkaW5nPlBLQ1MjNzwvUGFkZGluZz4NCiAgICA8L0VuY3J5cHRpb25BbGdvcml0aG1EYXRhPg0KICA8L0VuY3J5cHRpb24+DQogIDxQYWNrYWdlU2lnbmF0dXJlPg0KICAgIDxQYWNrYWdlPg0KICAgICAgPFBhY2thZ2VUeXBlIHhtbG5zPSJodHRwOi8va3NlZi5tZi5nb3YucGwvc2NoZW1hL2d0dy9zdmMvYmF0Y2gvdHlwZXMvMjAyMS8xMC8wMS8wMDAxIj5zcGxpdDwvUGFja2FnZVR5cGU+DQogICAgICA8Q29tcHJlc3Npb25UeXBlIHhtbG5zPSJodHRwOi8va3NlZi5tZi5nb3YucGwvc2NoZW1hL2d0dy9zdmMvYmF0Y2gvdHlwZXMvMjAyMS8xMC8wMS8wMDAxIj56aXA8L0NvbXByZXNzaW9uVHlwZT4NCiAgICAgIDxWYWx1ZSB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL2JhdGNoL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSI+cGFjemtpS1NlRi56aXA8L1ZhbHVlPg0KICAgIDwvUGFja2FnZT4NCiAgICA8UGFja2FnZUZpbGVIYXNoPg0KICAgICAgPEhhc2hTSEEgeG1sbnM9Imh0dHA6Ly9rc2VmLm1mLmdvdi5wbC9zY2hlbWEvZ3R3L3N2Yy90eXBlcy8yMDIxLzEwLzAxLzAwMDEiPg0KICAgICAgICA8QWxnb3JpdGhtPlNIQS0yNTY8L0FsZ29yaXRobT4NCiAgICAgICAgPEVuY29kaW5nPkJhc2U2NDwvRW5jb2Rpbmc+DQogICAgICAgIDxWYWx1ZT5VeWlndU5aWXhkY2h4MXlhTURVSUFmTURudVdSbFNTVTBPKytMN2xqOTFvPTwvVmFsdWU+DQogICAgICA8L0hhc2hTSEE+DQogICAgICA8RmlsZVNpemUgeG1sbnM9Imh0dHA6Ly9rc2VmLm1mLmdvdi5wbC9zY2hlbWEvZ3R3L3N2Yy90eXBlcy8yMDIxLzEwLzAxLzAwMDEiPjE3NDA8L0ZpbGVTaXplPg0KICAgIDwvUGFja2FnZUZpbGVIYXNoPg0KICAgIDxQYWNrYWdlUGFydHNMaXN0Pg0KICAgICAgPFBhY2thZ2VQYXJ0U2lnbmF0dXJlPg0KICAgICAgICA8T3JkaW5hbE51bWJlciB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL2JhdGNoL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSI+MTwvT3JkaW5hbE51bWJlcj4NCiAgICAgICAgPFBhcnRGaWxlTmFtZSB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL2JhdGNoL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSI+cGFjemtpS1NlRi56aXAuMTwvUGFydEZpbGVOYW1lPg0KICAgICAgICA8UGFydEZpbGVIYXNoIHhtbG5zPSJodHRwOi8va3NlZi5tZi5nb3YucGwvc2NoZW1hL2d0dy9zdmMvYmF0Y2gvdHlwZXMvMjAyMS8xMC8wMS8wMDAxIj4NCiAgICAgICAgICA8SGFzaFNIQSB4bWxucz0iaHR0cDovL2tzZWYubWYuZ292LnBsL3NjaGVtYS9ndHcvc3ZjL3R5cGVzLzIwMjEvMTAvMDEvMDAwMSI+DQogICAgICAgICAgICA8QWxnb3JpdGhtPlNIQS0yNTY8L0FsZ29yaXRobT4NCiAgICAgICAgICAgIDxFbmNvZGluZz5CYXNlNjQ8L0VuY29kaW5nPg0KICAgICAgICAgICAgPFZhbHVlPnVVOGh5Ym5MaFZtZjZ4emxBT2lVeW5QV1BUcjFtVWhzeXBpdDZvME00Q1E9PC9WYWx1ZT4NCiAgICAgICAgICA8L0hhc2hTSEE+DQogICAgICAgICAgPEZpbGVTaXplIHhtbG5zPSJodHRwOi8va3NlZi5tZi5nb3YucGwvc2NoZW1hL2d0dy9zdmMvdHlwZXMvMjAyMS8xMC8wMS8wMDAxIj4xNzQ0PC9GaWxlU2l6ZT4NCiAgICAgICAgPC9QYXJ0RmlsZUhhc2g+DQogICAgICA8L1BhY2thZ2VQYXJ0U2lnbmF0dXJlPg0KICAgIDwvUGFja2FnZVBhcnRzTGlzdD4NCiAgPC9QYWNrYWdlU2lnbmF0dXJlPg0KPFNpZ25hdHVyZSBJZD0iU2lnbmF0dXJlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8+PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIgLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIgLz48UmVmZXJlbmNlIElkPSJtYWluUmVmSWQiIFVSST0iIj48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiIC8+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiIC8+PERpZ2VzdFZhbHVlPkFjL3pKZ0pRYm1GTXlsRTVjeHhYb2tVWXlwTGxUd20zNXRKeWg4MVZkL3M9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48UmVmZXJlbmNlIFVSST0iI09iamVjdFJlZjEiIFR5cGU9Imh0dHA6Ly91cmkuZXRzaS5vcmcvMDE5MDMjU2lnbmVkUHJvcGVydGllcyI+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIgLz48RGlnZXN0VmFsdWU+V0JMSGFURlVBSFJPWlJiaXZkTzJkYjIxMjNGUEtzREdVZkhlRjNIQXNCaz08L0RpZ2VzdFZhbHVlPjwvUmVmZXJlbmNlPjwvU2lnbmVkSW5mbz48U2lnbmF0dXJlVmFsdWU+RC84eHo0TlNsOW1CNktaOEFpSDgvWmdXNEFGVGdncVJUVExoWndmREw5TG40KzFPRlRjZFRuM1pLSkJGZDFrcVJhRFE4U2lBZVRWNzd6YXdOOERPbW9KU3l0ZlZzQ0ZBUkFDOEx0Y25LNER2Q0svRWROYmNhbDBhL2JmZ2FPVzA0Ynh5YmtPUUZyR3FzR05BMkdxT1ZLOXdEYTlIaEluMGRuSm5GbWhiRVRiOE1raTk0TGJPTFprYk1QWmhBeGdWWlNBc2NsZHQrUWJLelA3V2JiME1JS25NTWlUSkU5NHIrMEFjcUZrNWx6SG1GdnhUSmdDM21CK3RtWHJZWk1YODdqVExOYkQ0cXFFdHlQejRIRUJ6SnNRYWluOUp6RVV5RmVpbFJZdk9BbFh0c1dHTGFKMlMwSlY3ZjUwVHRHZCtwMFRuRWhhNHFLTnZwcW5Za3p6UWtRPT08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxYNTA5RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSURjRENDQWxpZ0F3SUJBZ0lJSjV2cW01Z2QxTUl3RFFZSktvWklodmNOQVFFTkJRQXdlREVXTUJRR0ExVUVBd3dOUm1seWJXRWdkR1Z6ZEc5M1lURVZNQk1HQTFVRUNnd01WR1Z6ZEc5M2VTQmpaWEowTVFzd0NRWURWUVFHRXdKUVRERWZNQjBHQ1NxR1NJYjNEUUVKQVJZUU1UWTJOalEwTkRVMU5VQjNjQzV3YkRFWk1CY0dBMVVFWVF3UVZrRlVVRXd0TVRZMk5qUTBORFUxTlRBZUZ3MHlNekEzTXpFd01EQXdNREJhRncweU5UQTNNekV3TURBd01EQmFNSGd4RmpBVUJnTlZCQU1NRFVacGNtMWhJSFJsYzNSdmQyRXhGVEFUQmdOVkJBb01ERlJsYzNSdmQza2dZMlZ5ZERFTE1Ba0dBMVVFQmhNQ1VFd3hIekFkQmdrcWhraUc5dzBCQ1FFV0VERTJOalkwTkRRMU5UVkFkM0F1Y0d3eEdUQVhCZ05WQkdFTUVGWkJWRkJNTFRFMk5qWTBORFExTlRVd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNGNHhjYWIwbkVlTjJTempVYmJHNnN2cUpLWXhhWEdhUkphTzF2L3ZaekNxT0xFcytxSHhXTmVmQ0N3anZxcEdGUCtGdDFJc0NpRnpZajVNSkEzL2RmN1Y3aHVIbHZCMlpnVzA5Vnd0YWIvcWNZT1UvdDVwVjVlbDFyUmtHUCtEVDA2d3ZoRnZOODNXeGd1SkZ2bmN3S0F5dGZlZjcwOXZYYkJIOFBmV21ZU0VmRlowTHozbG9OSkZmQU5salV0S1RNSHl6cE5COGZlYWN1UVdrRUVlanp1YWFIMnl5V1puNm5ZOVcweUg3NXpMZ3R6NUNGNlVLNGtuaUJYcXdOek93cGl0ekE2c3pFKzdYTlVlZXZ1T2MvbjBBenpnTVdaUmRRc0lBeUtwalI4bVp3NU1sYndrOTFhcm5NTDQxekRXRUFSNjZ2V29JV2ZtWGNCam9wT29USkFnTUJBQUV3RFFZSktvWklodmNOQVFFTkJRQURnZ0VCQUNmOVNXQjRSK001akI1Y3JJdkNDVnRRTWpLUUNlcSt5ZXZWMTcvdXhSbHJZRmlGMGlqLzcyekRObHZ0dE5yTUVMeDVmak9RRXFjSVZ1SXZOU1NUTzFLMTBQMmRSWUhaN1hHekdyR1laWXRtbm14ZHVpWWx4Y2xrdTUwNDZ3ZkFsTGg2TU5FTzIyQzMwSEVDb2tOT0ljRkZmNW9tMk0vdGJGMnYxMFJBTUNrUDVDTzNpeFEzUUwvODNSVGNXUDhnVCtrZzBrdVZiWTFtSUw4ZExjQmZnQXF0MFQwNXVKcUpoRERRakZhZDkvOHZhOHYwU3RISVhaQTE2cVovamc2VGhyeGRNM3lPN0dJNTU1RWRFZ1lnSWdjYzRrVW90aDMxYUxCT0lJTDFqVWxPWVhqRHhreVdBajM1RlgyVjZpNUt2TXNxSjgySTZZNUU2RFdibXE1TC9KWT08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48T2JqZWN0IElkPSJPYmplY3RSZWYxIj48eGFkZXM6UXVhbGlmeWluZ1Byb3BlcnRpZXMgVGFyZ2V0PSIjU2lnbmF0dXJlIiB4bWxuczp4YWRlcz0iaHR0cDovL3VyaS5ldHNpLm9yZy8wMTkwMy92MS4zLjIjIj48eGFkZXM6U2lnbmVkUHJvcGVydGllcyBJZD0iU2lnbmVkUHJvcGVydGllczIiPjx4YWRlczpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjx4YWRlczpTaWduaW5nVGltZT4yMDIzLTA4LTAzVDA2OjE5OjMzWjwveGFkZXM6U2lnbmluZ1RpbWU+PHhhZGVzOlNpZ25pbmdDZXJ0aWZpY2F0ZT48eGFkZXM6Q2VydD48eGFkZXM6Q2VydERpZ2VzdD48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiIC8+PERpZ2VzdFZhbHVlPlI0QjFyR1YvNTRkN013Mk01a2lNSTBPOGozTT08L0RpZ2VzdFZhbHVlPjwveGFkZXM6Q2VydERpZ2VzdD48eGFkZXM6SXNzdWVyU2VyaWFsPjxYNTA5SXNzdWVyTmFtZT5PSUQuMi41LjQuOTc9VkFUUEwtMTY2NjQ0NDU1NSwgRT0xNjY2NDQ0NTU1QHdwLnBsLCBDPVBMLCBPPVRlc3Rvd3kgY2VydCwgQ049RmlybWEgdGVzdG93YTwvWDUwOUlzc3Vlck5hbWU+PFg1MDlTZXJpYWxOdW1iZXI+Mjg1NDEzMjc0Mjg2MjI2MzQ5MDwvWDUwOVNlcmlhbE51bWJlcj48L3hhZGVzOklzc3VlclNlcmlhbD48L3hhZGVzOkNlcnQ+PC94YWRlczpTaWduaW5nQ2VydGlmaWNhdGU+PC94YWRlczpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjx4YWRlczpTaWduZWREYXRhT2JqZWN0UHJvcGVydGllcz48eGFkZXM6RGF0YU9iamVjdEZvcm1hdCBPYmplY3RSZWZlcmVuY2U9IiNtYWluUmVmSWQiPjx4YWRlczpNaW1lVHlwZT50ZXh0L3htbDwveGFkZXM6TWltZVR5cGU+PC94YWRlczpEYXRhT2JqZWN0Rm9ybWF0PjwveGFkZXM6U2lnbmVkRGF0YU9iamVjdFByb3BlcnRpZXM+PC94YWRlczpTaWduZWRQcm9wZXJ0aWVzPjwveGFkZXM6UXVhbGlmeWluZ1Byb3BlcnRpZXM+PC9PYmplY3Q+PC9TaWduYXR1cmU+PC9Jbml0UmVxdWVzdD4=",
      "type": "RequestBody"
    }
  ],
  "method": "POST",
  "uri": "https://ksef-test.mf.gov.pl/api/batch/Init"
}

Podpisany plik requestu

Kopiuj
<?xml version="1.0" encoding="utf-8"?>
<InitRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001">
  <Identifier xmlns:q1="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001" xsi:type="q1:SubjectIdentifierByCompanyType">
    <q1:Identifier>1666444555</q1:Identifier>
  </Identifier>
  <DocumentType>
    <Service xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">KSeF</Service>
    <FormCode xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <SystemCode>FA (1)</SystemCode>
      <SchemaVersion>1-0E</SchemaVersion>
      <TargetNamespace>http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001</TargetNamespace>
      <Value>FA</Value>
    </FormCode>
  </DocumentType>
  <Encryption>
    <EncryptionKey xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Encoding>Base64</Encoding>
      <Algorithm>AES</Algorithm>
      <Size>256</Size>
      <Value>CP6J/oSOuhBSH45C0t52rUWaBNUJOmi/4EVPx10cAJOh1Ksbs/gJnWkRijnWRkjz4rNqv1ewdzlEtuUgo2XDlUIOAC1oGqZVRIf6adnMUbIkzgWhJZbmBEg5E/ghWTFb9KoMv9TDPVWluc4YIBMU8XO1G+E/+NlkP1+mLq6s/V5w1LBqlwsucYNtZawiTnRn5iW10fCLyMI8DQGOifmf1FYaJpSLZ6vpiR36IERSHj/rsXAhzoQAb7DYlWPRQYRlaOaCbnpSZUfGlLH6X7U0t83GLwB4b7DuQVL2pGIeGZ2Dq3LeKdS0q6DZ8ZYjDRHaCFhg7/kw+qNiqMLa65LuKw==</Value>
    </EncryptionKey>
    <EncryptionInitializationVector xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Encoding>Base64</Encoding>
      <Bytes>16</Bytes>
      <Value>Ro5yK9cuImYb7aq2m0Ntpw==</Value>
    </EncryptionInitializationVector>
    <EncryptionAlgorithmKey xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Algorithm>RSA</Algorithm>
      <Mode>ECB</Mode>
      <Padding>PKCS#1</Padding>
    </EncryptionAlgorithmKey>
    <EncryptionAlgorithmData xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Algorithm>AES</Algorithm>
      <Mode>CBC</Mode>
      <Padding>PKCS#7</Padding>
    </EncryptionAlgorithmData>
  </Encryption>
  <PackageSignature>
    <Package>
      <PackageType xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">split</PackageType>
      <CompressionType xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">zip</CompressionType>
      <Value xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">paczkiKSeF.zip</Value>
    </Package>
    <PackageFileHash>
      <HashSHA xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
        <Algorithm>SHA-256</Algorithm>
        <Encoding>Base64</Encoding>
        <Value>UyiguNZYxdchx1yaMDUIAfMDnuWRlSSU0O++L7lj91o=</Value>
      </HashSHA>
      <FileSize xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">1740</FileSize>
    </PackageFileHash>
    <PackagePartsList>
      <PackagePartSignature>
        <OrdinalNumber xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">1</OrdinalNumber>
        <PartFileName xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">paczkiKSeF.zip.1</PartFileName>
        <PartFileHash xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">
          <HashSHA xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
            <Algorithm>SHA-256</Algorithm>
            <Encoding>Base64</Encoding>
            <Value>uU8hybnLhVmf6xzlAOiUynPWPTr1mUhsypit6o0M4CQ=</Value>
          </HashSHA>
          <FileSize xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">1744</FileSize>
        </PartFileHash>
      </PackagePartSignature>
    </PackagePartsList>
  </PackageSignature>
<Signature Id="Signature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /><Reference Id="mainRefId" URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><DigestValue>Ac/zJgJQbmFMylE5cxxXokUYypLlTwm35tJyh81Vd/s=</DigestValue></Reference><Reference URI="#ObjectRef1" Type="http://uri.etsi.org/01903#SignedProperties"><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><DigestValue>WBLHaTFUAHROZRbivdO2db2123FPKsDGUfHeF3HAsBk=</DigestValue></Reference></SignedInfo><SignatureValue>D/8xz4NSl9mB6KZ8AiH8/ZgW4AFTggqRTTLhZwfDL9Ln4+1OFTcdTn3ZKJBFd1kqRaDQ8SiAeTV77zawN8DOmoJSytfVsCFARAC8LtcnK4DvCK/EdNbcal0a/bfgaOW04bxybkOQFrGqsGNA2GqOVK9wDa9HhIn0dnJnFmhbETb8Mki94LbOLZkbMPZhAxgVZSAscldt+QbKzP7Wbb0MIKnMMiTJE94r+0AcqFk5lzHmFvxTJgC3mB+tmXrYZMX87jTLNbD4qqEtyPz4HEBzJsQain9JzEUyFeilRYvOAlXtsWGLaJ2S0JV7f50TtGd+p0TnEha4qKNvpqnYkzzQkQ==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIDcDCCAligAwIBAgIIJ5vqm5gd1MIwDQYJKoZIhvcNAQENBQAweDEWMBQGA1UEAwwNRmlybWEgdGVzdG93YTEVMBMGA1UECgwMVGVzdG93eSBjZXJ0MQswCQYDVQQGEwJQTDEfMB0GCSqGSIb3DQEJARYQMTY2NjQ0NDU1NUB3cC5wbDEZMBcGA1UEYQwQVkFUUEwtMTY2NjQ0NDU1NTAeFw0yMzA3MzEwMDAwMDBaFw0yNTA3MzEwMDAwMDBaMHgxFjAUBgNVBAMMDUZpcm1hIHRlc3Rvd2ExFTATBgNVBAoMDFRlc3Rvd3kgY2VydDELMAkGA1UEBhMCUEwxHzAdBgkqhkiG9w0BCQEWEDE2NjY0NDQ1NTVAd3AucGwxGTAXBgNVBGEMEFZBVFBMLTE2NjY0NDQ1NTUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCF4xcab0nEeN2SzjUbbG6svqJKYxaXGaRJaO1v/vZzCqOLEs+qHxWNefCCwjvqpGFP+Ft1IsCiFzYj5MJA3/df7V7huHlvB2ZgW09Vwtab/qcYOU/t5pV5el1rRkGP+DT06wvhFvN83WxguJFvncwKAytfef709vXbBH8PfWmYSEfFZ0Lz3loNJFfANljUtKTMHyzpNB8feacuQWkEEejzuaaH2yyWZn6nY9W0yH75zLgtz5CF6UK4kniBXqwNzOwpitzA6szE+7XNUeevuOc/n0AzzgMWZRdQsIAyKpjR8mZw5Mlbwk91arnML41zDWEAR66vWoIWfmXcBjopOoTJAgMBAAEwDQYJKoZIhvcNAQENBQADggEBACf9SWB4R+M5jB5crIvCCVtQMjKQCeq+yevV17/uxRlrYFiF0ij/72zDNlvttNrMELx5fjOQEqcIVuIvNSSTO1K10P2dRYHZ7XGzGrGYZYtmnmxduiYlxclku5046wfAlLh6MNEO22C30HECokNOIcFFf5om2M/tbF2v10RAMCkP5CO3ixQ3QL/83RTcWP8gT+kg0kuVbY1mIL8dLcBfgAqt0T05uJqJhDDQjFad9/8va8v0StHIXZA16qZ/jg6ThrxdM3yO7GI555EdEgYgIgcc4kUoth31aLBOIIL1jUlOYXjDxkyWAj35FX2V6i5KvMsqJ82I6Y5E6DWbmq5L/JY=</X509Certificate></X509Data></KeyInfo><Object Id="ObjectRef1"><xades:QualifyingProperties Target="#Signature" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"><xades:SignedProperties Id="SignedProperties2"><xades:SignedSignatureProperties><xades:SigningTime>2023-08-03T06:19:33Z</xades:SigningTime><xades:SigningCertificate><xades:Cert><xades:CertDigest><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>R4B1rGV/54d7Mw2M5kiMI0O8j3M=</DigestValue></xades:CertDigest><xades:IssuerSerial><X509IssuerName>OID.2.5.4.97=VATPL-1666444555, E=1666444555@wp.pl, C=PL, O=Testowy cert, CN=Firma testowa</X509IssuerName><X509SerialNumber>2854132742862263490</X509SerialNumber></xades:IssuerSerial></xades:Cert></xades:SigningCertificate></xades:SignedSignatureProperties><xades:SignedDataObjectProperties><xades:DataObjectFormat ObjectReference="#mainRefId"><xades:MimeType>text/xml</xades:MimeType></xades:DataObjectFormat></xades:SignedDataObjectProperties></xades:SignedProperties></xades:QualifyingProperties></Object></Signature></InitRequest>

Response:

Kopiuj
{
  "statusCode": 200,
  "content": "{\"timestamp\":\"2023-08-03T06:19:33.835Z\",\"referenceNumber\":\"20230803-SE-B8D419FB9B-170B180458-F8\",\"packageSignature\":{\"packageName\":\"paczkiKSeF.zip\",\"packagePartSignatureList\":[{\"ordinalNumber\":1,\"partFileName\":\"paczkiKSeF.zip.1\",\"url\":\"https://ksef-test.mf.gov.pl/api/batch/Upload/20230803-SE-B8D419FB9B-170B180458-F8/20230803-EA-1699E6AD66-EA9E69EA28-5A\",\"method\":\"PUT\",\"headerEntryList\":[{\"key\":\"Content-SHA256\",\"value\":\"uU8hybnLhVmf6xzlAOiUynPWPTr1mUhsypit6o0M4CQ=\"},{\"key\":\"X-TargetSrv-Name\",\"value\":\"srvTEMFB\"}]}]}}",
  "headers": [ ... ],
  "responseUri": "https://ksef-test.mf.gov.pl/api/batch/Init",
  "errorMessage": null
}

Wysyłka pliku:

Kopiuj
{
  "resource": "/batch/Upload/{ReferenceNumber}/{PartName}",
  "parameters": [
    {
      "name": "ReferenceNumber",
      "value": "20230803-SE-B8D419FB9B-170B180458-F8",
      "type": "UrlSegment"
    },
    {
      "name": "PartName",
      "value": "20230803-EA-1699E6AD66-EA9E69EA28-5A",
      "type": "UrlSegment"
    },
    {
      "name": "Content-SHA256",
      "value": "uU8hybnLhVmf6xzlAOiUynPWPTr1mUhsypit6o0M4CQ=",
      "type": "HttpHeader"
    },
    {
      "name": "X-TargetSrv-Name",
      "value": "srvTEMFB",
      "type": "HttpHeader"
    },
    {
      "name": "Accept",
      "value": "application/json",
      "type": "HttpHeader"
    },
    {
      "name": "application/octet-stream",
      "value": "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",
      "type": "RequestBody"
    }
  ],
  "method": "PUT",
  "uri": "https://ksef-test.mf.gov.pl/api/batch/Upload/20230803-SE-B8D419FB9B-170B180458-F8/20230803-EA-1699E6AD66-EA9E69EA28-5A"
}

Odpowiedź:

Kopiuj
{
  "statusCode": 200,
  "content": "{\"timestamp\":\"2023-08-03T06:19:34.427Z\",\"referenceNumber\":\"20230803-SE-B8D419FB9B-170B180458-F8\"}",
  "headers": [...]
  ],
  "responseUri": "https://ksef-test.mf.gov.pl/api/batch/Upload/20230803-SE-B8D419FB9B-170B180458-F8/20230803-EA-1699E6AD66-EA9E69EA28-5A",
  "errorMessage": null
}

Zakończenie wysyłki:

Kopiuj
{
  "resource": "/batch/Finish",
  "parameters": [
    {
      "name": "Accept",
      "value": "application/json",
      "type": "HttpHeader"
    },
    {
      "name": "application/json",
      "value": "{\"referenceNumber\":\"20230803-SE-B8D419FB9B-170B180458-F8\",\"timestamp\":\"2023-08-03T06:19:33.835Z\"}",
      "type": "RequestBody"
    }
  ],
  "method": "POST",
  "uri": "https://ksef-test.mf.gov.pl/api/batch/Finish"
}

I odpowiedź z błędem:

Kopiuj
{
  "statusCode": 400,
  "content": "{\"exception\":{\"serviceCtx\":\"srvTEMFB\",\"serviceCode\":\"20230803-EX-D45E6B8669-882C37E8B2-A3\",\"serviceName\":\"batch.finish\",\"timestamp\":\"2023-08-03T06:19:37.054Z\",\"exceptionDetailList\":[{\"exceptionCode\":21001,\"exceptionDescription\":\"Nieczytelna treść.\"}]}}",
  "headers": [...],
  "responseUri": "https://ksef-test.mf.gov.pl/api/batch/Finish",
  "errorMessage": null
}
LC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Cześć,
są tu osoby, które pracują nad procesem fakturowania online - czyli zakładają rejestrację w KSeF zaraz po wystawieniu faktury w systemie fakturującym? Będziecie wydawać wizualizację klientom?
Niektórzy z Was - z tego co czytałem - zakładają wysyłanie faktur raz na koniec dnia. Co w takim razie wydacie klientowi w momencie sprzedaży?
Jest ktoś kto ma bardziej skomplikowane procesy, jak sprzedaż detaliczna, faktury dla nabywcy bez dostępu do KSeF?
Jest ktoś kto projektuje wydawanie faktury z Kod QR awaryjne KSeF i awaria podatnika?

Potrzebuję zderzyć koncepcję w trochę bardziej skomplikowanych sytuacjach, bo mózg mi się przegrzewa jak czytam, że będą ... choćby.. duplikaty faktur z Kod QR :-(

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

Ktoś wie, do czego jest nowa funkcja:
/online/Session/GenerateInternalIdentifier/{inputDigitsSequence}

i widzicie jakieś zastosowanie dla tych częściowych UPO
/common/Upo/{ReferenceNumber}/{UpoReferenceNumber}
?

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

Było kiedyś info, że MF da możliwość wysyłki wsadowej przy identyfikacji tokenem, wiecie co w tym temacie?

S8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 81
0

A czy jest gdzieś dostępna taka dokumentacja z szerszymi opisami do FA2 tak jak byla do FA1 czy tylko te PDFy z roznicami ?

TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0

Czy udostępniony arkusz do podglądu http://crd.gov.pl/wzor/2023/06/29/12648/styl.xsl działa Wam dobrze? Czy może po prostu nie obsługuje prawidłowo FA(1) i muszę do faktur w starym formacie używać poprzedniego stylu?

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 190
0
Stl86 napisał(a):

A czy jest gdzieś dostępna taka dokumentacja z szerszymi opisami do FA2 tak jak byla do FA1 czy tylko te PDFy z roznicami ?

Coś takiego było. Ale nie wiem, czy to wciąż aktualne.Dokumentacja_struktury_roboczej_FA(2).pdf

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

Koleżanko i koledzy - zrobiłem w końcu sam XSLT do UPO z KSeF.
Zastrzegam, że tylko wzorowałem się na wzorze i nie jest to żaden oficjalny wzór/plik transformaty. Ale pozwoli myślę łatwiej testować. I chętnie bym przetestował, gdyby KSeF zaczęło łaskawie zacząć działać (nie da się z anonimowego już od jakiegoś czasu pobierać UPO - to jest normalnie tragedia, co z tym systemem wyprawiają)
Edit:
13:05: Poprawka numeracji wierszy
13:10: brakujący wiersz z XSD
14:17 Dodałem logo KSeF

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

Witam, mam problem z logowaniem przy pomocy /online/Session/InitToken. Jak na razie próbuję ręcznie wypełnić XML i sprawdzić czy wszystko działa jednak za każdym razem wyskakuje błąd: 21111 : Nieprawidłowe wyzwanie autoryzacyjne.

kod: c#

Kopiuj
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace KSeFTest
{
    public class Program
    {
        public static void Main()
        {                                    
            string publicKeyFilePath = @"sciezkaDoPliku";
            string token = "mojToken";
            
            string timestampStr = "2023-08-02T12:37:31.313Z";
            DateTimeOffset timestamp = DateTimeOffset.Parse(timestampStr);
            long challengeTime = timestamp.ToUnixTimeMilliseconds();

            string dataToEncrypt = token + "|" + challengeTime;
            byte[] publicKeyBytes = File.ReadAllBytes(publicKeyFilePath);
            RSA rsa = DecodePublicKey(publicKeyBytes);
            byte[] encryptedData = EncryptWithPublicKey(rsa, dataToEncrypt);
            string base64EncryptedData = Base64Encode(encryptedData);

            Console.WriteLine(base64EncryptedData);
            Console.ReadKey();
        }

        public static RSA DecodePublicKey(byte[] publicKeyBytes)
        {
            RSA rsa = RSA.Create();
            rsa.ImportSubjectPublicKeyInfo(publicKeyBytes, out _);
            return rsa;
        }

        public static byte[] EncryptWithPublicKey(RSA publicKey, string data)
        {
            byte[] encryptedData;
            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            encryptedData = publicKey.Encrypt(dataBytes, RSAEncryptionPadding.OaepSHA256);
            return encryptedData;
        }

        public static string Base64Encode(byte[] data)
        {
            return Convert.ToBase64String(data);
        }
    }
}

screenshot-20230803132059.png

Czy ja coś źle robię?

XML:

Kopiuj
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns3:InitSessionTokenRequest
	xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/online/types/2021/10/01/0001"
	xmlns:ns2="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001"
	xmlns:ns3="http://ksef.mf.gov.pl/schema/gtw/svc/online/auth/request/2021/10/01/0001">
	<ns3:Context>
		<Challenge>20230803-CR-287C6195F3-3E3D25EFBD-37</Challenge>
		<Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
			<ns2:Identifier>WprowadzonyNIP</ns2:Identifier>
		</Identifier>
		<DocumentType>
			<ns2:Service>KSeF</ns2:Service>
			<ns2:FormCode>
				<ns2:SystemCode>FA (1)</ns2:SystemCode>
				<ns2:SchemaVersion>1-0E</ns2:SchemaVersion>
				<ns2:TargetNamespace>http://crd.gov.pl/wzor/2021/11/29/11089/</ns2:TargetNamespace>
				<ns2:Value>FA</ns2:Value>
			</ns2:FormCode>
		</DocumentType>		
		<Token>uFXv4JafPTJ6u8IvAh4PtufkRbxdw5t4PA8GMxQ8RUYuyQ56ruNPuut4kZ5herpjG3zMnPZ1gB0G67Fa5SvAbhuvSkiBUa7WKCjTICA0lNwuqzMTdtILJsjoSNEmYpNTh3FsoN8oD61mXEt0V5NVRQl59VZFIvA/j4Enh91dSJiuYBhW0gDIXS/bQtLFQdLlt8F882HicWxtjCA6m/Mw72HKlFFLkJARJTD/ANiqhvzxEdTNKheNhGW+CFlhhvw7Btu4NTfGF76Kwt0W1fBBBNywPl5RzNQLXG0uAMMlNtbr3XGLEKPhPcogabZS8mnuS+J7ayJiDBrvDWaqahc6bA==</Token>
	</ns3:Context>
</ns3:InitSessionTokenRequest>
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Hejka,
czy ktoś coś wie co się dzieje z wersją Testową API? https://ksef-test.mf.gov.pl/
Zupełnie leży, nie jestem w stanie uzyskać auth tokena, nawet przez weba nie da się tam wbić.
Wersja LIVE i DEMO widzę działają (https://ksef-demo.mf.gov.pl/, https://ksef.mf.gov.pl/).
Ktoś coś?

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

Czy Wy też tak macie, że wysyłacie do testowego KSeF fakturę w formacie schemy FA(1) a KSeF nadaje numer KSeF wg wzorca FA(2)?
Jak robię np. korektę do faktury wystawionej w KSeF przed 31.07 to referencja do faktury źródłowej ma numer wg FA(1) a jak robię korektę do faktury zarejestrowanej w KSeF po 31.07 to numer faktury źródłowej jest już wg FA(2).
To miałby być dwie równolegle działające schemy a nie mix FA(1) & FA(2)…

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

Sesja interaktywna: Wysyłam fakturę, coś przerwało. Jak mam sesję, to mogę pobrać status faktury sprawdzając status sesji i dostać status faktury.
Ale czekam aż sesja wygaśnie (np: czekam do nocy) albo ubijam sesję. Czy jedyną metodą (w nocy) na pobranie statusu faktury jest pobranie UPO na podstawie SessionRefNo? Bo jak próbuję pobrać status sesji, to go nie dostaje (wisi na ProcessingCode=200).

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

Nie wiem, czy tylko ja zauważyłem, że w środowisku testowym sa nowe .yaml, mimo, że w środku dalej jest wersja 1.1.3...

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

W wersji testowej jest jakiś błąd. Operacja /online/Session/Status nie przyjmuje parametru ?IncludeDetails=false podczas logowania się Tokenem. Wyrzuca błąd: 31000: Nieprawidłowe wywołanie
Na wersji Demo działa poprawnie. (Program już z nowymi yaml-ami)

PS. Test działa tragicznie dziasiaj... :-)

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

Umie ktoś powiedzieć, co z tymi limitami?
o 13:28:58 robię pierwsze zapytanie o status sesji
o 13:43:02 robię 21. zapytanie... Dostaję błęd "Limit żądań osiągnięty".

Test numer 2:
14:02:23 - pierwsze
14:02:24 - drugie
14:22:08 - 22. zapytanie (tak, o jedno więcej) - błąd.

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

Przepis na Faktura z Kod QR

Ksefowicze Programiści,

Poniżej i w załączniku jakies pierwsze założenia faktury z Kod QR. Do jej wygenerowania potrzebny jest - chyba - przygotowany xml do KSeF ale:

  1. „certyfikatu wystawcy faktury powiązanego z parą kluczy szyfrujących, na którą składa się klucz prywatny i klucz publiczny” – to jakiś plik, ciąg znaków, który będę mógł po wygenerowaniu przenieść do systemu fakturującego?
  2. „adres zasobu oprogramowania interfejsowego, o którym mowa w § 3 ust. 1, wskazany w specyfikacji tego oprogramowania” – to jakiś adres www, IP, url?
  3. „identyfikator certyfikatu wystawcy faktury, o którym mowa w § 5 ust. 2” – to ten certyfikat z pkt. 1 powyżej, ale tu nazwany identyfikator – czyli ciąg znaków czy plik?
  4. „wyróżnik obliczony zgodnie ze specyfikacją oprogramowania interfejsowego, o której mowa w § 3 ust. 1, na podstawie skrótu kryptograficznego faktury o długości 256 bitów wytworzonego przy użyciu algorytmu kryptograficznego z rodziny SHA2” – dla mnie to jakaś suma kontrola z pliku xml faktury? Trudne do wykonania to SHA2 ?
  5. „podpisany certyfikatem wystawcy faktury wyróżnik, o którym mowa w pkt 4.” – raz certyfikat a raz identyfikator certyfikatu – co to może być?
  6. Wynikiem powyższej ścieżki jak mniemam ma być ciąg znaków który podstawiamy do algorytmu generowania Kod QR „Kod weryfikujący, o którym mowa w ust. 1 i 2, stanowi unikalny ciąg znaków przedstawiony w postaci dwuwymiarowego, kwadratowego kodu graficznego QR zgodnego z normą ISO/IEC 18004:2015”

Czy powyższe jest rabialne bez większych przeszkód?
Uważacie, że może być jeden certyfikat w wysyłarce do KSeF a inny w systemie kasowym na potrzeby druku QR w krótkiej scieżce?

Wyciąg z projektu Rozporządzenia Kod QR


  1. Wystawienie faktur, o których mowa w art. 106nf ust. 1 i art. 106nh ust. 1 ustawy, wymaga wygenerowania przez Krajowy System e-Faktur, po uwierzytelnieniu się podatnika lub podmiotu uprawnionego w sposób, o którym mowa w ust. 1 pkt 1–3, certyfikatu wystawcy faktury powiązanego z parą kluczy szyfrujących, na którą składa się klucz prywatny i klucz publiczny.

  1. Faktura, o której mowa w art. 106nf ust. 1 ustawy, udostępniana nabywcy w sposób inny niż przy użyciu Krajowego Systemu e-Faktur jest oznaczana kodem weryfikującym, który zawiera:
  1. adres zasobu oprogramowania interfejsowego, o którym mowa w § 3 ust. 1, wskazany w specyfikacji tego oprogramowania;
  2. numer identyfikacji podatkowej (NIP) wystawcy faktury;
  3. identyfikator certyfikatu wystawcy faktury, o którym mowa w § 5 ust. 2;
  4. wyróżnik obliczony zgodnie ze specyfikacją oprogramowania interfejsowego, o której mowa w § 3 ust. 1, na podstawie skrótu kryptograficznego faktury o długości 256 bitów wytworzonego przy użyciu algorytmu kryptograficznego z rodziny SHA2;
  5. podpisany certyfikatem wystawcy faktury wyróżnik, o którym mowa w pkt 4.

  1. Kod weryfikujący, o którym mowa w ust. 1 i 2, stanowi unikalny ciąg znaków przedstawiony w postaci dwuwymiarowego, kwadratowego kodu graficznego QR zgodnego z normą ISO/IEC 18004:2015.

Pełna wersja projektu Rozporządzenia Kod QR


RM - projekt rozporzadzenia w sprawie korzystania z KSeF 4 05 2023.na RM (3333166).pdf

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

Jak to jest z tym v35/v36? Np. w yamlu online w niektórych miejscach używają v35/v36 a w innych tylko v35, np.:

endpoint /online/Invoice/Get/{KSeFReferenceNumber} ma w parametrach KSeFReferenceNumber z patternem ([0-9A-F]{6})-?([0-9A-F]{6})-([0-9A-F]{2}) (v35/v36)

endpoint /online/Query/Invoice/Sync zwraca #/components/schemas/QueryInvoiceSyncResponse z polem invoiceHeaderList typu InvoiceHeaderType gdzie jest ksefReferenceNumber z patternem ([0-9A-F]{6})-?([0-9A-F]{6})-([0-9A-F]{2}) (v35/v36)

ale już endpoint /online/Invoice/Status/{InvoiceElementReferenceNumber}, zwraca #/components/schemas/StatusInvoiceResponse, który ma pole invoiceStatus, który ma pole ksefReferenceNumber z patternem ([0-9A-F]{12})-([0-9A-F]{2}) (czyli tylko v35)

Domyślam się, że to po prostu niedopatrzenie i mamy wyczekiwać nowego yamla?

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

screenshot-20230805120021.png

To też fajne, taki required, ale nie do końca (na ten moment api mi nie zwraca tych pól, cholera wie, czy jednak one są wymagane i kiedys dorobią ich zwracanie czy może jednak nie będą wymagane)

S8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 81
0

Czy ktoś z Was testował jak powinna być przeprowadzona sprzedaż w imieniu i na rzecz ?

Tzn Firma B jest wystawcą faktur dla firmy A i jest to sprzedaż w imieniu i na rzecz co jest bardzo często w branży turystycznej.

Czy dobrze myślę, że w tej sytuacji Firma A powinna nadać uprawnienia do wystawiania faktury dla firmy B (dla jej NIP) i firma B w swoim XMLu powinna w Podmiot1 wpisać dane Firmy A a siebie w Podmiot3 z Rolą o wartości 5?

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

Hejka
Czy ktoś testował wysyłanie korekty faktur na testowym po zmianie w schemie numeruKsef?

Bo u mnie po wyslaniu faktury korygującej z "nowym" numeremKsef faktury pisze ze faktura nie jest zgodna ze schemą.
Czy to oznacza ze nie dodali nowego schematu do testowej wersji?

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

Czy istnieje zaktualizowany dokument z różnicami FA1 FA2?
Ten jest z grudnia 22 https://www.gov.pl/attachment/35c63436-a652-429c-a749-090f3f41cb9a

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

Czy komuś w nowej wersji (baza testowa) udało się wygenerować PaymentIdentifier dla przelewu?
Ciągle dostaje błąd: Brak autoryzacji lub faktura o podanym identyfikatorze nie istnieje
A faktury (2 szt) na pewno są (bo wysłałem fakturę sam do siebie, więc istnieją i w zakupie i w sprzedaży).
Czy po prostu to jeszcze nie działa :-)

JN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 19
0

Hej, może ktoś mi podpowiedzieć, co pominąłem? Wysyłka (serwer test) pojedyncza FA(1) przechodzi bez problemu, a wysyłka pojedyncza FA(2) zwraca komunikat 21401 : Dokument nie jest zgodny ze schemą (xsd). Napomnę, że walidacja faktury z plikiem XSD z CRWDE wykazuje poprawność faktury.

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.