Krajowy system e-Faktur

1

11 kwietnia 2024 r. w godzinach od 13.00 do 17.00 na środowisku testowym planowana jest aktualizacja API Krajowego Systemu e-Faktur.

Aktualizacja API Krajowego Systemu e-Faktur do wersji 2.5.0 obejmuje:

  • dodanie weryfikacji podpisów elektronicznych zgodnie z rozporządzeniem eIDAS,
  • obsługę identyfikatorów zbiorczych,
  • obsługę procesu zgłaszania nadużycia faktur,
  • zmianę w zakresie obsługi faktury PEF - przyjęcie faktury, lista uprawnień,
  • zmianę procesu ukrywania oraz przywracania z ukrycia faktur na asynchroniczny.

Czyli pojawi się już scam... Szkoda, że robią pod to kompletnie osobną funkcję, która jest identyczna jak ukrycie - wystarczyło dorzucić jedno pole tam z powodem.
Natomiast czemu to ma być asynchroniczne, to nie mam pojęcia - totalna głupota wg mnie. Ileż może zając jeden UPDATE+INSERT, a ile im zajmie obsługa dodatkowych zapytań o status wykonania akcji? Oczywiście zgłoszone już wcześniej, ale pewnie oleją.

1

Hej, czy działa Wam generowanie paczek ZIP?

U mnie od co najmniej paru dni (może dłużej - długo tego nie testowałem) sam request działa (/online/Query/Invoice/Async/Init), ale nie dochodzi do skutku bo odpytywanie o status przygotowania paczek (/online/Query/Invoice/Async/Status/) ciągle zwraca: "Zakończenie etapu weryfikacji wyników podprocesu uwierzytelniania. Kod: 315. ".

0

Macie może problemy z connection reset przy wysyłaniu paczki w kilku częściach pod /batch/Upload/{ReferenceNumber}/{PartName} albo zawisaniu paczek batch na statusie 335?

0

Cześć
Przeglądam dokumentację API demo i interesuje mnię cześć dotycząca sprawdzania statusu sesji.

screenshot-20240409095211.png

Nie za bardzo rozumiem, co oznacza wersja 1 bądź 3.

Do tej pory mimo, że zakończyłem sesję (/terminate) nie dostawałem żadnych odpowiedzi w wersji pierwszej ani trzeciej.

0

Czy po wczorajszej aktualizacji testu macie możliwość autoryzacji w sesji interaktywnej poprzez Token? Zacząłem dostawać bad request mimo że działało jeszcze kilka godzin temu.

0

Nie działają metody "scam" otrzymuję błąd wewnętrzny -1000
Coś tu się nie spięło po tej aktualizacji do 2.5.0

0

NIK przeprowadził kontrole w MF i Aplikacje Krytyczne a to są wnioski: https://www.nik.gov.pl/aktualnosci/ministerstwo-finansow-aplikacje-krytyczne.html

streszczenie najważniejszych:

  1. Funkcjonowanie przyjętego modelu realizacji zadań publicznych Minister monitorował w sposób nierzetelny.
  2. Jednym ze skutków reorganizacji obszaru IT w Ministerstwie Finansów (MF) w 2021 r. był odpływ w latach 2021–2022 blisko 280 wyspecjalizowanych pracowników IT
  3. Zmiany wprowadzone w 2021 r. nie poprawiły jakości świadczonych przez CIRF usług wsparcia bezpośredniego dla KAS [...] nie rozwiązano w uzgodnionym terminie żadnego zgłoszenia (w ramach niektórych usług) w systemie Centralny Service Desk.
  4. Z powodu braku ewaluacji ustawy o spółce celowej (AK) Minister Finansów nie miał udokumentowanych analiz potwierdzających, że rozwiązano problemy i osiągnięto cele, dla których powołano spółkę Aplikacje Krytyczne.
  5. Z umowy między MF a Aplikacje Krytyczne w 2019 r. wykreślono obowiązek przedstawiania wyceny zleceń na oprogramowanie. Zaprzestano sporządzać kosztorysy realizacji zleceń przez Aplikacje Krytyczne, co było niezgodne z zasadami gospodarności,
  6. Ministerstwo nie kontrolowało zależności pomiędzy wysokością przyznawanej Spółce dotacji a wartością wytworzonego i przekazywanego nieodpłatnie Ministrowi oprogramowania.
  7. Aplikacje Krytyczne wykorzystały 16,3 mln zł z przyznanej i otrzymanej dotacji, natomiast wartość produktów wtedy wytworzonych i przekazanych nieodpłatnie Ministrowi była kilkukrotnie niższa od wartości dotacji podmiotowej na ten rok.
  8. W latach 2020–2022 Aplikacje Krytyczne wydatkowały środki publiczne w sposób niecelowy i nieoszczędny
  9. Oprogramowanie przekazywane nieodpłatnie przez Aplikacje Krytyczne ewidencjonowano w Ministerstwie w znacznej części z opóźnieniem (sięgającym nawet 699 dni), a więc niezgodnie z ustawą o podatku dochodowym od osób prawnych i z ustawą o rachunkowości – i dotyczyło to 79% oprogramowania o łącznej wartości inwentarzowej 60,3 mln zł.

W związku ze stwierdzonymi w toku kontroli nieprawidłowościami NIK skierowała do właściwego naczelnika urzędu skarbowego oraz do prokuratury zawiadomienie o podejrzeniu popełnienia przestępstwa skarbowego oraz przestępstwa polegającego na nierzetelnym prowadzeniu ksiąg rachunkowych Ministerstwa oraz CIRF.

0

Cześć,
Podczas wykonywania operacji batch/upload dostaję błąd z komunikatem "Nieprawidłowy rozmiar części pakietu". Czy ktoś może spotkał się z podobnym problemem?

1

Informacyjnie ze strony: https://www.podatki.gov.pl/wyjasnienia/konsultacje-projektu-specyfikacji-oprogramowania-interfejsowego-ksef-030424/

  • Ministerstwo Finansów przekazuje do konsultacji projekt specyfikacji oprogramowania interfejsowego zawierającej nowe funkcjonalności w zakresie obowiązkowego KSeF.
  • Zapraszamy do przesyłania uwag do projektu w terminie do 19 kwietnia br.
0

Cześć wszystkim. Tak na początku może napiszę, że około 8 msc pracuję w Java i trafiłam do projektu, gdzie mam dalej kontynuować pracę z ksef, a raczej zmienić pewne rzeczy.
Do brzegu.
Dotychczasowo program był tak przygotowany dla klienta, że uwierzytelnianie polegało na podaniu tokena autoryzacyjnego, który został wygenerowany wcześniej w KSEF (w celach testowych jak na razie).
Jak wiemy, tokeny mają zniknąć i zostaje nam w sumie jedynie:
a) pieczęć kwalifikowana albo
b) podpis kwalifkowany.
Nigdy wcześniej nie pracowałam z takimi podpisami czy pieczęciami, czy certyfikatami. Znalazłam tylko tutaj pewne informacje:
https://eurocert.pl/jak-zalogowac-i-uwierzytelnic-sie-w-ksef/

Generalnie dotychczas program był stworzony tak że wysyłał faktury za pomocą wysyłki interaktywnej X razy po prostu w odpowiedniej pętli (max 50 faktur dziennie, a normalnie jest to 20-30) aby wysłać do KSEF więc nie było robionej wysyłki wsadowej i tak też myślę to zostawić.

Ale do rzeczy. Patrząc po tych informacjach będę musiała wgłębić się w temat pieczęci kwalifikowanej ? Bo docelowo ta wysyłka faktur ma odbywać się najlepiej "automatycznie" w określonych godzinach nocnych, no i token do tego się super nadawał.
Mógłby mi ktoś mniej więcej podać źródła skąd najlepiej sobie o tym poczytać zeby to zrozumieć i który sposób najlepiej polecacie aby spełniał on wymagania ?
Czy istnieje gdzieś opcja aby testowo sobie wygenerować podpis i testowo postarać się powysyłać te faktury do ksef ?
Będę bardzo wdzięczna za pomoc !

0

Czy Waszym zdaniem jest możliwe lub czy kiedykolwiek się Wam może zdarzyło wygenerować poprawny względem XSD plik XML faktury, który później nie wejdzie przez API do KSeF?
(bo jeśli tak, to może spowodować sytuację patową w temacie QRCode vs OFFLINE, bo będzie inny link w QRCode a co innego docelowo w KSeF)

2

https://businessinsider.com.pl/prawo/podatki/rewolucja-w-fakturowaniu-wiemy-co-wykazal-audyt/ql4yrtq

Z nieoficjalnych informacji Business Insidera wynika, że audyt się zakończył, a przeprowadzone testy wydajności nie wypadły dobrze. Jak ustaliliśmy, wykazano, że dotychczasowy system KSeF nie byłby w stanie obsłużyć 100 milionów faktur dziennie.

Jeśli system do obsługi KSeF miałby być faktycznie budowany od nowa, to data 1 stycznia 2026 r. wejścia w życie obowiązkowego KSeF wydaje się rozsądna

0

Cześć

Co robie żle, próbuje pobrać faktury i za każdym razem dostaje zwrotkę: "exceptionDetailList":[{"exceptionCode":21180,"exceptionDescription":"Nieprawidłowe żądanie."}]

kod:

        $requestBody = array(
            'queryCriteria' => array(
                'subjectType' => 'subject2',
                'type' => 'detail'
            )
        );

        $oConnectData = json_decode($this->InitToken());

        $headers = array(
            'Content-Type: application/json',
            'Accept: application/json',
            'SessionToken: ' .$oConnectData->sessionToken->token,
        );

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->sAddress . '/api/online/Query/Invoice/Sync');
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestBody));

        $response = curl_exec($ch);

        echo '<pre>'. print_r($response, TRUE); die();
0

KSeF nie działa, bo cały e-US nie działa? ( https://www.podatki.gov.pl/komunikaty-techniczne/przerwa-w-dostepie-do-e-urzedu-skarbowego/ ) // godzinę później pojawia się komunikat dot. KSeF: https://www.gov.pl/web/kas/komunikat-nr-113-utrudnienia-w-dostepie-i-funkcjonowaniu-srodowisk-api-krajowego-systemu-e-faktur-i-aplikacji-podatnika-ksef
I mam dziwne przerzucie, że ma to związek z "awarią" w wysyłaniu faktur do testa, która ma związek z ostatnią aktualizacją. Pewnie zaczęli szukać błędów i pewnie ktoś się wziął za przekompilowanie jądra linuxa*... Jak nie pomoże to wyłączą całą domenę gov.pl ;)

0

Czy wam również nie działa wysyłka faktur do KSeF czy to tylko u mnie coś nie tak?
W zeszłym tygodniu wszystko działało, a dzisiaj jak próbuję wysłać fakturę to mam błąd "HTTP/1.1 400 Bad Request". Zalogować się mogę, wyszukać faktury również, ale wysłać już nie da rady. W kodzie nic nie zmieniałem a wyrzuca mi błąd w momencie idHTTP.Put('https://ksef-test.mf.gov.pl/api/online/Invoice/Send', TStringStream.Create(ARequestBody, TEncoding.UTF8), StrStream);

0

Mam problem na środowisku Testowe. Po wysyłce faktury do Ksef (online/Invoice/Send). Od razu odpytuje API o numer Ksef (online/Invoice/Status/{InvoiceElementReferenceNumber}). Na Demo jest to pobierane za pierwszym razem i nie ma problemu. Na Testowym po 8 próbach (w ciągu 8 sekund) dalej nie otrzymuję od API tę numer. Dołożyłem mechanizm późniejszego pobierania tego numeru za zapytaniem online/Invoice/Status/{InvoiceElementReferenceNumber}. Problem polega na tym, że to zapytanie działa tylko w ramach sesji, w której była wysłana faktura (sessionToken - powinien być aktualny). Czy istnieje możliwość pobrać numer ksef w inny sposób, kiedy bieżąca sesja już wygaśnie (na przykład następnego dnia)? Pytam, bo zakładam że może być problem z pobieraniem numeru ksef, który będzie trwał przez dłuższy czas (na przykład z powodu awarii Ksef) i w ramach sesji go nie da się pobrać.
Z góry dziękuje!

0

Cześć,
kojarzycie może temat pobierania wydruku dokumentów sesją interaktywną z KSeF ?
Czy jest opcja pobrania PDF / będzie w przyszłości ?

0

Jak to w sumie jest - na pliku historii doszło m.in., że ukrywanie jest asynchroniczne, że zgłaszanie scamu.... i że specyfikacja to jest 1.6. Ale w 1.6 nie ma o tym jeszcze słowa (było w 1.9, która była przekazana tylko do konsultacji). Co za bajzel :(

2

Ktoś wie, czy będzie dziś jakaś transmisja dot. wyników audytu?


Wnioski z briefingu

  • 350 stron z audytu powstało - będzie ujawniony tylko w tematach, które nie dotyczą infrastruktury krytycznej
  • wydajność katastrofalna
  • kilkaset stron o błędach: generalnie aktualnie nie ma backupu, możliwości rozwoju, zapewnienia bezpieczeństwa, bezawaryjności i wydajności, które by pozwalały pracować
  • konieczna jest nowa architektura systemu (będzie wszystko od zera)
  • 1.02.2026 - obligatoryjny KSeF dla podmiotów, w których wartość sprzedaży (obrotów?) w poprzednim roku podatkowym >200mln zł
  • 1.04.2026 - dla reszty
  • obiecują szybko zmienić ustawę, żeby przesunąć termin
  • zwolnią "specjalistów" odpowiedzialnych za KSeF
  • od 1.09.2024 będą szkolenia przez KAS, a od 1.01.2025 będą one zintensyfikowane; będzie też dedykowana linia telefoniczna dla KSeF
  • mają być zmiany od architektury, przez zmiany konstrukcji ("z monolitycznego na modułowy") po zmiany sprzętowe i sieciowe
  • aktualnie system kosztował 110 mln zł (w tym 80 mln to infrastruktura). Infrastruktura w części będzie wykorzystana, reszta pójdzie do kosza.
  • będą starać się jednak zachować zewnętrzny interfejs na tyle, na ile będzie to możliwe
  • będą starać się dostosowywać do systemu unijnego, ale na nowo zaprojektowany KSeF ma szansę funkcjonować do końca 2035 r.
  • wszystkiemu winne PiS i doprowadziłoby to do paraliżu funkcjonowania gospodarki ;)

https://www.gov.pl/web/finanse/podsumowanie-audytu-ksef


Podsumowując - fajnie było z Wami dyskutować. Myślę, że w tym momencie ten temat jest do zamknięcia i w momencie, gdy pojawi się nowy system KSeF, będzie trzeba otworzyć drugi temat. Do zobaczenia pewnie nie wcześniej, niż za rok!

0

Uwaga, jest projekt ustawy
https://legislacja.rcl.gov.pl/projekt/12384654/katalog/13056387#13056387
I teraz ciekawostka - nie ma w nim słowa o 1 kwietnia 2026! Co prawda, mnie to pasuje, że wszyscy wejdą obowiązkowo w KSeF od 1 lutego 2026, a nie w dwóch turach. Ale dziwne, że zapowiadają jedno, a dwa dni później jest coś innego.
Co jeszcze ciekawego?

  • półroczne okresy przejściowe dot. kas rejestrujących zachowane; to samo z wejściem płatności KSeF - pół roku po uruchomieniu (od 1 sierpnia)
  • usunięto limity wydaktów na KSeF za lata 2024 i 2025 xD Czyli jest nielimitowany? :D Jednocześnie wprowadzono limity dla lat 2034 i 2035 na poziomie stałym, jak w roku wcześniejszym (64,1 mln).
1

Witam Wszystkich.
Czy ktoś może mi udostępnić Xml-a - działającego, do uwierzytelnienia autoryzacji.
Samą autoryzację przechodzę.

Z pierwszej sesji https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge otrzymuje timestamp i challenge, które są potrzebne do wygenerowania Tokena sesyjnego, nie mylić z Tokenem autoryzacyjnym, wygenerowanym w systemie KSeF.
Wszystkie te dane(zmienne) podstawiamy do funkcji "TokenTmp=Base64(encrypt(public_key, bytes(token & "|" & challengeTime)))"
Teraz tak zebrane dane wstawiamy do Xml-a, którego wysyłamy do https://ksef-test.mf.gov.pl/Api/online/Session/InitToken
Po tej sesji otrzymamy już właściwy Token sesyjny potrzebny do kolejnych sesji.

Jest API , ale jest do bani.
Więcej się dowiedziałem z tego forum.
W necie są różne te Xml-e i żaden mi nie działa.
Więc prośba do Was o 100% działającego.
Wtedy będę mógł testować ww. funkcję, bo z nią też są jaja, ale to już temat na inny temat. 😀
Jaja bo próbuje zrobić to w VBA.

0

Walczę dalej.
Cel - uzyskanie Tokena sesyjnego.

Funkcją w JavaScript generuje token(tymczasowy)

const CryptoJS = require("crypto-js");
const NodeRSA = require('node-rsa');

function encrypt(token, timestamp) {
    const e = 65537;
    const n = '23406442688142992831583759844756089133712844262268877557835948537922690131301917528010472072980030525243164470704153404706424073919594735631248793604990149775500839426627798421278024993358446037655350061463757500035940998380555904273595946307684093782369149356087903235522664351435055995896215926900834823274455240788124709945700300545915276090426078078411011846599277153583946003396302217817245249811336711552038275781604699852026576581228046084296276086185170885235268125033156936166764556520982537544722946490123310277292524709687907821731708318317794956326577863648319840338909808057410474707559952504063561704659';

    // Łączenie tokena i znacznika czasu w jedną wiadomość tekstową
    const text = token + '|' + timestamp;
    console.log('Wiadomość do zaszyfrowania:', text);

    // Tworzenie klucza RSA
    const key = new NodeRSA();
    key.importKey({
        n: n,
        e: e,
    }, 'components-public');

    // Szyfrowanie tekstu przy użyciu klucza RSA
    const encryptedText = key.encrypt(text, 'base64');
    console.log('Zaszyfrowana wiadomość (base64):', encryptedText);
    
    return encryptedText;
}

// Testowanie funkcji
encrypt("AFF8F033779118507E44BEB9E27ABCD3F1615B137FB877B7B65EA7A9EC7879F7", "1714814411019");

tworzę xml-a i wrzucam do zmiennej Param

<?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>20240504-CR-CD0898508B-B15AA167D5-4F</Challenge>
		<Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
			<ns2:Identifier>1111111111</ns2:Identifier>
		</Identifier>
		<DocumentType>
			<ns2:Service>KSeF</ns2:Service>
			<ns2:FormCode>
				<ns2:SystemCode>FA (2)</ns2:SystemCode>
				<ns2:SchemaVersion>1-0E</ns2:SchemaVersion>
				<ns2:TargetNamespace>http://crd.gov.pl/wzor/2023/06/29/12648/</ns2:TargetNamespace>
				<ns2:Value>FA</ns2:Value>
			</ns2:FormCode>
		</DocumentType>
		<Token>ofnSdAGct1GtlvQb18sHj6cxWWD4eBc2sg0vRqwCcBtOyOjQeol8xdBMNRPNh2Xq/ukFgnv56W1q7odihZEs1d3660lzbqCdw1EE8eD3il1MdnUTilj8WpJD1r8Bm7lo7ik/YO9K2pZ304jGHKExacr/uFJ6TSCn5Tk5fJec1/AbX5pE4QuZCAbNDp7kPRC6j6NMnU+XqwPQ7togeV1Lse8GdDO2r6BRS/pZSGDV7TbUAhJoi52bOaDAvlH7hd6XIAm56RRNpIMXym+DA6AkXg0y9A1WIlOefMXnvTFeEVpP1CI3JpmE7tLYl9oT2LyKsyqQF/i7czAU8yTOeC3/2w==</Token>
	</ns3:Context>
</ns3:InitSessionTokenRequest>

I puszczam go w takiej postaci nie kodując już niczym - czysty string - xml.

Nawiązanie drugiej sesji:

        .Open "POST", "https://ksef-test.mf.gov.pl/Api/online/Session/InitToken", False
        .setRequestHeader "Content-Type", "application/octet-stream"
        .setRequestHeader "Accept", "application/json"
        .send (Param)

i w odpowiedzi dostaje:

"Status : **405**"
"responseText : **HTTP method POST is not supported by this URL**"

Nie mam pojęcia czemu method POST is not supported, to jakaś bzdura.
Co robię nie tak?
Pomóżcie proszę.

0

Hello, I have a question. I want to create correction invoice and I need to fill these two tags: NrKSeF and NrKSeFFaKorygowanej. It looks like I would have to get the NrKSeFFaKorygowanej value from API. I think I would have to use this connection api/online/Query/Invoice/Sync. Is there a way of how to filtre the data that the api returns based on original invoice number that I have so I can connect the correction and the original invoice together? And is this the correct solution? Thank you

1

16 maja 2024 r. w godzinach od 09:00 do 19:00 na środowisku testowym planowana jest aktualizacja API Krajowego Systemu e-Faktur.

Aktualizacja API Krajowego Systemu e-Faktur do wersji 2.6.1 obejmuje:

- dodanie możliwości generowania UPO w wersji v4 (UPO na części), 
- dodanie walidacji sprawdzającej czy przesłano paczki faktur dla procesu wysyłki wsadowej, 
- dodanie informacji o identyfkatorze powiązanym NIP/PESEL w response usługi InitSession i InitToken,
- dodanie do listy wyświetlanych Tokenów w Query/Credential/Sync tokenów dla identyfikatora powiązanego,
- rozszerzenie response dla Query/Credential/Sync o informacje o identyfikatorze powiązanym - associatedIdentifier,
- rozszerzenie listy posiadanych uprawnień o uprawnienia pochodzące z identyfikatora powiązanego NIP/PESEL,
- obsługę uprawnień dla biur rachunkowych.

https://www.podatki.gov.pl/komunikaty-techniczne/aktualizacja-api-krajowego-systemu-e-faktur-na-srodowisku-testowym-14052024/

0

Zmieniło się coś w kwestii limitu żądań ostatnio?

0

Cześć
Już sie pogubiłem co robię nie tak przy:
CURL -X 'POST' 'https://ksef-test.mf.gov.pl/online/Session/AuthorisationChallenge'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d '{"contextIdentifierType": "onip", "identifier": "xxxxxxxxxxxx"}'

bo dostaję odpowiedź <html><head><title>Error</title></head><body>HTTP method POST is not supported by this URL</body></html>% i zgłupiałem 🙁

0

Chyba coś mi umknęło.. kiedy oni zmienili ten identyfikator płatności, że nie dostaje się go od razu tylko, kolejnym requestem trzeba pytać... ?

0

Panowie, a i Panie :-) , czy ktoś może mi udostępnić UPO xml, ale takie po wysyłce kilku faktur ?
Modzę w szablonie xsl, ale mam jedynie UPO po wysyłce jednej faktury, a do testów potrzebował bym takie potwierdzenie z kilku faktur.

0

Cześć
mam problem z /Session/InitSigned, mój podpisany dokument wyglada tak jak poniżej, generuje swoj certyfikat przez openssl : openssl req -new -keyout mykey.key -subj "/CN=Jan Kowalski/SN=Kowalski/GN=Jan/O=Testowa firma/C=PL/L=Mazowieckie/serialNumber=NIP-1111111111/description=Jan Kowalski NIP-1111111111" -out mycsr.csr . Mam cały czas bład 3100 Nieprawidłowe wykonanie.(400) Wysyłam na https://ksef-test.mf.gov.pl/api/online/Session/InitSigned dane z nagłówkiem application/octet-stream. Mam jeszcze pytanie, do wygenerowania podpisu tokenem, potrzeba jakiegos tokenu. Wydaje mi sie ze ten token wyciagamy po tym jak podpiszemy jakims się jakims sposobem albo pieczęcią albo podpisem. I potem na podstawie tego i daty generujemy token który gdzies tam wstawiamy. Jak jestem w błędzie, bardzo prosze o poprawe. ☺️

<?xml version="1.0" encoding="utf-8"?>
<ns3:InitSessionSignedRequest
	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>20240620-CR-AD1C2068A2-EBF58D68F4-04</Challenge>
		<Identifier
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
			<ns2:Identifier>1111111111</ns2:Identifier>
		</Identifier>
		<DocumentType>
			<ns2:Service>KSeF</ns2:Service>
			<ns2:FormCode>
				<ns2:SystemCode>FA (2)</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>
		<Encryption>
			<ns2:EncryptionKey>
				<ns2:Encoding>Base64</ns2:Encoding>
				<ns2:Algorithm>AES</ns2:Algorithm>
				<ns2:Size>256</ns2:Size>
				<ns2:Value>H2+YWam2q/6GJafnC+qbkWDeNvZb8brpUkXw5cstNP5GnK+DGyIIwgCS7kXJXa2X8BOh9OWJXry5l7wZMq+WCXCif1+pQ+5+FbJlm16A3PB5BNy2S6cBubS2Q+kdk5FJs7pFMt6U+6jEPKMrmxi0D3nFyYK6cKmVZFQHa/4faj7qa70KEpyL49WJxdHGbQfAoe05z5OKyiZZftz+oGJVystA+fCLufVhiZ7gIuZLov8aamO1ghum1vYsG7nqJ1OrmUVrpgqv5jCqdMo+4FqG9XMKntgGsmydskjPiSxj1mF4+qNAP6neINrDrG+M1lCg/VBhrdnTAGnyfsODfohbiw==</ns2:Value>
			</ns2:EncryptionKey>
			<ns2:EncryptionInitializationVector>
				<ns2:Encoding>Base64</ns2:Encoding>
				<ns2:Bytes>16</ns2:Bytes>
				<ns2:Value>5+DjwCfRIQPaX1Rj3jMAWw==</ns2:Value>
			</ns2:EncryptionInitializationVector>
			<ns2:EncryptionAlgorithmKey>
				<ns2:Algorithm>RSA</ns2:Algorithm>
				<ns2:Mode>ECB</ns2:Mode>
				<ns2:Padding>PKCS#1</ns2:Padding>
			</ns2:EncryptionAlgorithmKey>
			<ns2:EncryptionAlgorithmData>
				<ns2:Algorithm>AES</ns2:Algorithm>
				<ns2:Mode>CBC</ns2:Mode>
				<ns2:Padding>PKCS#7</ns2:Padding>
			</ns2:EncryptionAlgorithmData>
		</Encryption>
		<Type>SerialNumber</Type>
	</ns3:Context>
	<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>stkALTT4XHoP7/sbEj2Aue4yqVH3gRRcpMFkPeHfZF8=</DigestValue>
			</Reference>
			<Reference URI="#ObjectRef1" Type="http://uri.etsi.org/01903#SignedProperties">
				<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
				<DigestValue>tUBvTUVSEbH35Db71OX95i27UpSjAaOIy2s1o+NV8mM=</DigestValue>
			</Reference>
		</SignedInfo>
		<SignatureValue>N9adJrDZ6q10F6ssKmVipM9HhSII9/+olTNGP5HhpEika7YP1V67KDVNDVJwAiIpUBZHIgKXz1ExpHT6YusACviqhSIVgW4tWv8WWbtWAKfYhrKZv6eJEdC7SEGq8Bm8kajxP1dJb3lAZo98A5uph6kAIAnt2UKSZrQjIOuKSeIkE638rjWoiJTdUm+SlDNZltbhDG2swMfXfr2d7FyFtxCheLfoOKHn6zj3bifBgFLZZo7NuEqgR4zFRBUNEAZ3ZUVUsbk9KPXL57O0jiCnJ212BNNy6bTDdW8vWGRZ8bjcHJMUxEpWSsTi679YiLEmSp0SCC1LBpCGoOoXCYiUng==</SignatureValue>
		<KeyInfo>
			<X509Data>
				<X509Certificate>MIIEFTCCAv2gAwIBAgIUCdA6Vx8NYWsyI/1ea26jDjIXdxowDQYJKoZIhvcNAQELBQAwgbIxFTATBgNVBAMMDEphbiBLb3dhbHNraTERMA8GA1UEBAwIS293YWxza2kxDDAKBgNVBCoMA0phbjEWMBQGA1UECgwNVGVzdG93YSBmaXJtYTELMAkGA1UEBhMCUEwxFDASBgNVBAcMC01hem93aWVja2llMRcwFQYDVQQFEw5OSVAtMTExMTExMTExMTEkMCIGA1UEDQwbSmFuIEtvd2Fsc2tpIE5JUC0xMTExMTExMTExMB4XDTI0MDYyMDEwMzgwMFoXDTI1MDYyMDEwMzgwMFowgbIxFTATBgNVBAMMDEphbiBLb3dhbHNraTERMA8GA1UEBAwIS293YWxza2kxDDAKBgNVBCoMA0phbjEWMBQGA1UECgwNVGVzdG93YSBmaXJtYTELMAkGA1UEBhMCUEwxFDASBgNVBAcMC01hem93aWVja2llMRcwFQYDVQQFEw5OSVAtMTExMTExMTExMTEkMCIGA1UEDQwbSmFuIEtvd2Fsc2tpIE5JUC0xMTExMTExMTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1TSFMlH9Cp7EV/QqaMVetZjhML7c5SSyrX5d264eVIJ4LHV1bZcZiUio7pg9nrj0Wve4NMZjGHM4i22H3MEF0uHMG3UkUdHtcnVBOfgzr89Ha88JROs6GrzRe2uyXvOhFfi1itRt58PfWHk0Y5YLLnDpgeY+CeahhWEYGhrnO6bC3Cklbna8F7C9dGP5Mmf+Ppu4mhgr7ajSjt+Rt1N/qhERHDneBbo7nyt/IandeWeVuJW44011zrDLRGeA0YbW6muDwQB/BMsDpOoxICYruJxBUGfLw3/RKROGsG4mYI1pSiH2eiZlqaYtL+treygpiBrb2iJIMBmle0UDYxNC2QIDAQABoyEwHzAdBgNVHQ4EFgQU8dyTDCEXASVu2YoSudgZSJaJOd0wDQYJKoZIhvcNAQELBQADggEBAB8NoVl1J03wdPUT+Yih9y/0fmzryUnvGoKxpn4bI8vE3OZc4wS0X1eqhoppEY9Of7slKkhC8GQ7E0zLLr1Vj8Q6ORw+Joxsr8ueAbqXx0yK2jD0mCl1dZwmuGfiEkiZxs/cBBTlFcfrw6gwFFmItpB2RegHYIICjoMUB/jUPpNga7shNbrva8FGux7+8LWbpvZXP5eUY7VetvT3v0NAbM03PjTZhd+p3pr7BIyKM6vnrLE4I/jEAQw+1u11XBfmGyE0ysnTX0YS+ZYQTRWNsx04hiPiBzF7MEdEY5QPhLNzqIjU571oz/x8EiafTkGudEBmZ0RWyjzheWZSa3eN108=</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>2024-06-20T13:06:31Z</xades:SigningTime>
						<xades:SigningCertificate>
							<xades:Cert>
								<xades:CertDigest>
									<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
									<DigestValue>PhknAuslxd07JuM8fx4lyLOszdQ=</DigestValue>
								</xades:CertDigest>
								<xades:IssuerSerial>
									<X509IssuerName>Description=Jan Kowalski NIP-1111111111, SERIALNUMBER=NIP-1111111111, L=Mazowieckie, C=PL, O=Testowa firma, G=Jan, SN=Kowalski, CN=Jan Kowalski</X509IssuerName>
									<X509SerialNumber>56024554097134433162645597253368016771961288474</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>
</ns3:InitSessionSignedRequest>
0

Mam problem z wystawieniem faktury (online/Invoice/Send). Wygenerowany XML (z mojej aplikacji) przechodzi do ksef prawidłowo za pomocą udostępnionej apki od Gbb Software
screenshot-20240624092803.png
Natomiast w przypadku mojej apki dostaje komunikat "Nieczytelna treść". Porównywałem body jakie jest wysyłane z jednego i drugiego i wygląda to identycznie. Jedyną różnicą jest to, że ja używam do requestów RestSharpa (i tak bym chciał aby pozostało). Gdzie może leżeć błąd?
Metoda dotycząca wysyłki:
screenshot-20240624093313.png
Model body:
screenshot-20240624093404.png
Przykładowa zawartość:
screenshot-20240624094606.png
Próbowałem to robić mając zmienną Type jak i również jej nie mając efekt ten sam. Wyciągałem sobie również body z udostępnionej apki (za pomocą JsonConvert.SerializeObject z newtosofta) i wyglądało identycznie. Gdzie może leżeć problem?

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.