Krajowy system e-Faktur

0

Hej wszystkim, coś się zmieniło w wywołaniu online/Session/AuthorisationChallenge ? Działa wam ?

0

Hej, czy na środowisku demo trzeba mieć certyfikat potwierdzony przez centrum cartyfikacyjne ?
Związku z nie działającym środowiskiem test, przełączyłem się na demo, ale mam problem z certyfikatem.
Na test jak sobie wygenerowałem to ładnie śmigało.

0

Witam,
Czy także u Państwa testowy KSeF był niedostępny przez trzy doby?
Ostatni oficjalny komunikat na strona MF o planowanej przerwie administracyjnej na środowisku testowym (link) jest z 29.04.2022 "Informujemy, że 09.05.2022 r. w godzinach 13:00 - 15:00 będą prowadzone prace serwisowe na środowisku testowym oraz przedprodukcyjnym (Demo) KSeF i mogą pojawić się utrudnienia w dostępie do usług."

0

Cześć,
czy pracując z testowym systemem KSeF w ostatnich dniach (tydzień, może trochę dłużej) też zaobserwowaliście dużo zerwanych połączeń?
Np odpytuje o status sesji, czy wysyłki faktury (w sumie to przy innych metodach też się pojawia taki błąd) i po jakiś 5 sekundach dostaję wyjątek 'connection reset'.
Po chwili (parę sekund) ponawiam próbę i dostaję poprawną odpowiedź.

0

Na testowym KSeF chcemy nadać uprawnienia innemu podmiotowi (np. biuro rachunkowe).
Skorzystaliśmy z metody Grand i zwrotnie dostajemy:
Array
(
[timestamp] => 2022-08-30T2134.015Z
[referenceNumber] => 20220830-SE-BE81FEE4B2-8EE95CE319-FC
[processingCode] => 200
[processingDescription] => Zakończenie etapu faktycznego przetwarzania poświadczeń
[elementReferenceNumber] => 20220830-EG-AABF9431D4-43A5E44EF0-CC
)

Jak sprawdzić po stronie biura rachunkowego czy otrzymało faktycznie te uprawnienia?

Korzystamy z tej metody:
/online/Query/Credential/Sync
{"queryCriteria":{"type":"list_all","queryCredentialsScopeResultType":"current","queryCredentialsTypeResultType":"token"}}

ale to zwraca nam informacje tylko o własnych uprawnieniach.

Wygląda na to, że pomimo nadania uprawnienia, nie są one przydzielone. Przy próbie pobrania dokumentu po numerze KSeF zwracany jest status: 21339 - Brak autoryzacji lub faktura o podanym identyfikatorze nie istnieje.

0

Hej, szybkie pytanie z teorii: jeśli wystawiłem fakturę/faktury przedpłatowe (ZAL jako rodzaj faktury) i wystawiam na ich podstawie fakturę końcową (ROZ) to czy powinienem umieścić pozycje z faktur przedpłatowych na fakturze końcowej czy tylko pozycje które nie zostały uwzględnione w fakturach przedpłatowych?

0
fxl napisał(a):

Na testowym KSeF chcemy nadać uprawnienia innemu podmiotowi (np. biuro rachunkowe).
Skorzystaliśmy z metody Grand i zwrotnie dostajemy:
Array
(
[timestamp] => 2022-08-30T2134.015Z
[referenceNumber] => 20220830-SE-BE81FEE4B2-8EE95CE319-FC
[processingCode] => 200
[processingDescription] => Zakończenie etapu faktycznego przetwarzania poświadczeń
[elementReferenceNumber] => 20220830-EG-AABF9431D4-43A5E44EF0-CC
)

Jak sprawdzić po stronie biura rachunkowego czy otrzymało faktycznie te uprawnienia?

Korzystamy z tej metody:
/online/Query/Credential/Sync
{"queryCriteria":{"type":"list_all","queryCredentialsScopeResultType":"current","queryCredentialsTypeResultType":"token"}}

ale to zwraca nam informacje tylko o własnych uprawnieniach.

Wygląda na to, że pomimo nadania uprawnienia, nie są one przydzielone. Przy próbie pobrania dokumentu po numerze KSeF zwracany jest status: 21339 - Brak autoryzacji lub faktura o podanym identyfikatorze nie istnieje.

Nikt nie udzielał do tej pory dostępu dla osobnego podmiotu (biura rachunkowego)?

0

Ma ktos pomysl/patent jak rozwiazac załączniki do faktur?
z tego co wiem to nie da sie dodać zadnych plikow ale podobno mozna uzyc pola na jakis opis gdzie linki do plikow sa w postaci klucz/warttosc zapisane?
Te dane oczuywiscie nie sa istotne dla ksef, bardziej dla odbiorcy faktury.

przerabial moze ktos taki temat?

0

Cześć, poszukuję informacji na temat struktury faktury korygującej, która jest którąś z kolei fakturą korygującą fakturę podstawową. Nie znalazłem takiego przypadku wśród przykładowych faktur udostępnionych przez MF.

Posługuję się uniwersalnym sposobem korygowania faktur, który polega na umieszczaniu w wierszach faktury poprzednich (błędnych), a następnie kolejnych (poprawnych) wartości pozycji.
Załóżmy, że na fakturze pierwotnej mam towar o wartości 2000 zł. Następnie w korekcie przekazuję wartość 2000 jako poprzednią i 1000 jako aktualną (w wierszach) oraz numer KSeF pierwotnej faktury jako NrKSeFFaKorygowanej. Teraz chcę zrobić kolejną korektę z 1000 na 500. Podaję wtedy 1000 jako poprzednią i 500 jako aktualną wartość, a jako NrKSeFFaKorygowanej poprzednią fakturę (korektę nr 1), czy wciąż numer KSeF tej pierwotnej? IMO odwoływanie się do faktury pierwotnej w kolejnych korektach miałoby najwięcej sensu, ale nie mam 100% pewności, że tak jest. Środowisko testowe przepuszcza praktycznie wszystko i trudno to zweryfikować.

1

Czy można w jakiś sposób odzyskać InvoiceStatus.KsefReferenceNumber po zamknięciu sesji?
Znam nr faktury oraz nr sesji ale jeszcze nie zdążyłem odczytać tego KsefReferenceNumber

0
keye0192 napisał(a):

Czy można w jakiś sposób odzyskać InvoiceStatus.KsefReferenceNumber po zamknięciu sesji?
Znam nr faktury oraz nr sesji ale jeszcze nie zdążyłem odczytać tego KsefReferenceNumber

Znając numer sesji (test) można sprawdzić tu: https://ksef-test.mf.gov.pl/web/anonymous-upo-status

0

witam
takie pytanko:

  1. Wysyłam faktury podpisane certyfikatem - sesja batchowa.
  2. dostaję w odpowiedzi tylko: timestamp i referenceNumber do sesji

Czy da się sprawdzić, która faktura jest błędna w sesji batchowa?

0
awyduba napisał(a):

Cześć, poszukuję informacji na temat struktury faktury korygującej, która jest którąś z kolei fakturą korygującą fakturę podstawową. Nie znalazłem takiego przypadku wśród przykładowych faktur udostępnionych przez MF.

Posługuję się uniwersalnym sposobem korygowania faktur, który polega na umieszczaniu w wierszach faktury poprzednich (błędnych), a następnie kolejnych (poprawnych) wartości pozycji.
Załóżmy, że na fakturze pierwotnej mam towar o wartości 2000 zł. Następnie w korekcie przekazuję wartość 2000 jako poprzednią i 1000 jako aktualną (w wierszach) oraz numer KSeF pierwotnej faktury jako NrKSeFFaKorygowanej. Teraz chcę zrobić kolejną korektę z 1000 na 500. Podaję wtedy 1000 jako poprzednią i 500 jako aktualną wartość, a jako NrKSeFFaKorygowanej poprzednią fakturę (korektę nr 1), czy wciąż numer KSeF tej pierwotnej? IMO odwoływanie się do faktury pierwotnej w kolejnych korektach miałoby najwięcej sensu, ale nie mam 100% pewności, że tak jest. Środowisko testowe przepuszcza praktycznie wszystko i trudno to zweryfikować.

to jest ciekawy wątek nieczytelnie opisany w dokumentacji, robiłem próby ręcznego wystawienia w test i

  1. przechodzi wszystko, więc trudno powiedzieć,
  2. każda korekta, niezależnie czy korygowana jest ilość, czy cena po przekształceniu na xml wygląda tak samo, czyli zakładając, że pierwotnie było ilość x, cena y, wartość XY prezentowane jest: "wiersz przed korektą" +x, -y, -XY; wiersz po korekcie +x(k), +y(k), XY(k). Według mnie z minusem powinna byc ilość przed korektą, a nie cena...
  3. dodatkowo wiersz nr 1 faktury korygowanej dostaje nr 1 dla przed korektą i numer 2 dla po korekcie, więc jak bedzie wiele podobnych wierszy to nie wiadomo co czego dotyczy...
    Moim zdaniem podawać zawsze numer faktury korygowanej oryginalnej, a dane "przed korektą" z uwzględnieniem wcześniejszych korekt.
0

Witam

W moim oprogramowaniu muszę kodować w C# e-fakturowanie w Polsce. Będzie używany przez wiele firm.
Ale nie mówię po polsku i nie znalazłem dobrej dokumentacji na ten temat.

Mam numer NIP i plik z rozszerzeniem crt (domyślam się, że to certyfikat).

Potrafię zalogować się w serwisie https://ksef-test.mf.gov.pl/web za pomocą numeru NIP

Chciałbym najpierw zrobić to samo, korzystając z usługi sieciowej na serwerze testowym. Uwierzytelnij, a następnie zaksięguj fakturę.

Jestem w stanie przejść pomyślnie AuthorisationChallenge. Wtedy nie wiem co robić.

Czy powinienem używać InitSigned czy InitToken? Z poprzednich wiadomości wynika, że ​​token jest lepszy.
Używam pliku InitSessionTokenRequestExample.xml (https://ksef-test.mf.gov.pl/document/InitSessionTokenRequestExample/1.0)
Edytowałem blok <challenge> z wartością odpowiedzi z żądania AuthorisationChallenge i dodałem swój numer NIP w bloku <Identifier>.
Czy muszę zrobić coś jeszcze? To nie działa, więc chyba tak :)

Jakie są kroki między AuthorisationChallenge a online/Invoice/Send?

  1. online/Session/AuthorisationChallenge
  2. online/Session/InitToken
  3. ???
  4. online/Invoice/Send

Dzięki za pomoc.

0

Witam.
Mam pytanie do Was czy zauważyliście od ostatniego dłuższego restartu KSeFa problem z działaniem. Często dostaję błąd 500 Wewnętrzny błąd Systemu podczas próby np. otwierania/zamykania sesji lub wysyłania FV, wcześniej ten problem nie był zauważalny. Czy coś się zmieniło, czy macie podobne spostrzeżenia?

0

Na https://ksef-test.mf.gov.pl/swagger/ próbuje wysłać paczkę faktur, z odpowiedzi batch/Init biorę referenceNumber i partName z końcówki url.
Podstawiam plik pierwszej częsci i otrzymuje zwrotkę bład 400: "Brak treści [Content-Length] lub [Content-SHA256] lub [X-TargetSrv-Name]."
Co robię źle?

0

Może ktoś dać cały kod w C#?

0

W jaki sposób weryfikujecie aktywną sesję? Session/Status czy session/Status{ref}? Tak zastanawiam się, zwrotka z reguły pokazuje sesja otwarta, ale processing code mam między 100 a 315 najczęściej.

0

Witajcie,
Niedawno na środowisko testowe KSeF została wdrożona nowa wersja 1.0.3. Wg historii zmian można przeczytać, że zmieniono sortowanie przy pobieraniu nagłówków faktur (https://ksef-test.mf.gov.pl/api/online/Query/Invoice/Sync?PageSize=10&PageOffset=0). Opis zmiany: "Zmiana sortowania wyników wyszukiwania (nagłówek faktury) z rosnącego na malejące".
Z moich obserwacji wynika, że dokumenty nie są posortowane wg acquisitionTimestamp tylko po jakimś wewnętrznym znaczniku zakończenia przetwarzania, który nie koniecznie zgadza się z acquisitionTimestamp. Poniżej przykład dokumentów, które zarejestrowałem (context: 1111111111, type:subject1):

1111111111-20220112-13E2DF-5316D7-75 2022-01-11T2320.822Z
1111111111-20220112-EF62E2-2A83BC-D5 2022-01-11T2320.748Z
1111111111-20220112-6DAD9E-6E5C60-91 2022-01-11T2319.590Z
1111111111-20220112-A2E458-CB26E6-0E 2022-01-11T2320.507Z
1111111111-20220112-AAEC18-37DFD5-54 2022-01-11T2320.501Z
1111111111-20220112-C85893-5E2737-8C 2022-01-11T2320.448Z
1111111111-20220112-33444E-FC09C7-46 2022-01-11T2320.384Z
1111111111-20220112-E43721-663628-0F 2022-01-11T2320.303Z
1111111111-20220112-FC3956-B504A5-BE 2022-01-11T2320.161Z
1111111111-20220112-51E54C-35A72A-B9 2022-01-11T2320.117Z
1111111111-20220112-427406-40FF0F-A9 2022-01-11T2320.035Z
1111111111-20220112-72A254-7928F8-66 2022-01-11T2319.969Z
1111111111-20220112-173534-160F62-CC 2022-01-11T2319.835Z
1111111111-20220112-BAD120-409049-A9 2022-01-11T2319.836Z
1111111111-20220112-CF9980-C5D700-39 2022-01-11T2319.817Z

Jak widać można napotkać nie tylko na brak sortowania w obrębie pojedynczej sekundy, ale również można cofnąć się do "poprzedniej sekundy".
Czy Wy również macie takie obserwacje?
Jak obsługujecie sekwencyjne (przyrostowe) pobieranie nagłówków?

Czy ktoś z Was próbował zgłaszać do MF, aby
a) sortowali prawidłowo po czymś, co jest zwracane (może być acquisitionTimestamp)
b) dodali możliwość wyboru jak posortować wyniki (malejąco/rosnąco)
c) filtr acquisitionTimestampThresholdFrom i acquisitionTimestampThresholdTo przyjmował również milisekundy (na chwilę obecną je ignoruje)?

Będę wdzięczny za odzew.

0

Mam pytanie, co w tej funkcji jest nie tak? Nie dostaję żadnej odpowiedzi z serwera MF
async static void PostRequest(string URI)
{

        IEnumerable<KeyValuePair<string, string>> queries = new List<KeyValuePair<string, string>>()
        {
            new KeyValuePair<string,string>("type","onip"),
            new KeyValuePair<string, string>("identifier","8223209190")

        };
        
        HttpContent q = new FormUrlEncodedContent(queries);
        
        




        using (HttpClient Client = new HttpClient())
        {
            //Client.BaseAddress = new Uri("https://ksef-test.mf.gov.pl/");
            
            using (HttpResponseMessage response = await Client.PostAsync("https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge/", q))
            {

                using (HttpContent content = response.Content)
                {
                    string myContent = await content.ReadAsStringAsync();
                    HttpContentHeaders headers = content.Headers;

                    Console.WriteLine(myContent);
                }
            }


        }


    }
7

Dzięki za pomoc, mam ten ksef już w dopie.Bawcie się dobrze

0

/online/Query/Invoice/Async/Init, parametr range, zakres dat od 1.04.2022 do 21.09.2022
- odpowiedź 100 Proces został zarejestrowany
/online/Query/Invoice/Async/Status/
- odpowiedź 325 Zakończenie etapu podziału na podzapytania oraz inicjalizacja podprocesów przygotowania części odpowiedzi
i po dłuższej chwili przy kolejnym wywołaniu

  • 431 Błąd etapu weryfikacji wyników podprocesów przygotowania części odpowiedzi
    A jak podam zakres dat od 1.09.2022 do 21.09.2022 to działa, ale mam raptem 2 faktury w zipie.
    Czy są jakieś ograniczenia na zakres dat? Faktur to może naprodukowane jest ze 100-200 w tym okresie od kwietnia.
0

Próba zainicjalizowania sesji poprzez InitSigned, za każdym razem odpowiedź: 400 - nieprawidłowe wywołanie. Dalszych informacji w odpowiedzi brak.
Widzi ktoś może jakiś błąd w generowanym pliku?

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<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>20220925-CR-20D8A3F357-318EEC6630-70</Challenge>
    <Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
      <ns2:Identifier>4961266333</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>
    <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>1232345dfg1232345dfg1232345dfg1232345dfg</DigestValue>
      </Reference>
      <Reference URI="#ObjectRef1" Type="http://uri.etsi.org/01903#SignedProperties">
        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
        <DigestValue>37490587344jfsm4ivm8jawcm3ar=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>+DsJBD0muV7ouMmUwWA3GabrHrTcjs8pXwbbSH7VzluTGtszxkI4a35/XOQ+GXLjM9P6OxMiUT9I8FsE2jRDjRHhf2LSAtZ98pE3EXF4EEB1bgqdZXghAHXP3uTxpbZE0sZg3hVZFf3nv2q8UjH2NDSCxd7zdbu/NkZRpxoiXO+p1lWQ69XU8Dnwcv3MDEcOUhC2c0JNW43BZWbLWoGFaFmlaiHzVkYcjShDknlOCUZAmDZF/PyeTrAwsMGECrY4wIDXUVUTb2r3vrhQ==</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509Certificate>dfsssssssssssssssssssssssssssfsdfsfdsf44860fd45t68z0x5t64xd0d1g2f+2TWssKZ7lnRwLwiDw3oTVhIg2Iujp0BVZacKiX5I0IscGX0VmHdEJtPeWfFdDbNBoQ+kpB1oD5Rs5E3CylQ6eHKqJeSnVSNt7+oVrwq09iIVymAUrx8RizQHJe2rgd5HlgogBq22k3UaAj11KP1WCv9TU3qWS2MONveentOzm0jZrBZbrZ7ZrNYK0l1ZsHy0AstjxqBVw4D+BTY2RH2P4BnCpEBbFRx2iBZjrN23CvkP1YdsI7DapsEtT7pU7YKWVUAnSkradWuR1CUOhruIo1QCIHMvMypDUcgJyql1B+fJS05vC9lEfsuANofYw5DCBT3oBbIiGSf1xbxTYuQIDAQABo4ICKjCCAiYwDAYDVR0TAQH/BAIwADA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vcWNhLmNybC5jZXJ0dW0ucGwvcWNhXzIwMTcuY3JsMHIGCCsGAQUFBwEBBGYwZDAsBggrBgEFBQcwAYYgaHR0cDovL3FjYS0yMDE3LnFvY3NwLWNlcnR1bS5jb20wNAYIKwYBBQUHMAKGKGh0dHA6Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9xY2FfMjAxNy5jZXIwHwYDVR0jBBgwFoAUJ/HYTmBQaLZh/mgbKGxt5AtzCU0wHQYDVR0OBBYEFLALSfC6ihEYmvOvUO/UesMiW+EjMA4GA1UdDwEB/wQEAwIGwDBVBgNVHSAETjBMMAkGBwQAi+xAAQIwPwYMKoRoAYb2dwIEAQwBMC8wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cuY2VydHVtLnBsL3JlcG96eXRvcml1bTCBwgYIKwYBBQUHAQMEgbUwgbIwCAYGBACORgEBMAgGBgQAjkYBBDCBhgYGBACORgEFMHwwPBY2aHR0cHM6Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9QRFMvQ2VydHVtX1FDQS1QRFNfRU4ucGRmEwJlbjA8FjZodHRwczovL3JlcG9zaXRvcnkuY2VydHVtLnBsL1BEUy9DZXJ0dW1fUUNBLVBEU19QTC5wZGYTAnBsMBMGBgQAjkYBBjAJBgcEAI5GAQYBMA0GCSqGSIb3DQEBCwUAA4ICAQCP2SLh1bJmX4Sjg9gmBRD2mWs0eEet8OoZcjEkjk11c7yM/YSWuAZHa9lAcZX9WWt/npQo+XeNs2ezikPDGAa11FM0MWDvtFTQb9DUp776/YqC+8anMxOtJKV/laHYNBbZjsCa3oTFvkV1ES3TN4MXGnR48UPPbO61ST5wjsk6+VvmvOfSJNtP9hb8eQ9PFmtujygwhiweXax0UHIsYD48zQu5/2RATBtB+vRnrSUpohPTHqI273acAl4NNjIAYZ8zCZ7TEO5GxUyChgvUHXCZXjPeJvrrFTo3ytRwUCvNH0HcDoRoU2pYe3V9X9bU68DJy4UTtrlUHS8hTa/QPnn3pQm42EPMX8AlOKC6cpgjQ7K7U40pr5ZvKTQKE+SlCsB/ODdX/WKUQK6HbQO7sG5m2z4Q2cIgyeurXNMwaPzZMET5tmLKxOawUCeYGI0JW/U7FHW3kbuuUbkaYpfKrwojUs0c8Ek+UM5CHZ4bzLU155cjTXFCXZ/zc1jVdSSidD7NvBc8EWQCRCwxFgLncMHtePEivkE8fZPPQSk3rpfSP4Q6fbGnfiQHNvramSENwz5pT+eokjn731i/9cCLQENY4gmdv9iQOhQOO+g5uSfs22dwMBta+GLEMHj13kykB293j/UJfZxz+LP73rqK6Rr2sB57SrY0HiHjb2RfvZdKPg==</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>2022-09-24T23:10:21Z</xades:SigningTime>
            <xades:SigningCertificate>
              <xades:Cert>
                <xades:CertDigest>
                  <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                  <DigestValue>hjksdfhuivxrnvuid34gdr9849ut</DigestValue>
                </xades:CertDigest>
                <xades:IssuerSerial>
                  <X509IssuerName>OID.2.5.4.97=VATPL-4961266333, CN=Certum QCA 2017, O=Asseco Data Systems S.A., C=PL</X509IssuerName>
                  <X509SerialNumber>12345612345612345612345612345612345456</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

Czy może mi ktoś rozjaśnić w jaki sposób najlepiej sprawdzać czy mamy zaimportowane wszystkie faktury zakupu z danego okresu? Czy można szybko sprawdzić ilość faktur w okresie?
I druga sprawa jak sprawdzić czy jakaś faktura sprzedaży nie została wysłana 2 razy?
Czy jedyną metodą jest tylko odpytywanie /online/Query/Invoice/Sync ?

0

Mógłby mi ktoś streścić uprawnienia w KSeF? konkretnie jakie uprawnienia mogę nadać na token przez GenerateToken? Jak dawałem wartości z yamla to niektóre nie przechodziły, enum nie zgadzał się ze schemą np. owner. Inne z kolei niby tworzył token ale gdy sprawdzałem Credentials/Status dostawałem processingDescription: brak autoryzacji? Poza tym nawet nie jestem w stanie rozszyfrować co niektóre z tych uprawnień dają...

0

Cześć,

przy wysyłce wsadowej dostaję błąd 441 - "Błąd etapu weryfikacji wyników podprocesów przetwarzania faktury" i cała paczka zostaje odrzucona (jedna faktura z paczki celowo była nieprawidłowa).
Czy jest jakiś sposób, żeby dowiedzieć się, która faktura powoduje problem?
I czy odrzucenie pierwszej faktury przerywa sprawdzanie reszty z paczki?

0

Witam,
Czy komukolwiek udało się po nawiązaniu szyfrowanej sesji wysłać zaszyfrowaną pojedynczą fakturę (nie przez wysyłkę wsadową) bądź też pobrać zaszyfrowaną fakturę żeby ją sobie odkodować kluczem symetrycznym AES?
Mam taki przypadek, że po nawiązaniu sesji z określonym EncryptionKey, wektorem itd. próba wyciągnięcia faktury GET by KSeFReferenceNumber pobierane faktury są nie zaszyfrowane mimo, że w sesji jest przekazana cała informacja <Encryption>. Czy ta funkcjonalność jest jeszcze nie obsłużona przez system ksef?

0

Witam wszystkich.

Mam pytania do osób, którym udało się zalogować poprzez Token przypisany w aplikacji Webowej MF do osoby mającej uprawnienia do obsługi KSeF (zakładam pełne uprawnienia).
Dotyczą one środowiska testowego i Demo.

  1. Czy podczas tworzenia tokenu ma znaczenie zastosowana metoda autoryzacji osoby (chodzi mi o PESEL, NIP, Pieczęć), z poziomu której jest on generowany ?

Zamierzam dla osoby obsługującej faktury, zalogowanej do aplikacji MF poprzez Profil Zaufany lub Podpis Kwalifikowany, wygenerować token i używać go podczas komunikacji z KSeF.

  1. Jaki jest dokładnie algorytm tworzenia klucza autoryzującego przy użyciu tokena dla procedury /online/Session/InitToken opisanego jako:

Treść pola Token to zakodowana Base64 tablica bajtów zaszyfrowanego kluczem publicznym ciągu znaków składającego się z konkatenacji tokena autoryzacyjnego, znaku separatora | oraz wartości liczbowej (long) znacznika czasowego wyzwania autoryzacyjnego. Np.

Base64(encrypt(public_key, (token + ‘|’ + challenge.getTime).getBytes))

challngeTime jest uzyskiwany podczas inicjowania sesji.

ale co dokładnie oznacza challenge.getTime i jak jest on wyznaczany ?

Z powyższego opisu wynika, że jest to wartość typu Long, czyli numeryczna.

  • W jaki dokładnie sposób jest ona określana ?
  • Ponieważ token jest typem tekstowym, separator "|" też, to "challenge.getTime* dla zgodności typów powinno też dawać wartość tekstową, a nie Long czyli numeryczną.
  • Jeśli Long, to w jaki sposób podchodzić do jego złączenia z tekstem ? Czy stworzyć tablicę typu [byte] i poprzez kody ASCII wypełnić ją Tokenem i separatorem oraz dodać reprezentację binarną wartości Long ?

W jednym z postów na forum, mowa jest o wyznaczaniu tej wartości w oparciu o milisekundy. Jeśli tak to względem jakiej daty i czasu początkowego ?

Podobnie jak kilku innych forumowiczów, jestem programistą Delphi.

Pozdrawiam.
M.

0
f-c-s napisał(a):

Witam wszystkich.

Mam pytania do osób, którym udało się zalogować poprzez Token przypisany w aplikacji Webowej MF do osoby mającej uprawnienia do obsługi KSeF (zakładam pełne uprawnienia).
Dotyczą one środowiska testowego i Demo.

  1. Czy podczas tworzenia tokenu ma znaczenie zastosowana metoda autoryzacji osoby (chodzi mi o PESEL, NIP, Pieczęć), z poziomu której jest on generowany ?

Zamierzam dla osoby obsługującej faktury, zalogowanej do aplikacji MF poprzez Profil Zaufany lub Podpis Kwalifikowany, wygenerować token i używać go podczas komunikacji z KSeF.

  1. Jaki jest dokładnie algorytm tworzenia klucza autoryzującego przy użyciu tokena dla procedury /online/Session/InitToken opisanego jako:

Treść pola Token to zakodowana Base64 tablica bajtów zaszyfrowanego kluczem publicznym ciągu znaków składającego się z konkatenacji tokena autoryzacyjnego, znaku separatora | oraz wartości liczbowej (long) znacznika czasowego wyzwania autoryzacyjnego. Np.

Base64(encrypt(public_key, (token + ‘|’ + challenge.getTime).getBytes))

challngeTime jest uzyskiwany podczas inicjowania sesji.

ale co dokładnie oznacza challenge.getTime i jak jest on wyznaczany ?

Z powyższego opisu wynika, że jest to wartość typu Long, czyli numeryczna.

  • W jaki dokładnie sposób jest ona określana ?
  • Ponieważ token jest typem tekstowym, separator "|" też, to "challenge.getTime* dla zgodności typów powinno też dawać wartość tekstową, a nie Long czyli numeryczną.
  • Jeśli Long, to w jaki sposób podchodzić do jego złączenia z tekstem ? Czy stworzyć tablicę typu [byte] i poprzez kody ASCII wypełnić ją Tokenem i separatorem oraz dodać reprezentację binarną wartości Long ?

W jednym z postów na forum, mowa jest o wyznaczaniu tej wartości w oparciu o milisekundy. Jeśli tak to względem jakiej daty i czasu początkowego ?

Podobnie jak kilku innych forumowiczów, jestem programistą Delphi.

Pozdrawiam.
M.

radek64 dzięki za sugestię. ale dla przykładu gdzie:

token logowania = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

otrzymany jako wynik wywołania (https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge) timestamp = '2022-10-10T1000Z'

jaka wartość powinna być podstawiona jako challenge.getTime ?

Czy to złączenie powinno być wprost : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|2022-10-10T1000Z'

Pozdrawiam
M.

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