Krajowy system e-Faktur

0

Generowanie PDF faktury i UPO https://github.com/ksef4dev/ksef-fop, zależność dostępna w maven central: io.alapierre.ksef:ksef-fop:1.0.3
Chętni do wsparcie i rozwoju projektu są bardzo mile widziani.

0

Mam pytanie teoretyczne, bo nie znam się na merytorycznej stronie fakturowania. Zauważyłem, że przez API mogę wystawić fakturę sam dla siebie (ten sam NIP jako wystawca i odbiorca), czy to jest dopuszczalne w praktyce i będzie występować?

0

(34 strony o ksef? To takie ciekawe, tak dużo płacą za ksef czy o co tu chodzi?)

0

Witam może ktoś znajdzie się tutaj kto zrobił łączenie się z tym Ksefem poprzed Delphi xe, utknąłem niesamowicie na InitToken, nie ważne co zrobię ciągle mam bad request 400, xml już z wypełnionymi danymi czytam z pliku, i w formie streama bajtów wysyłam go do api. Nic nie zwraca poza tym bad request i w tym samym momencie program się rozsypuje:

SSLIOHandler.SSLOptions.Method := sslvSSLv23;
SSLIOHandler.SSLOptions.Mode := sslmUnassigned;
HTTPClient.IOHandler := SSLIOHandler;

Headers.Add('Content-Type: application/octet-stream');
Headers.Add('Accept: application/json');
HTTPClient.Request.CustomHeaders.AddStrings(Headers);
HTTPClient.Request.ContentType := 'application/octet-stream';
EndpointURL := 'https://ksef-test.mf.gov.pl/api/online/Session/InitToken';

FileStream := TFileStream.Create('testy5.xml', fmOpenRead);
SetLength(Bytes, FileStream.Size);
FileStream.Read(Bytes[0], FileStream.Size);
XMLStream2 := TBytesStream.Create(Bytes);
ResponseContent := HTTPClient.POST(EndpointURL, XMLStream2);

jeszcze plik xml wygląda tak :

<?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>20231212-CR-FEF3FB48F1-72ABF09F83-C1</Challenge>
    <Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
      <ns2:Identifier>nip ten sam co w challenge</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>yziCrvllyGwDoEBof0wd60S2CqMxBExbLT9VVJGE3OA30e2LYCig06P3g4Q0ArRnF4BOPi7cl7009i3Ul8AsIkgiGDPzqDNR99sRcLyf/vklN8X/fxk14Uvj+YELip3AQxTVsXuJU59ljpIm6pdZOj4VFhhRd1vsYC18JU8UqV8oWge3uQX+vn75ZJZOG6RXf5o4h3sq0pS00csAp/ckpXQ0WxRw+j1mkX2tATLXAs1/iglHRpiIPkSQ9UW4VOtf8srqkL3SRfuJ+vNQpOfRS1fIjo6xDjW87NpiPkm0Y107rTtEThe5oeqjM59LNqG0HJ0/bPUxju3vkwGiE+oCow==</Token>
  </ns3:Context>
</ns3:InitSessionTokenRequest>

1

Aktualizacja API Krajowego Systemu e-Faktur i Aplikacji Podatnika KSeF na środowisku testowym

14 grudnia 2023 r. w godzinach od 10.00 do 17.00 na środowisku testowym planowana jest aktualizacja API
Aktualizacja API Krajowego Systemu e-Faktur do wersji 2.2.0 obejmuje:

  1. dodanie usługi do weryfikacji i pobrania faktury po numerze KSeF i skrócie dokumentu (linki weryfikacyjne),
  2. poprawę walidacji enumów podczas parsowania JSON (wielkość znaków - dopuszczalne enumy zgodne z kontraktem),
  3. aktualizację specyfikacji interfejsów.
0

Witam.
Chciałbym w pobrać faktury z KSeF. Udało się komuś to zrobić ?

0

Posiada ktoś fakturę korygującą fakturę zaliczkową która przechodzi ? Ksef-test tworzy ale wgrywając ją do Ksef-testy pokazuje że są błędy

0

Hej mam pytanie

<?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>TUTAJ PRZEKAZUJE CHALLENGE z /online/Session/AuthorisationChallenge i to już mam</Challenge>
		<Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
			<ns2:Identifier>TUTAJ NIP</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>
		<Encryption>
			<ns2:EncryptionKey>
				<ns2:Encoding>Base64</ns2:Encoding>
				<ns2:Algorithm>AES</ns2:Algorithm>
				<ns2:Size>256</ns2:Size>				<ns2:Value>Kmrs/g9ZjI5lKDoMukGDMDULgvx0BkZ6qHEazLLo+LmzK4FNhNp4owcPioydkuiJE02norz5P5hjFO+SMO9kgtPji0Qjx57B+o6tKMUlL6EA3nn40+JNkZuvW+hUnEt7/kxZCcjxEXTuLpQuANwovUxdej041nKRY+sthBEDb3gN4pzJ+HfACysB8H5dpvZj1MkBe7hydLCJlNkEYHYA5dO/3FnW/5fh12Be3ij7Z410+3XZT5AiteEwGCJCPdC0epM3yJgi8uZt2vqn83fgYqSqmMtXLk0ZVjTT4Z1wd2cZ3DF7tlIfoYeB2DKQiwbXAZr/W3jVzYliXBykZLC/Sg==</ns2:Value>
			</ns2:EncryptionKey>
			<ns2:EncryptionInitializationVector>
				<ns2:Encoding>Base64</ns2:Encoding>
				<ns2:Bytes>16</ns2:Bytes>
				<ns2:Value>H9KQyy/SHurlswE4pxSIsg==</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>
<Token>uH6dmA9lr7/5izGMOTXVzIAe1awXZYZ61zLCEaImSLP+BftDtziV5I+4EaKvWZ+IUCkXHP8FEGDsLHfefUVLS5vbZ8r0W5UxiSqqOAKxvkE7pCfh31+AmKZxZa0TlXYK5EYa4RkJhm7HTgKe4WGZ/Y4G2PdCzdImtvZL49yqQQ3bLqeGeVJ9rMzkuxCbtKGbdopN1/V+64fvLClIuolWI+/z0FlxDVE9a0f8EFKPPpzGowVwJcn5PHBkvVh45vT+pyNbDSvEsyL/udRBXCioWbgRaZReRJNIg6YWZLTSHyi8BK4ofQVuhdcPwHjkETmEQ0aktj+uyqmxqvHbFTA93Q==</Token>
	</ns3:Context>
</ns3:InitSessionTokenRequest>

Natomiast nie ogarniam TOKEN'a (to jest ten TOKEN API ? ) oraz sekcji Encryption (mam sobie klucz wygenerować lokalnie i co z nim zrobić?) podpowie ktoś coś?

0

Używał ktoś kiedyś Postmana ? Ciągle dostaje odpowiedź "Pusta treść żądania." Ustawiłem Headers na octet-stream plik xml przerobiłem konwerterem na format binarny ale wciąż sie pokazuje tylko :"Pusta treść żądania."

0

Czy ktoś jest mi w stanie w prosty sposób wyjaśnić co ma zawierać kod QR, który ma być obowiązkowo zamieszczany na każdej wizualizacji faktury przesłanej do KSEF?

0

A jak wygląda kwestia używania NIPów EU? Bo chciałem tak z marszu zalogować się nipem PLxxxxxxxxxx, tym samym co używam do testów, ale z prefixem i zonk. Dostałem kopa w zad od API już na etapie logowania. Są jakieś wytyczne?

0

Walczę aby wysłać FV na demo.
Mój json wygląda tak:

{
  "InvoiceHash": {
    "HashSHA": {
      "Algorithm": "SHA-256",
      "Encoding": "Base64",
      "Value": "QohnFbnJGdX4pyHgfAL4j6/ipwrm8iAeySAh48yPo+Y="
    },
    "FileSize": 3342
  },
  "InvoicePayload": {
    "Type": "plain",
    "InvoiceBody": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxGYWt0dXJhIHhtbG5zOmV0ZD0iaHR0cDovL2NyZC5nb3YucGwveG1sL3NjaGVtYXR5L2R6aWVkemlub3dlL21mLzIwMjIvMDEvMDUvZUQvRGVmaW5pY2plVHlweS8iIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiDQp4bWxucz0iaHR0cDovL2NyZC5nb3YucGwvd3pvci8yMDIzLzA2LzI5LzEyNjQ4LyI+DQoJPE5hZ2xvd2VrPg0KCQk8S29kRm9ybXVsYXJ6YSBrb2RTeXN0ZW1vd3k9IkZBICgyKSIgd2Vyc2phU2NoZW15PSIxLTBFIj5GQTwvS29kRm9ybXVsYXJ6YT4NCgkJPFdhcmlhbnRGb3JtdWxhcnphPjI8L1dhcmlhbnRGb3JtdWxhcnphPg0KCQk8RGF0YVd5dHdvcnplbmlhRmE+MjAyMi0wMS0wMVQwMDowMDowMFo8L0RhdGFXeXR3b3J6ZW5pYUZhPg0KCQk8U3lzdGVtSW5mbz5TYW1wbG9GYWt0dXI8L1N5c3RlbUluZm8+DQoJPC9OYWdsb3dlaz4NCgk8UG9kbWlvdDE+DQoJCTxEYW5lSWRlbnR5ZmlrYWN5am5lPg0KCQkJPE5JUD42NzUxMzM4ODcyPC9OSVA+DQoJCQk8TmF6d2E+UmFmYcWCIEt1Ym93aWN6PC9OYXp3YT4NCgkJPC9EYW5lSWRlbnR5ZmlrYWN5am5lPg0KCQk8QWRyZXM+DQoJCQk8S29kS3JhanU+UEw8L0tvZEtyYWp1Pg0KCQkJPEFkcmVzTDE+dWwuIEt3aWF0b3dhIDEgbS4gMjwvQWRyZXNMMT4NCgkJCTxBZHJlc0wyPjAwLTAwMSBXYXJzemF3YTwvQWRyZXNMMj4NCgkJPC9BZHJlcz4NCgkJPERhbmVLb250YWt0b3dlPg0KCQkJPEVtYWlsPmFiY0BhYmMucGw8L0VtYWlsPg0KCQkJPFRlbGVmb24+NjY3NDQ0NTU1PC9UZWxlZm9uPg0KCQk8L0RhbmVLb250YWt0b3dlPg0KCTwvUG9kbWlvdDE+DQoJPFBvZG1pb3QyPg0KCQk8RGFuZUlkZW50eWZpa2FjeWpuZT4NCgkJCTxOSVA+NjU5MTUxMTk0MTwvTklQPg0KCQkJPE5hendhPlNlcGllbGFrPC9OYXp3YT4NCgkJPC9EYW5lSWRlbnR5ZmlrYWN5am5lPg0KCQk8QWRyZXM+DQoJCQk8S29kS3JhanU+UEw8L0tvZEtyYWp1Pg0KCQkJPEFkcmVzTDE+dWwuIFBvbG5hIDE8L0FkcmVzTDE+DQoJCQk8QWRyZXNMMj4wMC0wMDEgV2Fyc3phd2E8L0FkcmVzTDI+DQoJCTwvQWRyZXM+DQoJCTxEYW5lS29udGFrdG93ZT4NCgkJCTxFbWFpbD5qYW5Aa293YWxza2kucGw8L0VtYWlsPg0KCQkJPFRlbGVmb24+NTU1Nzc3OTk5PC9UZWxlZm9uPg0KCQk8L0RhbmVLb250YWt0b3dlPg0KCQk8TnJLbGllbnRhPmZkZmQ3NzgzNDM8L05yS2xpZW50YT4NCgk8L1BvZG1pb3QyPg0KCTxGYT4NCgkJPEtvZFdhbHV0eT5QTE48L0tvZFdhbHV0eT4NCgkJPFBfMT4yMDIyLTAyLTE1PC9QXzE+DQoJCTxQXzFNPldhcnN6YXdhPC9QXzFNPg0KCQk8UF8yPkZWMjAyMi8wMi8xNTA8L1BfMj4NCgkJPFBfNj4yMDIyLTAxLTI3PC9QXzY+DQoJCTxQXzEzXzE+MTY2Ni42NjwvUF8xM18xPg0KCQk8UF8xNF8xPjM4My4zMzwvUF8xNF8xPg0KCQk8UF8xM18zPjAuOTU8L1BfMTNfMz4NCgkJPFBfMTRfMz4wLjA1PC9QXzE0XzM+DQoJCTxQXzE1PjIwNTE8L1BfMTU+DQoJCTxBZG5vdGFjamU+DQoJCQk8UF8xNj4yPC9QXzE2Pg0KCQkJPFBfMTc+MjwvUF8xNz4NCgkJCTxQXzE4PjI8L1BfMTg+DQoJCQk8UF8xOEE+MjwvUF8xOEE+DQoJCQk8WndvbG5pZW5pZT4NCgkJCQk8UF8xOU4+MTwvUF8xOU4+DQoJCQk8L1p3b2xuaWVuaWU+DQoJCQk8Tm93ZVNyb2RraVRyYW5zcG9ydHU+DQoJCQkJPFBfMjJOPjE8L1BfMjJOPg0KCQkJPC9Ob3dlU3JvZGtpVHJhbnNwb3J0dT4NCgkJCTxQXzIzPjI8L1BfMjM+DQoJCQk8UE1hcnp5Pg0KCQkJCTxQX1BNYXJ6eU4+MTwvUF9QTWFyenlOPg0KCQkJPC9QTWFyenk+DQoJCTwvQWRub3RhY2plPg0KCQk8Um9kemFqRmFrdHVyeT5WQVQ8L1JvZHphakZha3R1cnk+DQoJCTxGUD4xPC9GUD4NCgkJPERvZGF0a293eU9waXM+DQoJCQk8S2x1Y3o+cHJlZmVyb3dhbmUgZ29kemlueSBkb3dvenU8L0tsdWN6Pg0KCQkJPFdhcnRvc2M+ZG5pIHJvYm9jemUgMTc6MDAgLSAyMDowMDwvV2FydG9zYz4NCgkJPC9Eb2RhdGtvd3lPcGlzPg0KCQk8RmFXaWVyc3o+DQoJCQk8TnJXaWVyc3phRmE+MTwvTnJXaWVyc3phRmE+DQoJCQk8VVVfSUQ+YWFhYTExMTEzMzMzOTk5MDwvVVVfSUQ+DQoJCQk8UF83PmxvZMOzd2thIFppbW5vdGVjaCBtazE8L1BfNz4NCgkJCTxQXzhBPnN6dC48L1BfOEE+DQoJCQk8UF84Qj4xPC9QXzhCPg0KCQkJPFBfOUE+MTYyNi4wMTwvUF85QT4NCgkJCTxQXzExPjE2MjYuMDE8L1BfMTE+DQoJCQk8UF8xMj4yMzwvUF8xMj4NCgkJPC9GYVdpZXJzej4NCgkJPEZhV2llcnN6Pg0KCQkJPE5yV2llcnN6YUZhPjI8L05yV2llcnN6YUZhPg0KCQkJPFVVX0lEPmFhYWExMTExMzMzMzk5OTE8L1VVX0lEPg0KCQkJPFBfNz53bmllc2llbmllIHNwcnrEmXR1PC9QXzc+DQoJCQk8UF84QT5zenQuPC9QXzhBPg0KCQkJPFBfOEI+MTwvUF84Qj4NCgkJCTxQXzlBPjQwLjY1PC9QXzlBPg0KCQkJPFBfMTE+NDAuNjU8L1BfMTE+DQoJCQk8UF8xMj4yMzwvUF8xMj4NCgkJPC9GYVdpZXJzej4NCgkJPEZhV2llcnN6Pg0KCQkJPE5yV2llcnN6YUZhPjM8L05yV2llcnN6YUZhPg0KCQkJPFVVX0lEPmFhYWExMTExMzMzMzk5OTI8L1VVX0lEPg0KCQkJPFBfNz5wcm9tb2NqYSBsb2TDs3drYSBwZcWCbmEgbWxla2E8L1BfNz4NCgkJCTxQXzhBPnN6dC48L1BfOEE+DQoJCQk8UF84Qj4xPC9QXzhCPg0KCQkJPFBfOUE+MC45NTwvUF85QT4NCgkJCTxQXzExPjAuOTU8L1BfMTE+DQoJCQk8UF8xMj41PC9QXzEyPg0KCQk8L0ZhV2llcnN6Pg0KCQk8UGxhdG5vc2M+DQoJCQk8WmFwbGFjb25vPjE8L1phcGxhY29ubz4NCgkJCTxEYXRhWmFwbGF0eT4yMDIyLTAxLTI3PC9EYXRhWmFwbGF0eT4NCgkJCTxGb3JtYVBsYXRub3NjaT42PC9Gb3JtYVBsYXRub3NjaT4NCgkJPC9QbGF0bm9zYz4NCgkJPFdhcnVua2lUcmFuc2FrY2ppPg0KCQkJPFphbW93aWVuaWE+DQoJCQkJPERhdGFaYW1vd2llbmlhPjIwMjItMDEtMjY8L0RhdGFaYW1vd2llbmlhPg0KCQkJCTxOclphbW93aWVuaWE+NDM1NDM0MzwvTnJaYW1vd2llbmlhPg0KCQkJPC9aYW1vd2llbmlhPg0KCQk8L1dhcnVua2lUcmFuc2FrY2ppPg0KCTwvRmE+DQoJPFN0b3BrYT4NCgkJPEluZm9ybWFjamU+DQoJCQk8U3RvcGthRmFrdHVyeT5LYXBpYcWCIHpha8WCYWRvd3kgNSAwMDAgMDAwPC9TdG9wa2FGYWt0dXJ5Pg0KCQk8L0luZm9ybWFjamU+DQoJCTxSZWplc3RyeT4NCgkJCTxLUlM+MDAwMDA5OTk5OTwvS1JTPg0KCQkJPFJFR09OPjk5OTk5OTk5OTwvUkVHT04+DQoJCQk8QkRPPjAwMDA5OTk5OTwvQkRPPg0KCQk8L1JlamVzdHJ5Pg0KCTwvU3RvcGthPg0KPC9GYWt0dXJhPg0K"
  }
}

Oczywiście mam podpięty token sesji pod to wywołanie "PUT" - sesja utworzona bez wskazanego szyfrowania treści

XML opisujący FV jest OK. Przechodzi przez inną aplikację.
Porównywałem invoice body z widocznym w innej aplikacji i jest takie samo.
To samo z Hashem - też powinien być OK.

natomiast cały czas dostaję zwrotkę z KSEF błędem:

"exceptionDetailList": [
    {
        "exceptionCode": 21001,
        "exceptionDescription": "Nieczytelna treść."
    }
]

Niestety nie mogę tu załączyć xml-a FV.
Można go pobrać tu jak by ktoś miał czas sprawdzić czy na pewno mam dobrze hash wyliczony i body.
https://devdt.pl/prv/fv.txt
Może ktoś ma pomysł co jeszcze mogę sprawdzić bo utknąłem.
Z góry dzięki.

0

Invoice/Send nie działa z POSTMANA -- WHY ??
Na oko prosty temat ale utknąłem wiec z góry dziękuje za wszelkie wskazówki.
Jak puścić request do https://ksef-demo.mf.gov.pl/api/online/Invoice/Send z poziomu POSTMAN
W nagłówkach mam:
image

Sesja utworzona bez wskazanego szyfrowania.

W body wklejam takiego JSONA.

{
  "InvoiceHash": {
    "HashSHA": {
      "Algorithm": "SHA-256",
      "Encoding": "Base64",
      "Value": "QohnFbnJGdX4pyHgfAL4j6/ipwrm8iAeySAh48yPo+Y="
    },
    "FileSize": 3342
  },
  "InvoicePayload": {
    "Type": "plain",
    "InvoiceBody": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxGYWt0dXJhIHhtbG5zOmV0ZD0iaHR0cDovL2NyZC5nb3YucGwveG1sL3NjaGVtYXR5L2R6aWVkemlub3dlL21mLzIwMjIvMDEvMDUvZUQvRGVmaW5pY2plVHlweS8iIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiDQp4bWxucz0iaHR0cDovL2NyZC5nb3YucGwvd3pvci8yMDIzLzA2LzI5LzEyNjQ4LyI+DQoJPE5hZ2xvd2VrPg0KCQk8S29kRm9ybXVsYXJ6YSBrb2RTeXN0ZW1vd3k9IkZBICgyKSIgd2Vyc2phU2NoZW15PSIxLTBFIj5GQTwvS29kRm9ybXVsYXJ6YT4NCgkJPFdhcmlhbnRGb3JtdWxhcnphPjI8L1dhcmlhbnRGb3JtdWxhcnphPg0KCQk8RGF0YVd5dHdvcnplbmlhRmE+MjAyMi0wMS0wMVQwMDowMDowMFo8L0RhdGFXeXR3b3J6ZW5pYUZhPg0KCQk8U3lzdGVtSW5mbz5TYW1wbG9GYWt0dXI8L1N5c3RlbUluZm8+DQoJPC9OYWdsb3dlaz4NCgk8UG9kbWlvdDE+DQoJCTxEYW5lSWRlbnR5ZmlrYWN5am5lPg0KCQkJPE5JUD42NzUxMzM4ODcyPC9OSVA+DQoJCQk8TmF6d2E+UmFmYcWCIEt1Ym93aWN6PC9OYXp3YT4NCgkJPC9EYW5lSWRlbnR5ZmlrYWN5am5lPg0KCQk8QWRyZXM+DQoJCQk8S29kS3JhanU+UEw8L0tvZEtyYWp1Pg0KCQkJPEFkcmVzTDE+dWwuIEt3aWF0b3dhIDEgbS4gMjwvQWRyZXNMMT4NCgkJCTxBZHJlc0wyPjAwLTAwMSBXYXJzemF3YTwvQWRyZXNMMj4NCgkJPC9BZHJlcz4NCgkJPERhbmVLb250YWt0b3dlPg0KCQkJPEVtYWlsPmFiY0BhYmMucGw8L0VtYWlsPg0KCQkJPFRlbGVmb24+NjY3NDQ0NTU1PC9UZWxlZm9uPg0KCQk8L0RhbmVLb250YWt0b3dlPg0KCTwvUG9kbWlvdDE+DQoJPFBvZG1pb3QyPg0KCQk8RGFuZUlkZW50eWZpa2FjeWpuZT4NCgkJCTxOSVA+NjU5MTUxMTk0MTwvTklQPg0KCQkJPE5hendhPlNlcGllbGFrPC9OYXp3YT4NCgkJPC9EYW5lSWRlbnR5ZmlrYWN5am5lPg0KCQk8QWRyZXM+DQoJCQk8S29kS3JhanU+UEw8L0tvZEtyYWp1Pg0KCQkJPEFkcmVzTDE+dWwuIFBvbG5hIDE8L0FkcmVzTDE+DQoJCQk8QWRyZXNMMj4wMC0wMDEgV2Fyc3phd2E8L0FkcmVzTDI+DQoJCTwvQWRyZXM+DQoJCTxEYW5lS29udGFrdG93ZT4NCgkJCTxFbWFpbD5qYW5Aa293YWxza2kucGw8L0VtYWlsPg0KCQkJPFRlbGVmb24+NTU1Nzc3OTk5PC9UZWxlZm9uPg0KCQk8L0RhbmVLb250YWt0b3dlPg0KCQk8TnJLbGllbnRhPmZkZmQ3NzgzNDM8L05yS2xpZW50YT4NCgk8L1BvZG1pb3QyPg0KCTxGYT4NCgkJPEtvZFdhbHV0eT5QTE48L0tvZFdhbHV0eT4NCgkJPFBfMT4yMDIyLTAyLTE1PC9QXzE+DQoJCTxQXzFNPldhcnN6YXdhPC9QXzFNPg0KCQk8UF8yPkZWMjAyMi8wMi8xNTA8L1BfMj4NCgkJPFBfNj4yMDIyLTAxLTI3PC9QXzY+DQoJCTxQXzEzXzE+MTY2Ni42NjwvUF8xM18xPg0KCQk8UF8xNF8xPjM4My4zMzwvUF8xNF8xPg0KCQk8UF8xM18zPjAuOTU8L1BfMTNfMz4NCgkJPFBfMTRfMz4wLjA1PC9QXzE0XzM+DQoJCTxQXzE1PjIwNTE8L1BfMTU+DQoJCTxBZG5vdGFjamU+DQoJCQk8UF8xNj4yPC9QXzE2Pg0KCQkJPFBfMTc+MjwvUF8xNz4NCgkJCTxQXzE4PjI8L1BfMTg+DQoJCQk8UF8xOEE+MjwvUF8xOEE+DQoJCQk8WndvbG5pZW5pZT4NCgkJCQk8UF8xOU4+MTwvUF8xOU4+DQoJCQk8L1p3b2xuaWVuaWU+DQoJCQk8Tm93ZVNyb2RraVRyYW5zcG9ydHU+DQoJCQkJPFBfMjJOPjE8L1BfMjJOPg0KCQkJPC9Ob3dlU3JvZGtpVHJhbnNwb3J0dT4NCgkJCTxQXzIzPjI8L1BfMjM+DQoJCQk8UE1hcnp5Pg0KCQkJCTxQX1BNYXJ6eU4+MTwvUF9QTWFyenlOPg0KCQkJPC9QTWFyenk+DQoJCTwvQWRub3RhY2plPg0KCQk8Um9kemFqRmFrdHVyeT5WQVQ8L1JvZHphakZha3R1cnk+DQoJCTxGUD4xPC9GUD4NCgkJPERvZGF0a293eU9waXM+DQoJCQk8S2x1Y3o+cHJlZmVyb3dhbmUgZ29kemlueSBkb3dvenU8L0tsdWN6Pg0KCQkJPFdhcnRvc2M+ZG5pIHJvYm9jemUgMTc6MDAgLSAyMDowMDwvV2FydG9zYz4NCgkJPC9Eb2RhdGtvd3lPcGlzPg0KCQk8RmFXaWVyc3o+DQoJCQk8TnJXaWVyc3phRmE+MTwvTnJXaWVyc3phRmE+DQoJCQk8VVVfSUQ+YWFhYTExMTEzMzMzOTk5MDwvVVVfSUQ+DQoJCQk8UF83PmxvZMOzd2thIFppbW5vdGVjaCBtazE8L1BfNz4NCgkJCTxQXzhBPnN6dC48L1BfOEE+DQoJCQk8UF84Qj4xPC9QXzhCPg0KCQkJPFBfOUE+MTYyNi4wMTwvUF85QT4NCgkJCTxQXzExPjE2MjYuMDE8L1BfMTE+DQoJCQk8UF8xMj4yMzwvUF8xMj4NCgkJPC9GYVdpZXJzej4NCgkJPEZhV2llcnN6Pg0KCQkJPE5yV2llcnN6YUZhPjI8L05yV2llcnN6YUZhPg0KCQkJPFVVX0lEPmFhYWExMTExMzMzMzk5OTE8L1VVX0lEPg0KCQkJPFBfNz53bmllc2llbmllIHNwcnrEmXR1PC9QXzc+DQoJCQk8UF84QT5zenQuPC9QXzhBPg0KCQkJPFBfOEI+MTwvUF84Qj4NCgkJCTxQXzlBPjQwLjY1PC9QXzlBPg0KCQkJPFBfMTE+NDAuNjU8L1BfMTE+DQoJCQk8UF8xMj4yMzwvUF8xMj4NCgkJPC9GYVdpZXJzej4NCgkJPEZhV2llcnN6Pg0KCQkJPE5yV2llcnN6YUZhPjM8L05yV2llcnN6YUZhPg0KCQkJPFVVX0lEPmFhYWExMTExMzMzMzk5OTI8L1VVX0lEPg0KCQkJPFBfNz5wcm9tb2NqYSBsb2TDs3drYSBwZcWCbmEgbWxla2E8L1BfNz4NCgkJCTxQXzhBPnN6dC48L1BfOEE+DQoJCQk8UF84Qj4xPC9QXzhCPg0KCQkJPFBfOUE+MC45NTwvUF85QT4NCgkJCTxQXzExPjAuOTU8L1BfMTE+DQoJCQk8UF8xMj41PC9QXzEyPg0KCQk8L0ZhV2llcnN6Pg0KCQk8UGxhdG5vc2M+DQoJCQk8WmFwbGFjb25vPjE8L1phcGxhY29ubz4NCgkJCTxEYXRhWmFwbGF0eT4yMDIyLTAxLTI3PC9EYXRhWmFwbGF0eT4NCgkJCTxGb3JtYVBsYXRub3NjaT42PC9Gb3JtYVBsYXRub3NjaT4NCgkJPC9QbGF0bm9zYz4NCgkJPFdhcnVua2lUcmFuc2FrY2ppPg0KCQkJPFphbW93aWVuaWE+DQoJCQkJPERhdGFaYW1vd2llbmlhPjIwMjItMDEtMjY8L0RhdGFaYW1vd2llbmlhPg0KCQkJCTxOclphbW93aWVuaWE+NDM1NDM0MzwvTnJaYW1vd2llbmlhPg0KCQkJPC9aYW1vd2llbmlhPg0KCQk8L1dhcnVua2lUcmFuc2FrY2ppPg0KCTwvRmE+DQoJPFN0b3BrYT4NCgkJPEluZm9ybWFjamU+DQoJCQk8U3RvcGthRmFrdHVyeT5LYXBpYcWCIHpha8WCYWRvd3kgNSAwMDAgMDAwPC9TdG9wa2FGYWt0dXJ5Pg0KCQk8L0luZm9ybWFjamU+DQoJCTxSZWplc3RyeT4NCgkJCTxLUlM+MDAwMDA5OTk5OTwvS1JTPg0KCQkJPFJFR09OPjk5OTk5OTk5OTwvUkVHT04+DQoJCQk8QkRPPjAwMDA5OTk5OTwvQkRPPg0KCQk8L1JlamVzdHJ5Pg0KCTwvU3RvcGthPg0KPC9GYWt0dXJhPg0K"
  }
}

W zwrotce cały czas dostaję 400

 "exceptionDetailList": [
            {
                "exceptionCode": 21001,
                "exceptionDescription": "Nieczytelna treść."
            }

Macie jakiś pomysł co jest źle ?

Z góry dzięki za wskazówki.

0

@RafKrak: "Nieczytelna treść" pojawia się gdy masz nieprawidłowy json. Ja nie mogłem się doszukać przyczyny, okazało się że wielkość znaków ma ogromne znaczenie. Dobrzy ludzie tutaj podesłali mi przykładowy json. Zrób próbę z czymś takim:

{
    "invoiceHash": {
        "fileSize": 2505,
        "hashSHA": {
            "algorithm": "SHA-256",
            "encoding": "Base64",
            "value": "797991d276edb508a7a64ad1447bf9aadf091e0655403aa70e7cc0ea6185f25c"
        }
    },
    "invoicePayload": {
        "invoiceBody": "PD94bWwgdmVyc2lvbj0iMS4wI.........C9GYWt0dXJhPg==",
        "type": "plain"
    }
}

0

Tak tylko w celu potwierdzenia, bo wiem że ksef nie działa, też wam leci taki błąd podczas próby wysłania faktury?
" I/O error on POST request for "https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge": Connection reset; nested exception is javax.net.ssl.SSLException: Connection reset)""

0

Cześć wszystkim a więc otrzymałem już po wszelkich wygibasach taką wiadomość po wysłaniu Faktury na endpoint https://ksef-demo.mf.gov.pl/api/online/Invoice/Send

{
  "timestamp": "2023-12-14T11:53:28.526Z",
  "referenceNumber": "20231214-SE-E3AAC357DC-AD4F881DC5-4F",
  "processingCode": 100,
  "processingDescription": "Proces został zarejestrowany.",
  "elementReferenceNumber": "20231214-EE-2175BEBD2B-F40308B155-35"
}

Lecz niestety jak już zapytam o tą fakturę o ten proces dostaje tak :

{
	"exception": {
		"serviceCtx": "srvTRMFC",
		"serviceCode": "20231214-EX-FC2BF13358-021FFC8371-5D",
		"serviceName": "online.invoice.invoice.status",
		"timestamp": "2023-12-14T12:13:03.789Z",
		"referenceNumber": "20231214-SE-A6308A9073-19AAFEB67B-9D",
		"exceptionDetailList": [
			{
				"exceptionCode": 21164,
				"exceptionDescription": "Faktura o podanym identyfikatorze nie istnieje."
			}
		]
	}
}
0

Webservice KSeF nie działa - co robić?
Mam niewielkie doświadczenie z http, stąd moja prośba o radę.
Jak prawidłowo obsłużyć sytuację gdzie zamiast oczekiwanego wyniku w response przychodzi html z komunikatem błędu przeznaczonym dla przeglądarki internetowej?
Jak rozpoznać taką sytuację? Jak wyświetlić komunikat błędu przekazany na stronie?

0

Witajcie.

Mam gorącą prośbę - czy ktoś może poratować aktualnym podpisanym plikiem xml dla InitSessionSigned, który na pewno przechodzi na ksef-test?

Walczę z tym od kilku dni, przerobiłem już chyba wszystkie przykłady na generowanie certyfikatu i porównania z plikami zamieszczanymi w tym wątku.
Podpis mam raczej prawidłowy, w każdym razie przechodzi walidację na weryfikacjapodpisu.pl
Co więcej, przechodzi autoryzacja na testowej aplikacji podatnika ("Podpisane żądanie autoryzacyjne/Dodaj plik") XD, ale w api już nie - dokument niezgody ze schemą (xsd).

Poratuje ktoś?

0

Próbowałem "oswoić" nową funkcję API /Visibility/Hide ciągle zwraca mi "internal error" (500, "Błąd wewnętrzny (C)", czy może coś wczoraj było zepsute?

  • Wywoływana po stronie Odbiorcy faktury
  • Sesja powiązana z tokenem o pełnych uprawnieniach (aby wykluczyć możliwość, że przyczyną błędu jest ich brak)
  • Fakturę o numerze KSeF którą chcę ukryć, mogę np. pobrać (więc na pewno istnieje)
  • Faktura na pewno jest widoczna - zwraca ją Query/Invoice/Sync

Gdy wywołuję /Visibility/Show, to zgodnie z oczekiwaniem mam informację że faktura nie jest ukryta:

[2023-12-12 17:13:36.1506]: Wysyłanie żądania HTTP
URL: https://ksef-test.mf.gov.pl/api/online/Invoice/Visibility/Show
Metoda: POST
HTTP Headers:
Content-Type:application/json
SessionToken:50c81632c6c9eaed023ac53ae97805e2ac6a61af7cf0608675898e2f886eadec
ksef-number-variant:v36
Dane:
{ "invoiceHideCancelationRequest":{"hidingCancelationReason":"Test","ksefReferenceNumber":"1111111111-20231211-E44A8F-1D26BE-F7"}}

[2023-12-12 17:13:36.2447]: Odpowiedź serwera: 400
tekst: {"exception":{"serviceCtx":"srvTEMFB","serviceCode":"20231212-EX-3126F2D900-58F48EC1EF-15","serviceName":"online.invoice.invoice.show","timestamp":"2023-12-12T16:13:36.493Z","referenceNumber":"20231212-SE-F70079BD25-8AE2F4B764-79","exceptionDetailList":[{"exceptionCode":21188,"exceptionDescription":"Faktura nie jest ukryta lub nie można uzyskac do niej dostępu."}]}}

Ale gdy dla tej faktury wywołuję Visibility/Hide, to dostaję błąd 500 (albo - w prywatnym narzeczu AK - "C")

[2023-12-12 17:28:57.3990]: Wysyłanie żądania HTTP
URL: https://ksef-test.mf.gov.pl/api/online/Invoice/Visibility/Hide
Metoda: POST
HTTP Headers:
Content-Type:application/json
SessionToken:50c81632c6c9eaed023ac53ae97805e2ac6a61af7cf0608675898e2f886eadec
ksef-number-variant:v36
Dane:
{"invoiceHideRequest":{"hidingReason":"test","ksefReferenceNumber":"1111111111-20231211-E44A8F-1D26BE-F7"}}

[2023-12-12 17:28:57.5430]: Odpowiedź serwera: 500
tekst: {"exception":{"serviceCtx":"default","serviceCode":"20231212-EX-F73D57ECD7-C31E1027E4-27","serviceName":"online.invoice.invoice.hide","timestamp":"2023-12-12T16:28:57.775Z","referenceNumber":"20231212-SE-F70079BD25-8AE2F4B764-79","exceptionDetailList":[{"exceptionCode":-1000,"exceptionDescription":"Błąd wewnętrzny (C)."}]}}

/* numer NIP w numerze KSeF zmieniłem ze względu na zobowiązanie o poufności danych) */

Funkcji Show/Hide nie widzę w specyfikacji API (PDF), wystawionej na serwerze testowym, choć są w yaml-u. Więc nawet tego nie mogę wysłać na oficjalny e-mail helpdesku, bo w sumie to funkcje nieudokumentowane. Pozostało mi się tylko zapytać w tym wątku...

0

Hej sprawdzicie mnie?

Próbuję wysłać inittoken ale cały czas dostaję

Błąd: {'serviceCtx': 'default', 'serviceCode': '20231214-EX-2AF57EFE0B-A759908AD8-BF', 'serviceName': 'online.session.session.token.init', 'timestamp': '2023-12-14T18:39:27.916Z', 'referenceNumber': '20231214-SE-0CC4847180-F912C29B0C-ED', 'exceptionDetailList': [{'exceptionCode': 20005, 'exceptionDescription': 'Nieprawidłowo zaszyfrowana treść.'}]}

Testowy token to: 4EA55DA74A1B9A92E064CC1DD8EC82CA71DBB133E6B697E5BF8E8837760B5B83
klucz publiczny pobrałem z testówki ten:
https://ksef-test.mf.gov.pl/security/pem

możecie sprawdzić czy nie walnąłem się przy generowaniu tokena przy
challenge:'20231214-CR-38BC3A046C-6B7B033145-A8'
time: '2023-12-14T1833.449Z'

<?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>20231214-CR-38BC3A046C-6B7B033145-A8</Challenge>
		<Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
			<ns2:Identifier>5340820650</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>ENp8VO3+uWOhenJ9+fW9knncUwbBD3p/lkAFOyqFiXUKySLAIymCgpG6mbcI6snC4p1G1A4v2U2Xqg90OGsALgYq2SvaF8FKWa9RGXdSfWb0F0lqJpa8mNfiie+neQBUZvvNeaE31mccmcApxIYKxjFXgrIuf/ebQXS3tK69f6C49n+ir8VU1e8wn/f1+9Rp/JdaXJ+phLudwHL+CS2AiIMG2oH3PjAnuvN4C1pGXDgZ2CCr7H2reQ7WiDU8d3Zu6XwuOgYWiBIutjZ4zokYmlzOF9aVVVJKh2iCRJm/QOvrzsAvNWQ2i59IABzkKUqOtHxav0v2eQPsWeskgZDG+A==</Token>
	</ns3:Context>
</ns3:InitSessionTokenRequest>

Będę bardzo wdzięczny za pomoc w sprawdzeniu tego

0
Jacek Posiewała napisał(a):

Czy ktoś jest mi w stanie w prosty sposób wyjaśnić co ma zawierać kod QR, który ma być obowiązkowo zamieszczany na każdej wizualizacji faktury przesłanej do KSEF?

Zawartość kodu została "ujawniona" podczas jednej z prezentacji KAS. Będzie to link. W przykładzie był taki:
https://ksef.mf.gov.pl/api/common/Verify/5257775469-20220223-92C40A-AF2A4C-FC/YwucKLcs88uk6ivN00%2FC%2FNRYAKH2FduOb0v%2FccwpjTI%3D

0

Cześć,

czy faktura V2 coś się zmieniła od września? Bo ja nie widzę zmian, a może nie zaktualizowali schemy? https://www.podatki.gov.pl/e-deklaracje/dokumentacja-it/struktury-dokumentow-xml/#ksef

Link o informacjach nowej faktury V2.
https://www.podatki.gov.pl/ksef/wyjasnienia-ksef/krajowy-system-e-faktur-przystosowany-do-struktury-fa-2/

Czy oni może mówią o tych zmianach z września? Ten KSeF to jeden duży śmietnik.

Pozdrawiam

1
woolfik napisał(a):

Hej sprawdzicie mnie?

Próbuję wysłać inittoken ale cały czas dostaję

Błąd: {'serviceCtx': 'default', 'serviceCode': '20231214-EX-2AF57EFE0B-A759908AD8-BF', 'serviceName': 'online.session.session.token.init', 'timestamp': '2023-12-14T18:39:27.916Z', 'referenceNumber': '20231214-SE-0CC4847180-F912C29B0C-ED', 'exceptionDetailList': [{'exceptionCode': 20005, 'exceptionDescription': 'Nieprawidłowo zaszyfrowana treść.'}]}

Testowy token to: 4EA55DA74A1B9A92E064CC1DD8EC82CA71DBB133E6B697E5BF8E8837760B5B83
klucz publiczny pobrałem z testówki ten:
https://ksef-test.mf.gov.pl/security/pem

możecie sprawdzić czy nie walnąłem się przy generowaniu tokena przy
challenge:'20231214-CR-38BC3A046C-6B7B033145-A8'
time: '2023-12-14T1833.449Z'

<?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>20231214-CR-38BC3A046C-6B7B033145-A8</Challenge>
		<Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
			<ns2:Identifier>5340820650</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>ENp8VO3+uWOhenJ9+fW9knncUwbBD3p/lkAFOyqFiXUKySLAIymCgpG6mbcI6snC4p1G1A4v2U2Xqg90OGsALgYq2SvaF8FKWa9RGXdSfWb0F0lqJpa8mNfiie+neQBUZvvNeaE31mccmcApxIYKxjFXgrIuf/ebQXS3tK69f6C49n+ir8VU1e8wn/f1+9Rp/JdaXJ+phLudwHL+CS2AiIMG2oH3PjAnuvN4C1pGXDgZ2CCr7H2reQ7WiDU8d3Zu6XwuOgYWiBIutjZ4zokYmlzOF9aVVVJKh2iCRJm/QOvrzsAvNWQ2i59IABzkKUqOtHxav0v2eQPsWeskgZDG+A==</Token>
	</ns3:Context>
</ns3:InitSessionTokenRequest>

Będę bardzo wdzięczny za pomoc w sprawdzeniu tego

Tutaj masz działający request na 100%. Jeśli w tym co generujesz nie ma gdzieś byka to znaczy że źle szyfrujesz token.

<?xml version="1.0" encoding="utf-8"?>
<ns3:InitSessionTokenRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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 xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/online/types/2021/10/01/0001">20231206-CR-E1965C1A43-02B3E652DC-81</Challenge>
    <Identifier xsi:type="ns2:SubjectIdentifierByCompanyType" xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/online/types/2021/10/01/0001">
      <ns2:Identifier>1111111111</ns2:Identifier>
    </Identifier>
    <DocumentType xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/online/types/2021/10/01/0001">
      <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 xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/online/types/2021/10/01/0001">LYplRV6pSqYMt1J9dpULaSccDpNojZnuQpdzijlWIj/cD6y9ON9VANSOnCRgMs5X023fGWgS/CrFnGdPXXzJfR+PFzztLAQwmlSVfNemIZIGKMc10WRrocE0wdu7ydoV31/9lp7In2W7sLNpu1GjBMG6YAc/hDRoskPUkoz7Z09xb7zD0xIzrfrqINgtjePyYL5/MCGMMczy61eivyPQwdXHmLUdT7rlfcRUrIkE20dQvh7WLnPWHHjUmVJS/QXnUuyvPKbbdvmKTKv3EaOrfuf5t/VNXjkBa0xRMfjDNjsyq60ZNcoUyWefc79zY1XCqfp8nm9GsVgNjdF2VoXZsQ==</Token>
  </ns3:Context>
</ns3:InitSessionTokenRequest>

Jeśli używasz net framework < 4.8 to szyfrowanie działa za pomocą bouncy castle. Jeśli 4.8 albo net core, to ten same efekt można uzyskać bez tej biblioteki:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Crypto.Encodings;
using Org.BouncyCastle.Crypto.Engines;

// klucz publiczny środowiska testowego z publicKey.pem
private const string __pubKeyTest = @"-----BEGIN PUBLIC KEY-----
                                              MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWosgHSpiRLadA0fQbzshi5TluliZfDsJujPlyYqp6A3qnzS3WmHxtwgO58uTbemQ1HCC2qwrMwuJqR6l8tgA4ilBMDbEEtkzgbjkJ6xoEqBptgxivP/ovOFYYoAnY6brZhXytCamSvjY9KI0g0McRk24pOueXT0cbb0tlwEEjVZ8NveQNKT2c1EEE2cjmW0XB3UlIBqNqiY2rWF86DcuFDTUy+KzSmTJTFvU/ENNyLTh5kkDOmB1SY1Zaw9/Q6+a4VJ0urKZPw+61jtzWmucp4CO2cfXg9qtF6cxFIrgfbtvLofGQg09Bh7Y6ZA5VfMRDVDYLjvHwDYUHg2dPIk0wIDAQAB
                                     -----END PUBLIC KEY-----";

// token = token wygenerowany w Aplikacji Podatnika

var valueToEncrypt = $"{token}|{challengeTimestamp.ToUnixTimeMilliseconds()}";
var bytesToEncrypt = Encoding.UTF8.GetBytes(valueToEncrypt);

var rsaEngine = new Pkcs1Encoding(new RsaEngine());
var pem = __pubKeyTest;

using (var stringReader = new StringReader(pem))
{
       var pemObject = new PemReader(stringReader).ReadObject();
       var keyParameter = (AsymmetricKeyParameter)pemObject;
       rsaEngine.Init(true, keyParameter);
}

var encryptedToken = Convert.ToBase64String(rsaEngine.ProcessBlock(bytesToEncrypt, 0, bytesToEncrypt.Length));

Powodzenia!

0

Czesc
od kilku dni wciaz wisi wywolanie poniższej metody na Test. Ktoś ma pomysł dlaczego? Zakres dat był dość wąski. Spodziewana liczba zwracanych faktur to kilka szt.

Code 325: Zakończenie etapu podziału na podzapytania oraz inicjalizacja podprocesów przygotowania części odpowiedzi

/online/Query/Invoice/Async/Status/{elementReferenceNumber}
0

Hej.
Ktoś poratuje z 21405 Dokument nie jest zgodny ze schemą (json) na https://ksef-test.mf.gov.pl/api/online/Invoice/Send?

<?php $faktura = '<?xml version="1.0" encoding="UTF-8"?>
    <Faktura xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2022/01/05/eD/DefinicjeTypy/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://crd.gov.pl/wzor/2023/06/29/12648/">
        <Naglowek>
            <KodFormularza kodSystemowy="FA (2)" wersjaSchemy="1-0E">FA</KodFormularza>...';

$faktura_base64 = base64_encode($faktura);
$faktura_hash = hash("SHA256", $faktura);
$faktura_hash_base64=base64_encode($faktura_hash);
$faktura_dlugosc = strlen($faktura);

$do_wyslania =
json_encode(array(
"invoiceHash" => array(
"hashSHA" => array(
"algorithm" => "SHA-256",
"encoding" => "Base64",
"value" => $faktura_hash_base64
),
"fileSize" => $faktura_dlugosc
),
"invoicePayload" => array(
"type" => "plain",
"invoiceBody" => $faktura_base64
)
))
;
$curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://ksef-test.mf.gov.pl/api/online/Invoice/Send",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CUSTOMREQUEST => "PUT",
            CURLOPT_POSTFIELDS => $do_wyslania,
            CURLOPT_HTTPHEADER => array(
                
                "Content-Type: application/json",
                "SessionToken: $session_token",
                "Accept: application/json"
            ),
        ));

        $response = curl_exec($curl);

{
"invoiceHash":{
"hashSHA":{
"algorithm":"SHA-256",
"encoding":"Base64",
"value":"OGQxNjc2YTcxN2QyOTFhMjBmMTRkYzk0MzgzNTY0NDc0NzIzNzNjMWFkNjY2NmU3ZGI1N2FjMGVlYmQwNDUxZA=="
},
"fileSize":5136},
"invoicePayload":{
"type":"plain",
"invoiceBody":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KICAgICAgICA8RmFrdHVyYSB4bWxuczpldGQ9Imh0dHA6Ly9jcmQuZ292LnBsL3htbC9zY2hlbWF0eS9kemllZHppbm93ZS9tZi8yMDIyLzAxLzA1L2VEL0RlZmluaWNqZVR5cHkvIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgogICAgICAgIHhtbG5zPSJodHRwOi8vY3JkLmdvdi5wbC93em9yLzIwMjMvMDYvMjkvMTI2NDgvIj4KICAgICAgICAgICAgPE5hZ2xvd2VrPgogICAgICAgICAgICAgICAgPEtvZEZvcm11bGFyemEga29kU3lzdGVtb3d5PSJGQSAoMikiIHdlcnNqYVNjaGVteT0iMS0wRSI+RkE8L0tvZEZvcm11bGFyemE+CiAgICAgICAgICAgICAgICA8V2FyaWFudEZvcm11bGFyemE+MjwvV2FyaWFudEZvcm11bGFyemE+CiAgICAgICAgICAgICAgICA8RGF0YVd5dHdvcnplbmlhRmE+MjAyMi0wMS0wMVQwMDowMDowMFo8L0RhdGFXeXR3b3J6ZW5pYUZhPgogICAgICAgICAgICAgICAgPFN5c3RlbUluZm8+RHVka29tYXQ8L1N5c3RlbUluZm8+CiAgICAgICAgICAgIDwvTmFnbG93ZWs+CiAgICAgICAgICAgIDxQb2RtaW90MT4KICAgICAgICAgICAgICAgIDxEYW5lSWRlbnR5ZmlrYWN5am5lPgogICAgICAgICAgICAgICAgICAgIDxOSVA+NjAxMjU0NzM4MDwvTklQPgogICAgICAgICAgICAgICAgICAgIDxOYXp3YT5UZXN0b3dhIEluZm9ybWF0eWthPC9OYXp3YT4KICAgICAgICAgICAgICAgIDwvRGFuZUlkZW50eWZpa2FjeWpuZT4KICAgICAgICAgICAgICAgIDxBZHJlcz4KICAgICAgICAgICAgICAgICAgICA8S29kS3JhanU+UEw8L0tvZEtyYWp1PgogICAgICAgICAgICAgICAgICAgIDxBZHJlc0wxPnVsLiDEhndpYXJ0a2kgMy80PC9BZHJlc0wxPgogICAgICAgICAgICAgICAgICAgIDxBZHJlc0wyPjAwLTAwMSBXYXJzemF3YTwvQWRyZXNMMj4KICAgICAgICAgICAgICAgIDwvQWRyZXM+CiAgICAgICAgICAgICAgICA8RGFuZUtvbnRha3Rvd2U+CiAgICAgICAgICAgICAgICAgICAgPEVtYWlsPmFiY0BhYmMucGw8L0VtYWlsPgogICAgICAgICAgICAgICAgICAgIDxUZWxlZm9uPjY2NzQ0NDU1NTwvVGVsZWZvbj4KICAgICAgICAgICAgICAgIDwvRGFuZUtvbnRha3Rvd2U+CiAgICAgICAgICAgIDwvUG9kbWlvdDE+CiAgICAgICAgICAgIDxQb2RtaW90Mj4KICAgICAgICAgICAgICAgIDxEYW5lSWRlbnR5ZmlrYWN5am5lPgogICAgICAgICAgICAgICAgICAgIDxOSVA+MTExMTExMTExMTwvTklQPgogICAgICAgICAgICAgICAgICAgIDxOYXp3YT5GLkguVS4gSmFuIEtvd2Fsc2tpPC9OYXp3YT4KICAgICAgICAgICAgICAgIDwvRGFuZUlkZW50eWZpa2FjeWpuZT4KICAgICAgICAgICAgICAgIDxBZHJlcz4KICAgICAgICAgICAgICAgICAgICA8S29kS3JhanU+UEw8L0tvZEtyYWp1PgogICAgICAgICAgICAgICAgICAgIDxBZHJlc0wxPnVsLiBQb2xuYSAxPC9BZHJlc0wxPgogICAgICAgICAgICAgICAgICAgIDxBZHJlc0wyPjAwLTAwMSBXYXJzemF3YTwvQWRyZXNMMj4KICAgICAgICAgICAgICAgIDwvQWRyZXM+CiAgICAgICAgICAgICAgICA8RGFuZUtvbnRha3Rvd2U+CiAgICAgICAgICAgICAgICAgICAgPEVtYWlsPmphbkBrb3dhbHNraS5wbDwvRW1haWw+CiAgICAgICAgICAgICAgICAgICAgPFRlbGVmb24+NTU1Nzc3OTk5PC9UZWxlZm9uPgogICAgICAgICAgICAgICAgPC9EYW5lS29udGFrdG93ZT4KICAgICAgICAgICAgICAgIDxOcktsaWVudGE+ZmRmZDc3ODM0MzwvTnJLbGllbnRhPgogICAgICAgICAgICA8L1BvZG1pb3QyPgogICAgICAgICAgICA8RmE+CiAgICAgICAgICAgICAgICA8S29kV2FsdXR5PlBMTjwvS29kV2FsdXR5PgogICAgICAgICAgICAgICAgPFBfMT4yMDIyLTAyLTE1PC9QXzE+CiAgICAgICAgICAgICAgICA8UF8xTT5XYXJzemF3YTwvUF8xTT4KICAgICAgICAgICAgICAgIDxQXzI+RlYyMDIyLzAyLzE1MDwvUF8yPgogICAgICAgICAgICAgICAgPFBfNj4yMDIyLTAxLTI3PC9QXzY+CiAgICAgICAgICAgICAgICA8UF8xM18xPjE2NjYuNjY8L1BfMTNfMT4KICAgICAgICAgICAgICAgIDxQXzE0XzE+MzgzLjMzPC9QXzE0XzE+CiAgICAgICAgICAgICAgICA8UF8xM18zPjAuOTU8L1BfMTNfMz4KICAgICAgICAgICAgICAgIDxQXzE0XzM+MC4wNTwvUF8xNF8zPgogICAgICAgICAgICAgICAgPFBfMTU+MjA1MTwvUF8xNT4KICAgICAgICAgICAgICAgIDxBZG5vdGFjamU+CiAgICAgICAgICAgICAgICAgICAgPFBfMTY+MjwvUF8xNj4KICAgICAgICAgICAgICAgICAgICA8UF8xNz4yPC9QXzE3PgogICAgICAgICAgICAgICAgICAgIDxQXzE4PjI8L1BfMTg+CiAgICAgICAgICAgICAgICAgICAgPFBfMThBPjI8L1BfMThBPgogICAgICAgICAgICAgICAgICAgIDxad29sbmllbmllPgogICAgICAgICAgICAgICAgICAgICAgICA8UF8xOU4+MTwvUF8xOU4+CiAgICAgICAgICAgICAgICAgICAgPC9ad29sbmllbmllPgogICAgICAgICAgICAgICAgICAgIDxOb3dlU3JvZGtpVHJhbnNwb3J0dT4KICAgICAgICAgICAgICAgICAgICAgICAgPFBfMjJOPjE8L1BfMjJOPgogICAgICAgICAgICAgICAgICAgIDwvTm93ZVNyb2RraVRyYW5zcG9ydHU+CiAgICAgICAgICAgICAgICAgICAgPFBfMjM+MjwvUF8yMz4KICAgICAgICAgICAgICAgICAgICA8UE1hcnp5PgogICAgICAgICAgICAgICAgICAgICAgICA8UF9QTWFyenlOPjE8L1BfUE1hcnp5Tj4KICAgICAgICAgICAgICAgICAgICA8L1BNYXJ6eT4KICAgICAgICAgICAgICAgIDwvQWRub3RhY2plPgogICAgICAgICAgICAgICAgPFJvZHphakZha3R1cnk+VkFUPC9Sb2R6YWpGYWt0dXJ5PgogICAgICAgICAgICAgICAgPEZQPjE8L0ZQPgogICAgICAgICAgICAgICAgPERvZGF0a293eU9waXM+CiAgICAgICAgICAgICAgICAgICAgPEtsdWN6PnByZWZlcm93YW5lIGdvZHppbnkgZG93b3p1PC9LbHVjej4KICAgICAgICAgICAgICAgICAgICA8V2FydG9zYz5kbmkgcm9ib2N6ZSAxNzowMCAtIDIwOjAwPC9XYXJ0b3NjPgogICAgICAgICAgICAgICAgPC9Eb2RhdGtvd3lPcGlzPgogICAgICAgICAgICAgICAgPEZhV2llcnN6PgogICAgICAgICAgICAgICAgICAgIDxOcldpZXJzemFGYT4xPC9OcldpZXJzemFGYT4KICAgICAgICAgICAgICAgICAgICA8VVVfSUQ+YWFhYTExMTEzMzMzOTk5MDwvVVVfSUQ+CiAgICAgICAgICAgICAgICAgICAgPFBfNz5sb2TDs3drYSBaaW1ub3RlY2ggbWsxPC9QXzc+CiAgICAgICAgICAgICAgICAgICAgPFBfOEE+c3p0LjwvUF84QT4KICAgICAgICAgICAgICAgICAgICA8UF84Qj4xPC9QXzhCPgogICAgICAgICAgICAgICAgICAgIDxQXzlBPjE2MjYuMDE8L1BfOUE+CiAgICAgICAgICAgICAgICAgICAgPFBfMTE+MTYyNi4wMTwvUF8xMT4KICAgICAgICAgICAgICAgICAgICA8UF8xMj4yMzwvUF8xMj4KICAgICAgICAgICAgICAgIDwvRmFXaWVyc3o+CiAgICAgICAgICAgICAgICA8RmFXaWVyc3o+CiAgICAgICAgICAgICAgICAgICAgPE5yV2llcnN6YUZhPjI8L05yV2llcnN6YUZhPgogICAgICAgICAgICAgICAgICAgIDxVVV9JRD5hYWFhMTExMTMzMzM5OTkxPC9VVV9JRD4KICAgICAgICAgICAgICAgICAgICA8UF83PnduaWVzaWVuaWUgc3ByesSZdHU8L1BfNz4KICAgICAgICAgICAgICAgICAgICA8UF84QT5zenQuPC9QXzhBPgogICAgICAgICAgICAgICAgICAgIDxQXzhCPjE8L1BfOEI+CiAgICAgICAgICAgICAgICAgICAgPFBfOUE+NDAuNjU8L1BfOUE+CiAgICAgICAgICAgICAgICAgICAgPFBfMTE+NDAuNjU8L1BfMTE+CiAgICAgICAgICAgICAgICAgICAgPFBfMTI+MjM8L1BfMTI+CiAgICAgICAgICAgICAgICA8L0ZhV2llcnN6PgogICAgICAgICAgICAgICAgPEZhV2llcnN6PgogICAgICAgICAgICAgICAgICAgIDxOcldpZXJzemFGYT4zPC9OcldpZXJzemFGYT4KICAgICAgICAgICAgICAgICAgICA8VVVfSUQ+YWFhYTExMTEzMzMzOTk5MjwvVVVfSUQ+CiAgICAgICAgICAgICAgICAgICAgPFBfNz5wcm9tb2NqYSBsb2TDs3drYSBwZcWCbmEgbWxla2E8L1BfNz4KICAgICAgICAgICAgICAgICAgICA8UF84QT5zenQuPC9QXzhBPgogICAgICAgICAgICAgICAgICAgIDxQXzhCPjE8L1BfOEI+CiAgICAgICAgICAgICAgICAgICAgPFBfOUE+MC45NTwvUF85QT4KICAgICAgICAgICAgICAgICAgICA8UF8xMT4wLjk1PC9QXzExPgogICAgICAgICAgICAgICAgICAgIDxQXzEyPjU8L1BfMTI+CiAgICAgICAgICAgICAgICA8L0ZhV2llcnN6PgogICAgICAgICAgICAgICAgPFBsYXRub3NjPgogICAgICAgICAgICAgICAgICAgIDxaYXBsYWNvbm8+MTwvWmFwbGFjb25vPgogICAgICAgICAgICAgICAgICAgIDxEYXRhWmFwbGF0eT4yMDIyLTAxLTI3PC9EYXRhWmFwbGF0eT4KICAgICAgICAgICAgICAgICAgICA8Rm9ybWFQbGF0bm9zY2k+NjwvRm9ybWFQbGF0bm9zY2k+CiAgICAgICAgICAgICAgICA8L1BsYXRub3NjPgogICAgICAgICAgICAgICAgPFdhcnVua2lUcmFuc2FrY2ppPgogICAgICAgICAgICAgICAgICAgIDxaYW1vd2llbmlhPgogICAgICAgICAgICAgICAgICAgICAgICA8RGF0YVphbW93aWVuaWE+MjAyMi0wMS0yNjwvRGF0YVphbW93aWVuaWE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxOclphbW93aWVuaWE+NDM1NDM0MzwvTnJaYW1vd2llbmlhPgogICAgICAgICAgICAgICAgICAgIDwvWmFtb3dpZW5pYT4KICAgICAgICAgICAgICAgIDwvV2FydW5raVRyYW5zYWtjamk+CiAgICAgICAgICAgIDwvRmE+CiAgICAgICAgICAgIDxTdG9wa2E+CiAgICAgICAgICAgICAgICA8SW5mb3JtYWNqZT4KICAgICAgICAgICAgICAgICAgICA8U3RvcGthRmFrdHVyeT5LYXBpYcWCIHpha8WCYWRvd3kgNSAwMDAgMDAwPC9TdG9wa2FGYWt0dXJ5PgogICAgICAgICAgICAgICAgPC9JbmZvcm1hY2plPgogICAgICAgICAgICAgICAgPFJlamVzdHJ5PgogICAgICAgICAgICAgICAgICAgIDxLUlM+MDAwMDA5OTk5OTwvS1JTPgogICAgICAgICAgICAgICAgICAgIDxSRUdPTj45OTk5OTk5OTk8L1JFR09OPgogICAgICAgICAgICAgICAgICAgIDxCRE8+MDAwMDk5OTk5PC9CRE8+CiAgICAgICAgICAgICAgICA8L1JlamVzdHJ5PgogICAgICAgICAgICA8L1N0b3BrYT4KICAgICAgICA8L0Zha3R1cmE+"
}
}

Z góry dzięki.

0

Czas na przejrzenie zmian:

  1. W specyfikacji (PDF) pojawiają się zapisy o kodach QR, ale ani to zgodne z zapisami w projekcie rozporządzenia, ani nawet samo ze sobą (adresy linków w przykładach i opisie)
  2. Interfejs anonimowy
    a. Pojawia się nowy endpoint download/{KsefReferenceNumber} - treścią żądania POST jest JSON ze skrótem pytanej faktury, jej numerem i adresatem.
    b. Pojawia się nowy endpoint verification/{KsefReferenceNumber} - treścią żądania POST jest... dowolny typ? no brawo!
    c. Co ciekawe, cały YAML nosi wersję 2.1.0
  3. interfejs interaktywny
    a. Zwiększono ilość elementów, jaka może być zwrócona w ramach sprawdzenia identyfikatora płatności ze 100 do 10'000. W dalszym ciągu błedną pozostaje definicja obiektu RequestPaymentIdentifierResponse.paymentIdentifier, bo identyfikatory nie odpowiadają podanej masce
    b. Do w/w odpowiedzi dodano paginację - niestety nie ma żądania związanego z paginacją.
    c. Do informacji o fakturze w ramach odpowiedzi na QueryInvoiceSync: dodano znacznik ukrycia oraz czas tego ukrycia.
    d. Przy żądaniu płatności muszą być minimum 2 faktury (było: 1) oraz maksimum może być ich 10'000 (było: 100)

O większości z tych zmian w historii się nie doszukacie.

0

Chyba z tym opublikowanym dzisiaj KSeF-online.yaml (version 2.2.0) jest coś nie tak, albo nie rozumiem zawiłości YAML-a. Chodzi o strukturę którą należy wysłać w /online/Query/Invoice/Sync
(zapytanie o faktury).

Dotychczasowa struktura żądania - taka jak poniżej - nadal działa:

{ 
  "queryCriteria":{ 
	"type":"range", 
	"subjectType":"subject2", 
	"invoicingDateFrom":"2023-11-01T00:00:00.000+01:00", 
	"invoicingDateTo":"2023-12-01T00:00:00.000+01:00" 
  } 
}

ale w tym nowym pliku umieścili inną strukturę, służącą do odczytywania ukrytych faktur:

{
  "queryCriteria": {
    "hidingDateFrom": "2023-12-15T12:09:34.718Z",
    "hidingDateTo": "2023-12-15T12:09:34.718Z",
    "isHidden": true,
    "subjectType": "subject1"
  }
}

Sprawdzam tę definicję - i nie rozumiem:

  1. Jakim cudem stara struktura (ta z pierwszego przykładu) jest akceptowana, skoro ten YAML jako jedyną dopuszczalną podaje strukturę pytania o ukryte faktury (tę drugą)?
  2. Dlaczego definicja tej nowej struktury (za polem "isHidden") ma w YAML-u atrybut deprecated: true?
0

Czy tylko ja nie mogę otworzyć 31 strony tego wątku? Mam błąd serwera. Inne się otwierają poprawnie.

0

Znalazłem powtarzalny błąd: funkcje online/Invoice/Visibility/Show i online/Invoice/Visibility/Hide wobec pojedynczej faktury można wywołać tylko raz. Gdy:

  1. ukryjesz fakturę poleceniem Hide
  2. odsłonisz ją z powrotem poleceniem Show
  3. i próbujesz powtórnie ukryć poleceniem Hide, to dostajesz błąd:
{"exceptionCode":21187,"exceptionDescription":"Faktura jest już ukryta."}

co jest nieprawdą, bo jest widoczna

Zgłosiłem, może naprawią.

Inne uwagi co do pary poleceń Show/Hide:

  • można je wywoływać wyłącznie po stronie Odbiorcy faktury (gdy próbuję ukryć fakturę sprzedaży, otrzymuję błąd: {"exceptionCode":21169,"exceptionDescription":"Brak autoryzacji lub faktura o podanym identyfikatorze nie istnieje."}
  • ukryte przez Nabywcę faktury są nadal widoczne po stronie Sprzedawcy (u Sprzedawcy nic nie ulega zmianie)
  • brak jakichkolwiek zmiennych parametrów w url serwisów Show/Hide oraz przypisany im limit wywołań (20/10 minut) świadczą, że w zamyśle twórców mają służyć do jakichś pojedynczych wykluczeń.

Nie mam na razie jednak pomysłu, do czego ta funkcjonalność "ukrywania faktur przed samym sobą" może być potrzebna. Przecież jeżeli to program pobiera faktury zakupu z KSeF, to program też może decydować, aby (z powodu jakiejś pokrętnej logiki biznesowej przedsiębiorstwa użytkownika) niektórych z nich nie pokazywać w zestawieniach. Pod co do tego funkcje API po stronie serwera?

0

W dokumentacji do 1.5, pojawił się opis QR Code - cztery zdania, sklecone na kolenie. Jest też coś o ukrywaniu - tu również bez niespodzianki - żenada.

0 użytkowników online, w tym zalogowanych: 0, gości: 0