Krajowy system e-Faktur

0

Rząd przesuwa wielką podatkową rewolucję. "Wykryliśmy krytyczne błędy" - https://businessinsider.com.pl/gospodarka/wielka-podatkowa-rewolucja-przesunieta-jest-decyzja-resortu-finansow/kjq8tc5

0

Mówiłem, że ten system klęknie na starcie. A oni teraz mówią, że system nie dałby rady z obciążeniem. No pięknie, już myślałem, że w końcu będę miał z tym systemem spokój, a tu jeszcze lata walki, zmian, testów i nerwów.

0

Ale teraz tak szczerze, poprzednia ekipa nie widziała tych 'rażących błędów' czy o co chodzi? Do czego zmierzam, znalezienie firmy która zrobi audyt = przetarg. To potrwa spokojnie teraz kilka miesięcy, jak nie pół roku. W sensie czego możemy oczekiwać po tym audycie? Stwierdzą że było źle, nastąpią nowe rozmowy ,dialogi z firmami i może programistami (w co wątpię). I wszystko od nowa? Jakie macie bardziej konkretne oczekiwania wobec zmian? @Dzyszla wspominałeś kiedyś że proces wysyłki faktury w trybie interaktywnym jest źle zrobiony, że to można zrobić wszystko w ciągu jednej sesji co nie?
W tą stronę bedziemy chciei iść, w sesnie rewolucja czy naprawa istniejących błędów.

0

Cześć,
Miał może ktoś problem z wysyłką faktury zserializowanej z obiektu klasy utworzonej przez xsd? Wydaję mi się, że są blędy w xsd. Wygenerowałem klasę na podstawie
.\xsd.exe /c .\KodyKrajow_v10-0E.xsd .\ElementarneTypyDanych_v10-0E.xsd .\schemat.xsd i niestety, ale

<xsd:sequence minOccurs="0">
    <xsd:element name="P_15ZK" type="tns:TKwotowy">
        <xsd:annotation>
            <xsd:documentation>W przypadku korekt faktur zaliczkowych, kwota zapłaty przed korektą. W przypadku korekt faktur, o których mowa w art. 106f ust. 3 ustawy, kwota pozostała do zapłaty przed korektą</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="KursWalutyZK" type="tns:TIlosci" minOccurs="0">
        <xsd:annotation>
            <xsd:documentation>Kurs waluty stosowany do wyliczenia kwoty podatku w przypadkach, o których mowa w Dziale VI ustawy przed korektą</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
</xsd:sequence>

Powoduje za kazdym razem dodanie P_15ZK z defaultową wartością czyli 0 co w wyniku nie pozwala na załadowanie faktury. Wygląda jakby brakowało przy elementcie minOccurs="0". Dobrze to rozumiem?

0

https://www.salon24.pl/newsroom/1354650,to-miala-byc-kluczowa-zmiana-w-podatkach-w-2024-roku-rzad-z-niej-zrezygnowal

Minister finansów Andrzej Domański poinformował w piątek, że w tym roku nie będzie obowiązkowego KSeF (Krajowego Systemu e-Faktur). Dla części firm miał być obowiązkowy od 1 lipca.
Jak się okazuje, wykryto w nim "krytyczne błędy". Na razie nie ma nowej daty wejścia KSeF w życie.

0

Witam wszystkich którzy również walczą z systemem KSyF.

Mam dość spory problem z wysyłką faktury na środowisko testowe - może ktoś miałby pomysł co jest nie tak?

Utworzyłem po bożemu sesję za pomocą tokenu, który ma prawo do wysyłania faktur.

Faktura którą wysyłam wygląda tak:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Faktura xmlns="http://crd.gov.pl/wzor/2023/06/29/12648/">
    <Naglowek>
        <KodFormularza kodSystemowy="FA (2)" wersjaSchemy="1-0E">FA</KodFormularza>
        <WariantFormularza>2</WariantFormularza>
        <DataWytworzeniaFa>2024-01-01T00:00:00</DataWytworzeniaFa>
        <SystemInfo>Core-KSEF TEST</SystemInfo>
    </Naglowek>
    <Podmiot1>
        <DaneIdentyfikacyjne>
            <NIP>8268224131</NIP>
            <Nazwa>Firma Testowa</Nazwa>
        </DaneIdentyfikacyjne>
        <Adres>
            <KodKraju>PL</KodKraju>
            <AdresL1>Testowego 1</AdresL1>
            <AdresL2>00-000 Warszawa</AdresL2>
        </Adres>
        <AdresKoresp>
            <KodKraju>PL</KodKraju>
            <AdresL1>Testowego 1a</AdresL1>
            <AdresL2>00-000 Warszawa</AdresL2>
        </AdresKoresp>
        <DaneKontaktowe>
            <Email>test@test.pl</Email>
            <Telefon>+48 000 000 000</Telefon>
        </DaneKontaktowe>
    </Podmiot1>
    <Podmiot2>
        <DaneIdentyfikacyjne>
            <NIP>5210412987</NIP>
            <Nazwa>Telewizja Polska S.A.</Nazwa>
        </DaneIdentyfikacyjne>
        <Adres>
            <KodKraju>PL</KodKraju>
            <AdresL1>ul. Woronicza  17</AdresL1>
            <AdresL2>00-999 Warszawa</AdresL2>
        </Adres>
        <AdresKoresp>
            <KodKraju>PL</KodKraju>
            <AdresL1>ul. Woronicza 17</AdresL1>
            <AdresL2>00-999 Warszawa</AdresL2>
        </AdresKoresp>
        <DaneKontaktowe>
            <Email>logi@test.org.pl</Email>
        </DaneKontaktowe>
    </Podmiot2>
    <Fa>
        <KodWaluty>PLN</KodWaluty>
        <P_1>2024-01-01</P_1>
        <P_2>1</P_2>
        <P_6>2024-01-01</P_6>
        <P_13_1>120.00</P_13_1>
        <P_14_1>27.60</P_14_1>
        <P_13_2>0.00</P_13_2>
        <P_14_2>0.00</P_14_2>
        <P_13_3>0.00</P_13_3>
        <P_14_3>0.00</P_14_3>
        <P_13_4>0.00</P_13_4>
        <P_14_4>0.00</P_14_4>
        <P_13_5>0.00</P_13_5>
        <P_15>147.60</P_15>
        <Adnotacje>
            <P_16>2</P_16>
            <P_17>2</P_17>
            <P_18>2</P_18>
            <P_18A>2</P_18A>
            <Zwolnienie>
                <P_19N>1</P_19N>
            </Zwolnienie>
            <NoweSrodkiTransportu>
                <P_22N>1</P_22N>
            </NoweSrodkiTransportu>
            <P_23>2</P_23>
            <PMarzy>
                <P_PMarzyN>1</P_PMarzyN>
            </PMarzy>
        </Adnotacje>
        <RodzajFaktury>VAT</RodzajFaktury>
        <FaWiersz>
            <NrWierszaFa>1</NrWierszaFa>
            <UU_ID>1</UU_ID>
            <P_7>Opis przedmiotu</P_7>
            <P_8A>okres</P_8A>
            <P_8B>1.00</P_8B>
            <P_9A>120.00</P_9A>
            <P_11>120.00</P_11>
            <P_12>23</P_12>
        </FaWiersz>
        <Platnosc>
            <FormaPlatnosci>6</FormaPlatnosci>
            <RachunekBankowy>
                <NrRB>12124012401111222233334444</NrRB>
                <NazwaBanku>Pekao S.A.</NazwaBanku>
            </RachunekBankowy>
        </Platnosc>
    </Fa>
    <Stopka />
</Faktura>

Ogólne body żądania do /online/Invoice/Send wygląda zatem tak:

{
  "invoiceHash": {
    "hashSHA": {
      "algorithm": "SHA-256",
      "encoding": "Base64",
      "value": "zNNDYUgWGGZDpZ5l1Vq5dFuTlMxgmKmsqqe1ZJ/79HM="
    },
    "fileSize": 3249
  },
  "invoicePayload": {
    "type": "plain",
    "invoiceBody": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPEZha3R1cmEgeG1sbnM9Imh0dHA6Ly9jcmQuZ292LnBsL3d6b3IvMjAyMy8wNi8yOS8xMjY0OC8iPg0KICAgIDxOYWdsb3dlaz4NCiAgICAgICAgPEtvZEZvcm11bGFyemEga29kU3lzdGVtb3d5PSJGQSAoMikiIHdlcnNqYVNjaGVteT0iMS0wRSI+RkE8L0tvZEZvcm11bGFyemE+DQogICAgICAgIDxXYXJpYW50Rm9ybXVsYXJ6YT4yPC9XYXJpYW50Rm9ybXVsYXJ6YT4NCiAgICAgICAgPERhdGFXeXR3b3J6ZW5pYUZhPjIwMjQtMDEtMDFUMDA6MDA6MDA8L0RhdGFXeXR3b3J6ZW5pYUZhPg0KICAgICAgICA8U3lzdGVtSW5mbz5Db3JlLUtTRUYgVEVTVDwvU3lzdGVtSW5mbz4NCiAgICA8L05hZ2xvd2VrPg0KICAgIDxQb2RtaW90MT4NCiAgICAgICAgPERhbmVJZGVudHlmaWthY3lqbmU+DQogICAgICAgICAgICA8TklQPjgyNjgyMjQxMzE8L05JUD4NCiAgICAgICAgICAgIDxOYXp3YT5GaXJtYSBUZXN0b3dhPC9OYXp3YT4NCiAgICAgICAgPC9EYW5lSWRlbnR5ZmlrYWN5am5lPg0KICAgICAgICA8QWRyZXM+DQogICAgICAgICAgICA8S29kS3JhanU+UEw8L0tvZEtyYWp1Pg0KICAgICAgICAgICAgPEFkcmVzTDE+VGVzdG93ZWdvIDE8L0FkcmVzTDE+DQogICAgICAgICAgICA8QWRyZXNMMj4wMC0wMDAgV2Fyc3phd2E8L0FkcmVzTDI+DQogICAgICAgIDwvQWRyZXM+DQogICAgICAgIDxBZHJlc0tvcmVzcD4NCiAgICAgICAgICAgIDxLb2RLcmFqdT5QTDwvS29kS3JhanU+DQogICAgICAgICAgICA8QWRyZXNMMT5UZXN0b3dlZ28gMWE8L0FkcmVzTDE+DQogICAgICAgICAgICA8QWRyZXNMMj4wMC0wMDAgV2Fyc3phd2E8L0FkcmVzTDI+DQogICAgICAgIDwvQWRyZXNLb3Jlc3A+DQogICAgICAgIDxEYW5lS29udGFrdG93ZT4NCiAgICAgICAgICAgIDxFbWFpbD50ZXN0QHRlc3QucGw8L0VtYWlsPg0KICAgICAgICAgICAgPFRlbGVmb24+KzQ4IDAwMCAwMDAgMDAwPC9UZWxlZm9uPg0KICAgICAgICA8L0RhbmVLb250YWt0b3dlPg0KICAgIDwvUG9kbWlvdDE+DQogICAgPFBvZG1pb3QyPg0KICAgICAgICA8RGFuZUlkZW50eWZpa2FjeWpuZT4NCiAgICAgICAgICAgIDxOSVA+NTIxMDQxMjk4NzwvTklQPg0KICAgICAgICAgICAgPE5hendhPlRlbGV3aXpqYSBQb2xza2EgUy5BLjwvTmF6d2E+DQogICAgICAgIDwvRGFuZUlkZW50eWZpa2FjeWpuZT4NCiAgICAgICAgPEFkcmVzPg0KICAgICAgICAgICAgPEtvZEtyYWp1PlBMPC9Lb2RLcmFqdT4NCiAgICAgICAgICAgIDxBZHJlc0wxPnVsLiBXb3JvbmljemEgIDE3PC9BZHJlc0wxPg0KICAgICAgICAgICAgPEFkcmVzTDI+MDAtOTk5IFdhcnN6YXdhPC9BZHJlc0wyPg0KICAgICAgICA8L0FkcmVzPg0KICAgICAgICA8QWRyZXNLb3Jlc3A+DQogICAgICAgICAgICA8S29kS3JhanU+UEw8L0tvZEtyYWp1Pg0KICAgICAgICAgICAgPEFkcmVzTDE+dWwuIFdvcm9uaWN6YSAxNzwvQWRyZXNMMT4NCiAgICAgICAgICAgIDxBZHJlc0wyPjAwLTk5OSBXYXJzemF3YTwvQWRyZXNMMj4NCiAgICAgICAgPC9BZHJlc0tvcmVzcD4NCiAgICAgICAgPERhbmVLb250YWt0b3dlPg0KICAgICAgICAgICAgPEVtYWlsPmxvZ2lAdGVzdC5vcmcucGw8L0VtYWlsPg0KICAgICAgICA8L0RhbmVLb250YWt0b3dlPg0KICAgIDwvUG9kbWlvdDI+DQogICAgPEZhPg0KICAgICAgICA8S29kV2FsdXR5PlBMTjwvS29kV2FsdXR5Pg0KICAgICAgICA8UF8xPjIwMjQtMDEtMDE8L1BfMT4NCiAgICAgICAgPFBfMj4xPC9QXzI+DQogICAgICAgIDxQXzY+MjAyNC0wMS0wMTwvUF82Pg0KICAgICAgICA8UF8xM18xPjEyMC4wMDwvUF8xM18xPg0KICAgICAgICA8UF8xNF8xPjI3LjYwPC9QXzE0XzE+DQogICAgICAgIDxQXzEzXzI+MC4wMDwvUF8xM18yPg0KICAgICAgICA8UF8xNF8yPjAuMDA8L1BfMTRfMj4NCiAgICAgICAgPFBfMTNfMz4wLjAwPC9QXzEzXzM+DQogICAgICAgIDxQXzE0XzM+MC4wMDwvUF8xNF8zPg0KICAgICAgICA8UF8xM180PjAuMDA8L1BfMTNfND4NCiAgICAgICAgPFBfMTRfND4wLjAwPC9QXzE0XzQ+DQogICAgICAgIDxQXzEzXzU+MC4wMDwvUF8xM181Pg0KICAgICAgICA8UF8xNT4xNDcuNjA8L1BfMTU+DQogICAgICAgIDxBZG5vdGFjamU+DQogICAgICAgICAgICA8UF8xNj4yPC9QXzE2Pg0KICAgICAgICAgICAgPFBfMTc+MjwvUF8xNz4NCiAgICAgICAgICAgIDxQXzE4PjI8L1BfMTg+DQogICAgICAgICAgICA8UF8xOEE+MjwvUF8xOEE+DQogICAgICAgICAgICA8WndvbG5pZW5pZT4NCiAgICAgICAgICAgICAgICA8UF8xOU4+MTwvUF8xOU4+DQogICAgICAgICAgICA8L1p3b2xuaWVuaWU+DQogICAgICAgICAgICA8Tm93ZVNyb2RraVRyYW5zcG9ydHU+DQogICAgICAgICAgICAgICAgPFBfMjJOPjE8L1BfMjJOPg0KICAgICAgICAgICAgPC9Ob3dlU3JvZGtpVHJhbnNwb3J0dT4NCiAgICAgICAgICAgIDxQXzIzPjI8L1BfMjM+DQogICAgICAgICAgICA8UE1hcnp5Pg0KICAgICAgICAgICAgICAgIDxQX1BNYXJ6eU4+MTwvUF9QTWFyenlOPg0KICAgICAgICAgICAgPC9QTWFyenk+DQogICAgICAgIDwvQWRub3RhY2plPg0KICAgICAgICA8Um9kemFqRmFrdHVyeT5WQVQ8L1JvZHphakZha3R1cnk+DQogICAgICAgIDxGYVdpZXJzej4NCiAgICAgICAgICAgIDxOcldpZXJzemFGYT4xPC9OcldpZXJzemFGYT4NCiAgICAgICAgICAgIDxVVV9JRD4xPC9VVV9JRD4NCiAgICAgICAgICAgIDxQXzc+T3BpcyBwcnplZG1pb3R1PC9QXzc+DQogICAgICAgICAgICA8UF84QT5va3JlczwvUF84QT4NCiAgICAgICAgICAgIDxQXzhCPjEuMDA8L1BfOEI+DQogICAgICAgICAgICA8UF85QT4xMjAuMDA8L1BfOUE+DQogICAgICAgICAgICA8UF8xMT4xMjAuMDA8L1BfMTE+DQogICAgICAgICAgICA8UF8xMj4yMzwvUF8xMj4NCiAgICAgICAgPC9GYVdpZXJzej4NCiAgICAgICAgPFBsYXRub3NjPg0KICAgICAgICAgICAgPEZvcm1hUGxhdG5vc2NpPjY8L0Zvcm1hUGxhdG5vc2NpPg0KICAgICAgICAgICAgPFJhY2h1bmVrQmFua293eT4NCiAgICAgICAgICAgICAgICA8TnJSQj4xMjEyNDAxMjQwMTExMTIyMjIzMzMzNDQ0NDwvTnJSQj4NCiAgICAgICAgICAgICAgICA8TmF6d2FCYW5rdT5QZWthbyBTLkEuPC9OYXp3YUJhbmt1Pg0KICAgICAgICAgICAgPC9SYWNodW5la0Jhbmtvd3k+DQogICAgICAgIDwvUGxhdG5vc2M+DQogICAgPC9GYT4NCiAgICA8U3RvcGthIC8+DQo8L0Zha3R1cmE+"
  }
}

Niestety po wysyłce i sprawdzeniu statusu po chwili, dostaję błąd 21417: Nieobsługiwana wersja dokumentu.
Ten sam XML załadowany przez ich UI jest walidowany bez problemu.
Szczerze mówiąc, sprawdziłem wszystko co mi przyszło do głowy, i dalej nie działa.

Z góry dzięki dla bohatera który wyhaczy o co chodzi!

0

Co z numerami NIP sprzedawcy / nabywcy którzy są spoza polski ale w UE ? Jak zdefiniować taką fakturę ?
I posiadają inny NIP niż nasz krajowy ?

0

Witam, w końcu przebrnąłem przez wysyłkę faktur, teraz czas na ich pobieranie, wiem że /online/Invoice/Get/{KSeFReferenceNumber} ale ktoś wie jak pobrać ten numer Ksef którego faktura została nadana na dany numer nip ?? Na stronie jest to w lista faktury > faktury zakupowe

0

https://www.forbes.com/sites/aleksandrabal/2024/01/21/polish-e-invoicing-realities-from-delays-to-dilemmas/?sh=b2b5aa85ec0d

"The ViDA proposals aim to standardize e-invoicing practices across the EU, making it mandatory for e-invoices to comply with the EU standard EN16931 for cross-border..."

tak ze ten "Miś" co wyprodukowali pojdzie do kosza - moim zdaniem xD

0

Hej, może też tak mieliście, że jak wysyłacie do ksef wiele faktur w jednej sesji co co parę faktur dostajecie Nieprawidłowe wywołanie Status: 400 albo Limit wyczerpany. Wysyłam takie same faktury - jedynie nr i data jest inna i nie jestem w stanie wysłać nawet 10. Generalnie robię tak, że jak nawiąże sesję z ksef to ją zapamiętuje, przy wysyłaniu faktury sprawdzam czy jestem online przez /online/Session/Status/{ReferenceNumber} jak tak to wysyłam przy użyciu tej sesji jak nie to nawiązuje nową.

0

Od 22 do 24 stycznia 2024 r. będą prowadzone prace konserwacyjne na środowisku testowym Krajowego Systemu e-Faktur.
W tym czasie mogą wystąpić chwilowe utrudnienia w dostępie do środowiska.

Co oni tam dalej grzebią <Załamka> i komunikat znów dwie godziny po nieplanowanej awarii, którą nazwali planowymi pracami?

0

Ale ta decyzja derogacyjna, o którą zabiegali (i wcale nie tak łatwo otrzymali) własnie miała dotyczyć odstępstwa od tego standardu i gromadzenia znacznie większej ilości informacji i realizację szerszego zakresu, niż wynika to z planów UE. — Dzyszla 2024-01-22 11:37

Wielokrotnie ci chłopcy, bardziej papie ... co do biurokracji są wiele bardziej unijni od Unii, paradoksalnie mimo propagandowej wrogośc idei unijnej.

To się łatwo ciemnemu ludowi podaje każdy krok zamordystyczny "unia tak chciała", dodając "nasz" zamordyzm do minimum unijnego. A że przy implementacji jakieś etaty w zarządach dla BMW ... dżentelmeni o pieniadzach nie rozmawiają

0

Czy ktoś może mnie oświecić co kryje się za kodem błędu "Sprzeczny typ żądania wysyłki faktury." przy wysyłce /online/Invoice/Send

Wysyłam ich przykładowy plik FA_2_Przykład_1 Tak wygląda wygenerowany json

 {
    "invoiceHash":{
        "hashSHA":{
            "algorithm": "SHA-256",
            "encoding": "Base64",
            "value": "faLWJlMAik8J39zKNq84qU1j3MKNM7nry1Z0c6w0CLo="
        },
        "fileSize" : 3261
    },
    "invoicePayload":{
        "type":"encrypted",
        "encryptedInvoiceHash":{
            "hashSHA": {
                "algorithm": "SHA-256",
                "encoding": "Base64",
                "value": "r1m0OqOZBlEmerx2TjXexKzrwQwo0DdVL6K+p9f1Tqk="
            },
            "fileSize": 5888
            
        },
        "encryptedInvoiceBody": "XxkBA2ri1ekZ73Y9305Wa+iLpdEyBMhjZSD5vRNKEeFEKyaG0EZNRhEEC/3Ma3elRRrKwtL2aC8yLKR01BwIe8h/Lg2imIV/isqtmTbYeIekT1btU0M/MlmS8DP1FdFr3ET+oQzSQltgeJb43e4U1XE4Ck5HOGx9OtDvXmvXz5mTGOUmfaYzz7uza1KZXzZNqF2EAmYhhAOwtH6fVBRN70X/+k8p8hSs1tz6Wror2/vjd9m8XhwkZ5ExMnA2JMXo3pAO3NqGNE6IMMNcpiqE3SVl36GLqu6Vk//xSCBBlfVovYMvdVxLCb1pqXKiCFVWeRI6iHzw+ZadRIvDTOJx7XZSMkW6msTUfLffKWxOardvvxHaP9mFhqIcHbL742o6W8XkkyFdkuraMSdKlrxoVOiCsRBBAEK4ERFBQdKNne/3oKQ24dAyCe8JQWJ573ORIS5OhbyXo/cZ0FqYDcTTzs/aU4PA52cRuyvrB+yUnSphJd0uM1NCEbRbmBnxL/6AxeOgFYdXoOJrRXkhSRQTDAvOZkPEd40+7EqmuwjozZGzQg6lFF4sT10XoH7SpYu1H6Ij7H/suAZhf6NQJiLvZbOvXiPybLIfVbs0m+tqUQd7YaUhTFGQYWnStU3ewri1a+TvTHKMU2bkSGHCb3vz/JlQHr4X4sjYkR2uGY5PIIQfhc1VC3wgFMeDks4TNwJiD/WdZ5cLgAwBJHXKiMFJ5NV8ZnV0esXbXeswuGeAcmDnVL0AD4XpxxFxvIpBGYaRn54oedrcOwXsFwjb+Krn3/9UH9YpgRyTcnlNstnPdXZQOK9/PL0kBSoyhBghb6KF6+D3ds7ulr8t2EJroaoskiPUc8prCR3E6E2WgcgSmnRVM268nTl0mmnFu3GYVP6m569a9JVvPmLpJYCUb8EWKsUXfuFbMxvZU6PMHDM8K1kPQN5T0/eSyhjGYLrqBNUeqJ5iC6NiVK6QEPyZQY2n/hBsTcr++9MqvQ/5NrKDTGNvKP4VFBQl9QhV6fnvbWNBpommTCBlj/l2yQwC78u7i8PlYywhANYSgFBDeoJw9p76gyMwp8gC2CZjq9UDlOhxYmiPJ5s4d79HB6wHKbd0i8HwyPbXTuSqfBor2ibIckvNhIvQmPi+qimKvk2dkV380ug/fb2fjvGWIR5vTwtTlbP7vhp5RyEOuFXrN253ak/l8qkk9CKAjD/j8kLLOIh9O65oXSGigEv6mPdfxAH6vezubJImgibpuorIMPrdve/sAqIIu1rDvKuM1SsfUyk7uayoQa7ESyonwb5gjqiY9afPMfQ2tUJPut8fhl901pKofracDIBJLJYLcNPee8447OS7Z9Tz5dXwCLcGyEGGFj8GBevmvAO9BWj/mOs8ecdAH6voMDjgl288LQfLSaW24e0k45pbNHubSvrtAJ3C6v9J15Fpx4ZFewidEFBIvN9nTh9en6hr5bYmQVn4vpZfFWJnosBZMG9vrxnECXEyBjD+rNeSWxDhadPzzY44GDSem4HxLyh6jnys0Ziv5IhRIr0S9VjFST91SQJkqhBXjb1mmNqVHJz/QEMYBMpr9ivv0WmqWE05CVCjv/NxNZA2z2D9E5bSoBx2zICTPhnm45HJzTKfYOtFV6VlYx+vnVDZ1RZyyCRpKG1wrpnyAW8mjtuLkQs+dE4st1FCTDqwB5UmSboWnyaLbCUjZDNGlSlrjR5js/yYwRLjCIvY5K/wGeYBf3XaRDM4BIQxBHmb0532mHguhBEHAAwTPp8UAaWlayvuxQROcWd3M0qmqNI1ojvVG+I98J6uvY/bI1UD/iY8kql+O+p72vnYL/H/UvJbwJJadQ1Pbgf3cUbcxcKAREzxOiSN1RAk5c+RkghKmLDBYvpKJav/zj8gt5zLYpIv4BZCTR81tdoTi66hAWHdpK1ERd5C7F1MPqVE/hsYVuF67vGr9ajRW68513WDcExE0aib2W4oH45tKTQ9vp5ext492RkmnkDqFvOtTdfrsU8V+537h4IV8c4nsHrMROxuOey1N7SgMG7G4qo9viXnK/RwCkOx77y2ykP9ps54VqnPNSjKKaMT4BLQuXfjtPlxbSa0nJFqOBT6Km6R79g0kC/WPDWPXMZF2/3t6Ms31B4Ukf9GQsXxIui+Ht05wdle7Mg3aoIR9q01aTMI8SKAgES+mEeWkC8MjtfFczloQpaFdTLrPZr/XgjnGO1fCpaTPDyuRx/SwSlDr4gqubSwjkq2Slv+Hlus0PEvkl08EmXPjHiJvW7Z5u28dY2WuT7QfcvKqZ4NoSp4Yw+gDkmmo0Qci8/jl+jK33a7SEtTZ63sQKA42rkmWTlgPYEqFCfH5ir2qPg56a2ywd0c3uacJGon/cxmLcQGYMraiY+4pi8j2gXaycFm3E1HdI+VlwvqAjnCZ3GaqMF0kJmBZmbRHwdPk4lp/oa5MPfhyJ8aZW1Q6t6HyStugOYkBQxbVDsaP7GZVYwJ7QfD7/RXDhz7UpTFpmVM/wO0WIPN1HS4ryeHosXdXEjB1drf6zvbHaztg7BZqH1+sfunljSk0XiUNRUmsxQRwZi8ope9ZQ0jITU4UwaPj8QJQi4sdpcZaIpU8mI+wqQ0DRtRL7+wfpyXFol6/ovYvphEDox/WdtWSVJrHjNIAYAeSd1+E67uyyXc3o3BwHdpp4FbmYDvzp/hzzCZgVHmfveeU2YdEiKYek4bcDNDXPdHojlbxBs/7ReOb+LZN2xFG6q2Nr6yBUM8Y49zSCGO/UjijDTUd4IVZz3dhgjbkll4cYu1DKbUGBPmMZS9oMuKAqwPO76WL9mG5Nf6i0fCLLFQq3N2tMBnj/dxa2u8pU1OYK3B+AJZZO8wE/t4nDJjxBfN6ufRT7ekC19Z+cRA2lX2jFqbkqPsZlLS6IeeMkBgWIQJWQp28Pc48tBhRU9QnLaMXolu5mCEH8KPIu+AnTnt0vGiFrZ9blQrnPxCvV3TCttgox6oxO2IDGc35x/PhwcZkSp7NnBpDSVo5UNor10HW7Prfil1RksnHqtPQIdsxGiatHJ7swaZSJvIrEYISkvaJdgnQ8o5eIdHLEl12IFq88LpUsk7m6h3GFjP7bB6/bryw5Y/7gZFgH2VMTl1RrTzLBNeE0EiDHzMwRQu4+HoqC+8itQPPC47pOa8AnnwZNENRvW5f4ccQX7gpPMGztcFsAUmXaH6pWTrWwhgOJNyT0WzC3l2+mRZkr2/mYrDsLfhMKLh/WOy7Y5p9xMA9/tc4VCeBDHyXQ+M5QB0rcT4j5Ev4T8dCMdRJ10v0AvuX7AasKZxvtCl8SnPB9drmqBU9DEJz8mdu9MThcOWw21SpGQpDc4oc7DNEf9DU4vyvZqV8azRhVsJY1z+yezgohqt7vMVIzMbTn8wTVQk5o1xhXAG6IJyRSK7DxaJlazkvZeYZqyhPDNFWqXqdd8mi1ftVnmGsQ3FD/zus3xu9mrotqJyYV+cvjFkuxaAEKswjIssdJ6eSo0JMrSgjIjooXWE5jJJooqufHT9OTpc1wMD2X8faD9tsf7uM+dIhLVDgD2LLeDVsOVql3VWTjaGheoZttTylcltqwOyGSmpqp2YXoW1BUySObbUyt8DLwS9JEGSa9TToDKLWKr1LJm7eoFEvciwtybGOFS8brGheWTuUxi7NsGuSUYr5CA26ouAOeabex0hrsW8VL7BtYzRqXkLkJ07C44+JExkil/zHRVNfMvUghrAI5Fthbm/Kw8bWWom1plHJhBm/EeTGb8vHw1X3S70m6KfltEPknBljdca8WBeAAxmDmYjQkVP2rr5aBDwUIjaqy3q+fmR1gxp3mI1EvvEFZ0o+AmBsITeBKos0jVs77jaB/8R1iFBdGvDQdbg+RKjWF0Ox+Z7QBsWwK8bHDMzUkSDyNY1phkCE1Y0eHkwSlqomLJbVljtN/nWX18EJdQBtimswySbjb0Y/w+sKsVri2lKiBZUGDoJ/8IZjzqSnTDhMj8eTAjwVCqYSOGgToRllxoYHDBGwr99Eco1aVoP7XteAe7FhlX+nOrxCKozacjfPJuQnKkDoHzwIURSvmt1uzuvFCUuKX0AgwgE69wXjucxd+vcRmldCME56rO3vAC+Gt2STRBWd5kvN0WBtm6sTfL12RO2U4MB8WFhQzlbUZeA3LOlpFTIKFN7EJg3WgXlhp/7nm607to+6NRvVVevDwE9Yw1qavKVoJ1XUTlbseEv6XLoyN5F41kPBJIUE045m9huyfudpbkYX1IyCrj3GiOwEKn2kvXu0heH7M7EeHDBePJy4nhfTsOSNFFx/+cOqejYr/f0DNTmCMVRKaxMwD/t3aOxRL6OEMHUZod+FLIV5Bz4gx2YHSNfIJcJgSDkY/QU3DjXNE40gGStjsiWhGcSdSGKxWj7HQMWqUPYqWbHgPe1rwc8xwb5qZ+ed8MTDmpDHMOWCYBKjEFJAmFOkvPzh1r15oJZL9A67qO+A8vzad8Va4F0GD6Ti2kQNcEHISZtIrV337mRw0TMEJVGdtcjjxOd35Lat78RDCcPqsOO0ILBBRCbw60EBU2wwmQOi9lQ94luG4v7ytz45HQrtlrba7Ov4sMRwrCBRAbtUHnFYljwHR28Q/d1g1r2Y27O1wtI++oAdRCK74rvToEniltLQQl5SnjIuo7wQPKNbBZV2m4VMTs/LsTAPx5OML+ebes+qf8Fg3mpQlRreqd0UqmE33J+j2KWOLvcK5vG1D+HIXkwaUfpJKCNx6rbCBph/rtZ+hZpmXU6Q6nAHIGe8nQOGTZVwkObhSEyvhfviH5G77xADWyNNkxvOVreN0Qhk+2fkZ9veTYbXVc+Iq6MlAUw1kTO2ny7M7Fk9St9nfk4cX6yk6dApzDFOFmjR60NQWXWFGMn4/AU3Jz0YMhhfSpw4NxcyVyc3VXUyLu9nNQ/Zj6HTSCYLR421iEJROGPd+FctipWWlTlapSf0psdnuK5iT2NuTl2/4dfXuMiramZ9cSsa2u5IbhrSbCy7X7X//mlogeJDf+sDsmrj5USLWkGwrTtl8epDD5HWUd9daeaBu8ciIHLQSpd+d0shbY1mNVikDH5UzmVRC81Yq3AEznhY5hvZj3TgsXZlPBQVRfmo9OE2LYZ4Zel9ZbDN+QkTjBL7/TeYemA2NH7DgmJT1ZpJiJ2HsLG+2OA+fyqFvnMnFJ47DSARXL1f9sl+x2Rn6J5raanvbeBPQJUCsQPw5EUwMoH6CpCVdqeg7rH5+IvR7G8D3t4frRFSVa1pIV8o+UoE48dWPqQS+jUZxqH5S/Tl3Grd/xXvvR2//B6CZNhjOCQ15CJKtcL7ojl73WT/CxkE9Bp9NAeP5r8f8xlsa6KZsNtInSmNrpYiKT9FSE8EV/my+9SJGrAKSttiBgCXgdkMX1wYr6z1G/ev7IA99IZbqYC45uE7F3fvqOUjChoSFTMEUJ+xAdl9pFrwjbLdIAjGSi4+unAMRSByQ5yVKTe4bnu9gxl5fyHKO61DIvwadEA2qZh/MevKzNYG5gK/AHrkQ3Mwhp3YONAznvnIgLBnNjQXrRwa6o+NC3j4A8v86FE27tnlUGOB9PJRVHPmovtIQMa+XxoFX1K2jyxyOUru5J+BrKHGziJ+XmxnK5LX6Qov4OcCLxa2PBbBp1u4PWOrhAOLR4Sk1arvmqsPjTprOXPF6wsx6FGy4uxDnV764amGmcmv1t7QExHrnJQoeP+u5TM58/6WCRO7p1stXNnaWdSos/mYnVNPIouLuKARg19zdDm3OSC7/tc8ScBYWsgnQgj8mDSQKYNdPXBFbKj7Js2r3HnBNSXLMy9ZSYIZRtrCruahu3x9riILf2DmS/UMa8+JxWsDfjTFxDryWI3zZzh8e0qE/qTjz+hT9fp5rKO3xP8XqslaUdgDMK6hTYgaT7P442BOx7iQYvOQvedlsiDZrep65sXZqNnQQQxT3lw0/OjrLSBFZl5k/BdKuROtaOKdqeGNQ3HI23zDZNS8n454YS6eph9iHN+cbdAGqLoPWM8WOR2fCPXKFlBniuMtVd4lHqkCrJ9Uq8bFRj8Au1mD8BGTR02TdnZPDHyKupT3lMd5CJhcWi1zmT6dlzp5QqRfGsZcjbRTWKJ8J1FIRhsjSD3qXJnaftLQeFQQ9igTdoi8N32rDZZmi0N/D5TGOs9cW6KqmNiZMQ09wkINyYXW1lYWDI7b1aDz5oLkWAEQ3AM76fMURWs0lK+bbcC6WMWlRuMjodxXmI+kglb8NOJn0AUVNkE5qssQd73LeW5CtWcMQrCpHnBr040wlXwKZrVdXEj1KPzPIwu7weQISCMD1S/R93lQWN6L9zB0mAm6fU0jyeWt6iLhBe2PZEQLHmyodyhzX2OvO7hpqUqrU/GVvjQgz6/FmKDPIU2nM/yKbf5iesemxVDvLdoUvqK22xT1Xv2FBVpsjAaaqdC1i7pnBoCMwQKjLBEevjPwN+3acg7NPeyS8bmW1lypKiOMfRNdEmB8TYFwGEiP/M53/hFYqPLHpY2hqx3SKn97jlQUrQ0FlhW2LCdYHi4mpgcLAc+JCU+O5D57hKwytqDjb/PV2mJSrVrEGrOsPqE7nPZPCF5k78W2Teac8DNA8CP8+ceTvruYNGokQgJEdIfcQ7aOyH6oyOPeNGUxo0X1fnVDrvf1N1FCL0vCsEfzf7pO1HfPDSis8tZGt3b9UtwZmUwrUJ//3sLiBic/5wk2eqKe93POzEhG28ieXazPLNDuM3aFB+KKaQSV9UXjkG+q3uy5AP1+JHFlySwTSP1eBLVkTj8iGzOvmaVAj26uRP1hN5fVLEtUkggRAlf3wR1dA25HAeJNyDPkCCNbaIj3ZwxBMonkGP07AehdOw/7R30RKudtaTtC1lzhJ/AW7Wt8+XPsCWWWoqoHWdUDlT7FgpQTF3RfpXj/CwtCeBdF6w9oAw0OJgcCzRhEPgqGNE9K/92r751USkfwt3SkIC6JXEDQX6w7VsHhB8Q1BfmYodtdFRT5idE3lbt+xjmamh2U2gR6Q+JFYBFkzUM6YajZIxDgDtvB27pbtIJ6qsURw05aG4uSNevE3N9Gmb0/hiuoEJlkX7Iwv/OA/z0X8Pl/w22Rj6BjVP0lP7BL4Zl5DrovvA7l9cJ7iUwBTqp7blpmVobDmjIO+44Icye+6hDHLdPyQfllJwvn6j41YA3EtCkNLeNaAizVcbd48OoINFNnplowcFCNNtwOH+RA/TVg0jKQsUWgWP7F3p6Mq54D1A0zNeWtDW9fSR+9Gn8U7ZJp/XC5pCZeMX2z24lWpcPlcVX6ZOtbQ5upttLsohv7F/KA/ehR7MIPWpBTruBSHCVAtrUC72e9SjNYXJpx+3piyj1huY6FpBaFRjjoD1Hnpeqd9Ulz1kORDaeQZU0UCCNK26hKCYeJBhah6d+HiVn6ITlxvuGIuuvSKW/rYgSsyMIP2I9gZW+JRtVTLL7gsUNVAdUPKKAk975TK+3Wt+SZV9olL/8cYAvWLhJK45DEK9eO/jkdXrrh59LRPLzQbH8RelQlINMSvY0hfS4gNL2Ptofznwyg+LdObnx0maoThJNLdj4ir1xyPnfnpKUGITFSnJQLIgQgK9IK+PRijtRM45x7Z9Y2oPBm505ycdIuBsdo7SCgi0dm9O4/OJqvfYpp3dG1Z2qBVdEE89FQ/PZLT8QRXAc15Y2Tse3cK78+z14naGn0v+aBic6jpKMo12ST1H+zD6voTk8ohrt/3Xbf2Ltp6UKVaru9sDdm+scQKGP/mWf3OiIj1YmDqxn6egJs7dPJHE4l9RsmYHvr9eySwE8+Y14nVsGnPldOwkbr7A/T875K2Q6cwMmi5azJkU="
    }
}
0
"<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\">\n"
  + "    <ns3:Context>\n"
  + "        <Challenge>" + acr.getChallenge() + "</Challenge>\n"
  + "        <Identifier xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"ns2:SubjectIdentifierByCompanyType\">\n"
  + "            <ns2:Identifier>" + this.nip + "</ns2:Identifier>\n"
  + "        </Identifier>\n"
  + "        <DocumentType>\n"
  + "            <ns2:Service>KSeF</ns2:Service>\n"
  + "            <ns2:FormCode>\n"
  + "                <ns2:SystemCode>FA (2)</ns2:SystemCode>\n"
  + "                <ns2:SchemaVersion>1-0E</ns2:SchemaVersion>\n"
  + "                <ns2:TargetNamespace>http://crd.gov.pl/wzor/2023/06/29/12648/</ns2:TargetNamespace>\n"
  + "                <ns2:Value>FA</ns2:Value>\n"
  + "            </ns2:FormCode>\n"
  + "        </DocumentType>\n"
  + "        <Token>" + acr.getEncryptedToken() + "</Token>\n"
  + "    </ns3:Context>\n"
  + "</ns3:InitSessionTokenRequest>"
0

Przy plain niestety mam błąd struktury json. Jak powinna wyglądać definicja szyfrowania w takim razie? Nie widzę tego w dokumentacji.

0

Mam dziwne biznestowe pytanie. Czy faktura korygująca może mieć więcej pozycji od faktury pierwotnej?
Bo to że mamy np. w pierwotnej 3 pozycje i potem zmieniamy np. nazwę towaru albo ilość towaru czy nawet "zerujemy" pozycję to nie ma problemu. Nadal są 3.
Ale co w przypadku gdy w pierwotnej fakturze mamy 3 pozycje a w korygującej 4 albo więcej ? TO możliwe? Bo w KSEF jak chcę to zrobić to podczas dodawania kolejnej pozycji w fakturze korygującej automatycznie otwiera pozycję w fakturze pierwotnej i nie rozumiem :D

0

Dziękuję za waszą podpowiedzi. Udało się dzięki nim stworzyć poprawnego json.
Mam jednak jeszcze pytanie o UPO. W dokumentacji mamy zdanie "Zamknięcie sesji interaktywnej powoduje wygenerowanie UPO z listą wszystkich faktur przetworzonych prawidłowo i zaakceptowanych." Jedyną metodą jaką znalazłam jest /common/Upo/{ReferenceNumber}/{UpoReferenceNumber} . Zakłądam, że ReferenceNumber to ReferenceNumber zwracany podczas zamykania sesji, ale gdzie znajdę UpoReferenceNumber?

0

Czy API KSEF umożliwia odczyt uprawnień nadanych do samofakturowania przez firmę B firmie A z perspektywy firmy A ? Chodzi o weryfikację uprawnień przed wysyłką faktur w trybie samofakturowania.

0
mbapex napisał(a):

Czy API KSEF umożliwia odczyt uprawnień nadanych do samofakturowania przez firmę B firmie A z perspektywy firmy A ? Chodzi o weryfikację uprawnień przed wysyłką faktur w trybie samofakturowania.

Będąc firma A chcę sprawdzić czy firma B, firma C, Firma D ... nadał mi uprawnienie do samofakturowania.

0

Szybki post na temat pobierania statusu przeterminowanych i/lub zamkniętych sesji z ksef-test.
Mając w bazie danych zarejestrowanych ok 1500 identyfikatorów sesji, dzisiaj odpaliłem program,
który w jednej sesji miał za zadanie pobranie statusu tych sesji oraz w przypadku, gdy dostępne było UPO, zapisanie go w bazie w powiązaniu do korespondującej sesji.
Proces sprawdzania takiej ilości identyfikatorów zajął 6 minut. Czy to szybko, czy wolno - nie jestem pewien, w którą stronę się skłonić.
Ale jak łatwo policzyć:

6 min x 60 sek = 360 sek  
1500 sesji / 360 sek = 4,16(6) sesji / sek.

Wynik nie powala.

0

Witam wszystkich.

Pracuję nad integracją KSeF i mam problem z logiką biznesową działania aplikacji i jestem ciekawy jak Wy rozwiązaliście problem, albo czy macie jakieś sugestie jak można byłoby obejść problem z którym się zmagam, albo czegoś po prostu nie wiem, coś mnie ominęło.

Mianowicie wytyczne z grubsza mam następujące:

  1. Nawiązanie sesji
  2. Wysłanie X faktur.
  3. Sprawdzenie statusu faktur - czy numery KSeF zostały nadane
  4. Pobranie UPO na żądanie (przez usera)

Chcemy mieć pewność, że przed pobraniem UPO dobrze śledzimy status faktur, wiemy które zaakceptowane, które odrzucone, które jeszcze się procesują.
Więc problem dotyczy tak naprawdę punktu 3. gdyż mamy dwie możliwości sprawdzenia statusu i oba z założenia działają tylko jeśli sesja jest aktywna. Więc stawia to pytanie, jak sprawdzić status faktur jeśli sesja jest zamknięta lub po prostu zdążyła wygasnąć?

Pierwsza możliwość : /api/online/Invoice/Status/{invoiceElementReferenceNumber}
Jeżeli sesja powiązana z tą daną fakturą wygasła lub została zamknięta, otrzymujemy tutaj odpowiedź z błędem:

"exceptionDetailList": [
     {
        "exceptionCode": 21154,
        "exceptionDescription": "Sesja interaktywna zakończona."
     }
]

Jeśli odpytamy ten endpoint z aktywnym headers.SessionToken wówczas zwracany jest błąd:

"exceptionDetailList": [
     {
        "exceptionCode": 21164,
        "exceptionDescription": "Faktura o podanym identyfikatorze nie istnieje."
     }
]

Czyli SessionToken służy tu nijako jako parametr wyszukania danej faktury.
Czy zatem jest możliwość odpytania o konkretną fakturę, jeśli jej sesja już dobiegła końca?


Druga możliwość : /api/online/Session/Status
Tutaj odpytujemy o status konkretnej sesji, którą przekazujemy w headers.SessionToken.
No i ponownie, dla aktywnej sesji nie ma problemu, otrzymujemy w odpowiedzi status wraz ze statusem faktur które w tej sesji były dodane np.:

"processingCode": 315,
"processingDescription": "Sesja interaktywna aktywna. Komunikacja otwarta.",
"invoiceStatusList": [
      {
         "processingCode": 200,
         "processingDescription": "Zakończenie etapu archiwizacji danych faktury",
         "elementReferenceNumber": "20240125-EE-14D7080E99-19891B567D-4B",
         "invoiceNumber": "FK2022/07/243",
         "ksefReferenceNumber": "6262923022-20240125-BC52BD23A1FD-23",
         "acquisitionTimestamp": "2024-01-25T11:31:00.205Z"
      }
],

Jakiś czas po zamknięciu tej sesji (np. w celu wygenerowania UPO) też otrzymamy prawidłową odpowiedź ze statusami, np:

"processingCode": 200,
"processingDescription": "Zakończenie etapu generowania UPO",
"invoiceStatusList": [
      {
         "processingCode": 200,
         "processingDescription": "Zakończenie etapu archiwizacji danych faktury",
         "elementReferenceNumber": "20240125-EE-14D7080E99-19891B567D-4B",
         "invoiceNumber": "FK2022/07/243",
         "ksefReferenceNumber": "6262923022-20240125-BC52BD23A1FD-23",
         "acquisitionTimestamp": "2024-01-25T11:31:00.205Z"
      }
],

Ale jeżeli spróbujemy odpytać o np. sesję sprzed kilku godzin (ta akurat powstała o 8:33) w której również wysyłaliśmy faktury, zostanie wyrzucony nam błąd:

"exceptionDetailList": [
     {
        "exceptionCode": 21170,
        "exceptionDescription": "Sesja interaktywna wygasła."
     }
]

Co w takiej chwili? Jak upewnić się, że mamy numery KSeF wszystkich wysłanych faktur zanim wyślemy zapytanie o UPO w przypadku wygasłej sesji?

0

Witajcie,
też pracuję właśnie nad etapem pobierania UPO po wysłaniu faktur i dotarło do mnie że api

/common/Status/{ReferenceNumber}

jest dostępne bez aktywnej sesji ...

Czy mam jakieś omamy, czy to było cały czas dostępne do wejścia "z ulicy" 🤣
Wiem, że taki numer nie jest od tak do zgadnięcia, są limity na wywołanie API i dane w UPO nie są "wrażliwe" ale jakoś tak dziwnie 😄

0

Witam, mam problem z wygenerowaniem tokenu za pomocą endpointu InitToken. Sam XML tworzę w następujący sposób:

$xmlContent = '<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>{challenge}</Challenge>
          <Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
              <ns2:Identifier>{nip}</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>{token}</Token>
      </ns3:Context>
  </ns3:InitSessionTokenRequest>';

$xmlContent = str_replace('{challenge}', $challenge, $xmlContent);
$xmlContent = str_replace('{nip}', $nip, $xmlContent);

$timestampToToken = \Carbon\Carbon::parse($timestamp)->valueOf(); //zamiana timestamp'a na milisekundy
openssl_public_encrypt($userToken . '|' . $timestamp, $encryptedData, file_get_contents('path/to/publicKey.pem'));
$token = base64_encode($encryptedData);
$xmlContent = str_replace('{token}', $token, $xmlContent);

Następnie wysyłam dane normalnie za pomocą CURLa

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://ksef-test.ms.gov.pl/api/online/Session/InitToken");
curl_setopt($ch, CURLOPT_HEADER, ['Content-Type: application/octet-stream']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlContent);

$result = curl_exec($ch);

Za każdym razem dostaję zwrotkę z błędem 21301 : Brak autoryzacji. Dane dotyczące challenge oraz timestamp pochodzą oczywiście z poprzedniego żądania które działa całkowicie normalnie. Być może wie ktoś o co chodzi bo zaczyna mi brakować już cierpliwości. Przed wysłaniem tego żądania wysyłam tylko żądanie na AuthorisationChallenge i jak dobrze rozumiem to ma być drugie żądanie przy wykorzystaniu danych z pierwszego.

0

I nowy komunikat z wczorajszego popołudnia - po tym, jak cały tydzień trwały prace na środowisku testowym, mieliśmy tydzień spokoju i jutro - 1. lutego - znów wyłączone środowisko testowe będzie.

Coś się przekonuję coraz bardziej do opinii, że całe to odwołanie KSeF skończy się, że wszystko zostanie po staremu, tylko będzie można PiS pognębić. No bo po kiego tam wciąż grzebią przed audytem?

0

Cześć, czy działa Wam weryfikacja faktur na środowisku prod https://ksef.mf.gov.pl/web/verify/ nie ma informacji jak w teście: "Faktura nie została znaleziona w KSeF!" tylko wywala stronę https://ksef.mf.gov.pl/web/ ?

0

Cześć, próbuje zgodnie z webinarem nadać poświadczenia podmiotowi, aby mógł wysyłać i odczytywać faktury. W tym celu robię InitSigned z XML podpisanym jako pieczęć NIP1, dostaje SessionToken, wrzucam go w header i wysyłam POST na /api/online/Credentials/Grant z takim JSONem:

{
"grantCredentials": {
"credentialsIdentifier": {
"identifier": NIP2
},
"credentialsRoleList": [
{
"roleDescription": "string",
"roleType": "invoice_read"
},
{
"roleDescription": "string",
"roleType": "invoice_write"
}
],
"description": "string"
}
}

Jak bym nie kombinował to dostaję zwrotkę 400: {"exception":{"serviceCtx":"srvTEMFB","serviceCode":"20240201-EX-B17B1D3FBE-7ED3E9F3BC-66","serviceName":"online.credentials.credentials.grant","timestamp":"2024-02-01T13:14:02.922Z","exceptionDetailList":[{"exceptionCode":21001,"exceptionDescription":"Nieczytelna treść."}]}}. Z tego co zrozumiałem jest to konieczny krok żeby móc wysyłać i odbierać faktury. Wie ktoś może co robię źle?

0

Cześć, Mam takie pytanie czy ktoś z Was generował kod QR na fakturach pobranych z ksef ?
Według opisu liczymy Sha256, Base64 i urlEncode. Ten proces działa mi na dokumencie jaki wysyłam do ksef, skan kodu przekierowuje do danych faktury.
Natomiast mam jakiś rozjazd na fakturach pobranych z ksef.
Z EP Invoice/Get pobieram fakturę mam to jako string, robię z tego xml i standardowo jak wyżej. Ale finalny hash jest inny.
Jak sprawdzam ilość bajtów xml mojego i tego co pobieram ręcznie z ksef to jest różnica 2520(ksef) 2517(mój).
Używam XML Document w C#, aby zapisać xml na dysk i potem go zaszyfrować.
Może ktoś z Was ma jakiś gdzie popełniłem błąd ? zakładam, że jest trywialny, ale go jeszcze nie widzę.

0

Czy komuś udało się znaleźć treść zaproszenia do oferty do przetargu (nie wiem, jak to się fachowo nazywa ;p) na audyt? Z tego, co dotarłem tylko, to niby rozpoczęcie i zakończenie ofert miało miejsce 30 stycznia. Nigdzie treści nie znalazłem. Zaś po znajomościach coś?

1

Na przełomie kwietnia i maja, na podstawie analiz i procesów audytowych ma być wskazana nowa data obowiązkowego korzystania z KSeF
https://www.gov.pl/web/finanse/wkrotce-zaczna-sie-konsultacje-w-sprawie-ksef

1

B. ciekawa notatka ze spotkania z MF z przedstawicielami biznesu: https://crido.pl/blog-taxes/ministerstwo-finansow-dzieli-sie-z-biznesem-nowymi-informacjami-na-temat-ksef/

Najistotniejsza informacja wg mnie:

Zarówno minister Domański, jak i obecni na spotkaniu dyrektorzy poszczególnych departamentów jasno stwierdzili, że konsultacje z biznesem są dla nich szczególnie istotne, ale jednym z głosów, który z takich konsultacji płynie, jest to, że struktura logiczna udostępnianych danych nie powinna się zmieniać, żeby nie generować na tym etapie dodatkowych prac po stronie podatników. Ministerstwo Finansów nie planuje zatem zmian w schemie e-faktury czy zasadach raportowania, o ile nie okażą się one krytyczne i nie wypłyną z biznesu w ramach konsultacji.

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.