Krajowy system e-Faktur

0
e_mro7 napisał(a):

Cześć, czy komuś dalej działa wysyłka wsadowa batch/Init? Wiem, że temat tu był, ale tworzę xml-a wg podanego wzoru który komuś działał (podobno) i kończą mi się pomysły co może być nie tak. Narzędzie standalone DSS (https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo/signature-standalone) też niestety nie pomaga i podpisany plik jest dodatkowo "Niezgodny ze schemą". Czy ktoś mógłby udostępnić taki plik dla którego mu Inicjalizacja wysyłki wsadowej paczki faktur działa. Link podany w swaggerze(http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001/InitRequest), czymkolwiek jest, też nie działa :) Pozdrowienia dla ludzi odpowiedzialnych za ksefa.

Link do schemy: link

Mój plik XML przed podpisaniem wygląda jak niżej. Walidacja "off-line" tego XML na podstawie InitRequest.xsd nie wykazuje błędów. KSeF natomiast zwraca komunikat 21401: Dokument nie jest zgodny ze schemą (xsd).
Plik wysyłam podpisany i do podpisu KSeF nie na zastrzeżeń, więc nie ma przekłamań w wysyłce. Nie wiem co jest nie tak...

<?xml version="1.0" encoding="UTF-8"?>
<InitRequest xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/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/batch/types/2021/10/01/0001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://ksef-test.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001/initRequest.xsd">
   <Identifier xsi:type="ns2:SubjectIdentifierByCompanyType">
      <ns2:Identifier>1149394432</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://ksef.mf.gov.pl/wzor/2021/08/05/08051/</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>Ofn5vBLzvpKmqgE/oyT10wrLKkO5g9Xmf8iWdhl6CD1gdqK3wBpO5IpXPaoD3llUl+fCnkQlt1jsaasamO06PsgdJ4TjLscllZlOvZmmplLFF0k5A8lclwOE5fuMltz2Zp6huOy9Tw828lDQQDnIshnPUUXPz1R1+fFhENQkvuCyvBduuG7Q/utEA4nt8R9UU8276XWk2q2gf/Yi7btb24kdlUDWNTeBcHaw4wH+n996hwf6lWTQR6JR/ZLYGKraSajgaG4f2dy3yUNppNNPtCuO+HASLTDtVEDka1/HUO+UYtyrDU8ZIGRK/Yeg8rPC65+ydC2kVD5eiFu4FF16ww==</ns2:Value>
      </ns2:EncryptionKey>
      <ns2:EncryptionInitializationVector>
         <ns2:Encoding>Base64</ns2:Encoding>
         <ns2:Bytes>16</ns2:Bytes>
         <ns2:Value>jLPBIvtgWbZH91WUgVzrtw==</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>
   <PackageSignature>
      <Package>
         <ns3:PackageType>split</ns3:PackageType>
         <ns3:CompressionType>zip</ns3:CompressionType>
         <ns3:Value>FV_1149394432_20220517223745.zip</ns3:Value>
      </Package>
      <PackageFileHash>
         <ns2:HashSHA>
            <ns2:Algorithm>SHA-256</ns2:Algorithm>
            <ns2:Encoding>Base64</ns2:Encoding>
            <ns2:Value>hwyHaXpuBpg2pHZ5U5j/HbNOjyfq5Eg+LWWdEXAIBBQ=</ns2:Value>
         </ns2:HashSHA>
         <ns2:FileSize>31457</ns2:FileSize>
      </PackageFileHash>
      <PackagePartsList>
         <PackagePartSignature>
            <ns3:OrdinalNumber>1</ns3:OrdinalNumber>
            <ns3:PartFileName>FV_1149394432_20220517223745.zip.part1</ns3:PartFileName>
            <ns3:PartFileHash>
               <ns2:HashSHA>
                  <ns2:Algorithm>SHA-256</ns2:Algorithm>
                  <ns2:Encoding>Base64</ns2:Encoding>
                  <ns2:Value>ipEZ4qLegKxvdEpBKg1UqoPVbOf/hie6vyrcVCP97XI=</ns2:Value>
               </ns2:HashSHA>
               <ns2:FileSize>31472</ns2:FileSize>
            </ns3:PartFileHash>
         </PackagePartSignature>
      </PackagePartsList>
   </PackageSignature>
</InitRequest>

xml z podpisem

<?xml version="1.0" encoding="UTF-8"?>
<InitRequest xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001" xmlns:ns1="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001" xmlns:ns2="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://ksef-test.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001/initRequest.xsd">
   <Identifier xsi:type="ns1:SubjectIdentifierByCompanyType">
      <ns1:Identifier>1149394432</ns1:Identifier>
   </Identifier>
   <DocumentType>
      <ns1:Service>KSeF</ns1:Service>
      <ns1:FormCode>
         <ns1:SystemCode>FA (1)</ns1:SystemCode>
         <ns1:SchemaVersion>1-0E</ns1:SchemaVersion>
         <ns1:TargetNamespace>http://crd.gov.pl/wzor/2021/11/29/11089/</ns1:TargetNamespace>
         <ns1:Value>FA</ns1:Value>
      </ns1:FormCode>
   </DocumentType>
   <Encryption>
      <ns1:EncryptionKey>
         <ns1:Encoding>Base64</ns1:Encoding>
         <ns1:Algorithm>AES</ns1:Algorithm>
         <ns1:Size>256</ns1:Size>
         <ns1:Value>HJfrxK+NFopyANwwy7IbxUwUgSL78XYy5hUfxaY2jOeaMU1KXumrb1xQ6AccdvEAj0xZu5Xp5fR5gaZVYaP7L+mqiMDcdC8bFNTfFajAa1ZDH8yTPtDUIrHqoYDQbS8BQHF3o3Wz7Fpw0xAqyyY6fizPzaTiqEF4vuvZOWbwhpG+ZTuo/ROabHnL7z6QClekdRrP/skRgMv2Qh1wrMBhRIWBqizQfE6jG0Tp0X7jDawrU+ysgf6R0+Bs2GRCiTT5nlTbcH4K7bjE+HA/U6qw4Emls4WkQB01yQQy83hJ6E7LMq4WkJROGIzfbXrwW7Elm95A1+eVERLjMBZgaHYZpQ==</ns1:Value>
      </ns1:EncryptionKey>
      <ns1:EncryptionInitializationVector>
         <ns1:Encoding>Base64</ns1:Encoding>
         <ns1:Bytes>16</ns1:Bytes>
         <ns1:Value>jLPBIvtgWbZH91WUgVzrtw==</ns1:Value>
      </ns1:EncryptionInitializationVector>
      <ns1:EncryptionAlgorithmKey>
         <ns1:Algorithm>RSA</ns1:Algorithm>
         <ns1:Mode>ECB</ns1:Mode>
         <ns1:Padding>PKCS#1</ns1:Padding>
      </ns1:EncryptionAlgorithmKey>
      <ns1:EncryptionAlgorithmData>
         <ns1:Algorithm>AES</ns1:Algorithm>
         <ns1:Mode>CBC</ns1:Mode>
         <ns1:Padding>PKCS#7</ns1:Padding>
      </ns1:EncryptionAlgorithmData>
   </Encryption>
   <PackageSignature>
      <Package>
         <ns2:PackageType>split</ns2:PackageType>
         <ns2:CompressionType>zip</ns2:CompressionType>
         <ns2:Value>FV_1149394432_20220518011851.zip</ns2:Value>
      </Package>
      <PackageFileHash>
         <ns1:HashSHA>
            <ns1:Algorithm>SHA-256</ns1:Algorithm>
            <ns1:Encoding>Base64</ns1:Encoding>
            <ns1:Value>LzGI5QUpFPt7oRHd+1FFeCK1Qg6YBJJtI7hOghLH7ik=</ns1:Value>
         </ns1:HashSHA>
         <ns1:FileSize>31457</ns1:FileSize>
      </PackageFileHash>
      <PackagePartsList>
         <PackagePartSignature>
            <ns2:OrdinalNumber>1</ns2:OrdinalNumber>
            <ns2:PartFileName>FV_1149394432_20220518011851.zip.part1</ns2:PartFileName>
            <ns2:PartFileHash>
               <ns1:HashSHA>
                  <ns1:Algorithm>SHA-256</ns1:Algorithm>
                  <ns1:Encoding>Base64</ns1:Encoding>
                  <ns1:Value>W7phmmmzZCX+QkCr9/P+COEHroeKVk60baiPpG/aAs0=</ns1:Value>
               </ns1:HashSHA>
               <ns1:FileSize>31472</ns1:FileSize>
            </ns2:PartFileHash>
         </PackagePartSignature>
      </PackagePartsList>
   </PackageSignature>
   <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-37072296">
      <ds:SignedInfo>
         <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
         <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
         <ds:Reference URI="">
            <ds:Transforms>
               <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            </ds:Transforms>
            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <ds:DigestValue>aVYiCLa/fVEC8Z67RkXXAwXEhSA=</ds:DigestValue>
         </ds:Reference>
         <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-1013233898">
            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <ds:DigestValue>M401hGfYNz3B6YqwZTUIzh/B0wE=</ds:DigestValue>
         </ds:Reference>
      </ds:SignedInfo>
      <ds:SignatureValue>Wpkmylp9k44613QBH4w4rzBllOS0Ru0ZJUemlImjygtoEZuteSXKHWh1IfWJ1cky
4qGzP3rtLcboB3Mr4/Qr8XqeoF6mOPq1qUX7P5Hi69/tmDJhk+QGmsR6+p1Nko2e
vy95T1TfCyBrO250Ai4qMNz4j5DKpm4H5mew9we5XQyaE62x1UAIRX/9BbD448cC
C3n+QNpq5G3WCvf7yJZX8H3ynfPNbcpGTVh0bGgbSHpZRLvzST9Dk6d3qXw9B8Fm
3VKS6kAIqVoRVDZTcvM25LhSHpg9PkH3oHRwRvPRYLPS+jdGrmAcXfPAsbSuiDxZ
ht1qMzlepgxbBG0ggzY/Dg==</ds:SignatureValue>
      <ds:KeyInfo>
         <ds:KeyValue>
            <ds:RSAKeyValue>
               <ds:Modulus>2Y+Znt4wJwQMMbhmJPVA5lCKl03RWzvs7d5RGR05tWCO9z5KoRVcXWaAkTxOHiQc
xjwM3aaXcd7AdRZF9h216o3fZBMkbGp7ID+YRbJQuyHnx/Mc5MTLFNWrABqnj+nk
Ldni6uSq08FRtyZRUxj4+vqJWB5oxuU6Br3Dh+UHqsBkkBIvVQGNjrHW7p+ZncYp
3Ykg2WG16yYsXxX1IdUrbtqshRI+v+0diAWy3P5XTzEpwBptTChP9Q7M7qLADRiz
oQlIsY2v40zmHhL8yuM4kOpU58I16BQlTsb0nkWFmQ/J70DdRvXSpCgOC21i0hqd
BWKBVkY+rbJqpGUUaz4VsQ==</ds:Modulus>
               <ds:Exponent>AQAB</ds:Exponent>
            </ds:RSAKeyValue>
         </ds:KeyValue>
         <ds:X509Data>
            <ds:X509IssuerSerial>
               <ds:X509IssuerName>2.5.4.97=#0C10564154504C2D31313439333934343332, C=PL, O=Moja Firma, [email protected], CN=Jan Testowy</ds:X509IssuerName>
               <ds:X509SerialNumber>16362134878042278187</ds:X509SerialNumber>
            </ds:X509IssuerSerial>
            <ds:X509SubjectName>2.5.4.97=#0C10564154504C2D31313439333934343332, C=PL, O=Moja Firma, [email protected], CN=Jan Testowy</ds:X509SubjectName>
            <ds:X509Certificate>MIIDdDCCAlwCCQDjEfr7NL1JKzANBgkqhkiG9w0BAQ0FADB8MRQwEgYDVQQDDAtK
YW4gVGVzdG93eTEnMCUGCSqGSIb3DQEJARYYamFuLnRlc3Rvd3lAbW9qYWZpcm1h
Lnh5MRMwEQYDVQQKDApNb2phIEZpcm1hMQswCQYDVQQGEwJQTDEZMBcGA1UEYQwQ
VkFUUEwtMTE0OTM5NDQzMjAeFw0yMjA0MjMxODExNTVaFw0yMjA1MjMxODExNTVa
MHwxFDASBgNVBAMMC0phbiBUZXN0b3d5MScwJQYJKoZIhvcNAQkBFhhqYW4udGVz
dG93eUBtb2phZmlybWEueHkxEzARBgNVBAoMCk1vamEgRmlybWExCzAJBgNVBAYT
AlBMMRkwFwYDVQRhDBBWQVRQTC0xMTQ5Mzk0NDMyMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEA2Y+Znt4wJwQMMbhmJPVA5lCKl03RWzvs7d5RGR05tWCO
9z5KoRVcXWaAkTxOHiQcxjwM3aaXcd7AdRZF9h216o3fZBMkbGp7ID+YRbJQuyHn
x/Mc5MTLFNWrABqnj+nkLdni6uSq08FRtyZRUxj4+vqJWB5oxuU6Br3Dh+UHqsBk
kBIvVQGNjrHW7p+ZncYp3Ykg2WG16yYsXxX1IdUrbtqshRI+v+0diAWy3P5XTzEp
wBptTChP9Q7M7qLADRizoQlIsY2v40zmHhL8yuM4kOpU58I16BQlTsb0nkWFmQ/J
70DdRvXSpCgOC21i0hqdBWKBVkY+rbJqpGUUaz4VsQIDAQABMA0GCSqGSIb3DQEB
DQUAA4IBAQA01Ja9ZSUzYsiXiH6LYJIo2ricGrtBkwIrIdzao3yz/akJzuBqDVzo
N4YrwDLzlRPfnLf1B19V6LqiUteZQonPXHbxI4dI/bpiik0/O2IjYfj2akUp2205
GLWo0XhwWO7LujmbNVIKFPxGxo42cDWKxW0iSiw4/EAQLnywhGdzJv9d+HQWwxUz
1uYi58ERHyWYl9Q0R3KBYxhXZYbSno0gcyZasta+mBuNJZZ12mbbZyuQVWkG7sjM
siDMDmFNzSNH4HVI6Eo1XQoHAR6YfWiGwwkUy+h01M2ErsR8IBwHc8QBWk8W9Pi7
z/1eu6WQhhJZTBC6nBq2GugCPjeyhmPS</ds:X509Certificate>
         </ds:X509Data>
      </ds:KeyInfo>
      <ds:Object>
         <xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-37072296">
            <xades:SignedProperties Id="SignedProperties-1013233898">
               <xades:SignedSignatureProperties>
                  <xades:SigningTime>2022-05-17T23:18:51.529Z</xades:SigningTime>
               </xades:SignedSignatureProperties>
            </xades:SignedProperties>
         </xades:QualifyingProperties>
      </ds:Object>
   </ds:Signature>
</InitRequest>
0

Cześć
Próbuję nawiązać połączenie z KSeF wysyłając plik InitSignied.XML używając do tego celu Delphi XE6 oraz komponentów REST Client, REST Request i REST Response.
AuthorisationChallenge udaje mi się uzyskać, ale przy próbie wysyłki InitSignied.XML otrzymuję komunikat 415 Unsupported Media Type

var RequestStringStream: TStringStream 
...
  RestClient.ContentType := 'text/xml';

  with RESTReq do
  begin
    ClearBody;
    Method := rmPost;
    Resource := 'online/Session/InitSigned';
    Accept := 'text/xml';
    AddParameter('Content-Type', 'text/xml');
  end;

  RequestStringStream := TStringStream.Create(xml_init_file, TEncoding.UTF8);

  try
    try
      RESTReq.AddBody(RequestStringStream, ctAPPLICATION_xml);
      RESTReq.Execute;  // <--- HTTP/1.1 415 Unsupported Media Type
    except
      on E: Exception do
        mmo1.Lines.Add(E.Message);

      on E: EHTTPProtocolException do
        mmo1.Lines.Add(E.ErrorMessage + ' ' + IntToStr(E.ErrorCode))
    end;
  finally
    fJSONResp := RESTResp.Content;
    mmo1.Lines.Add(fJSONResp);
    RequestStringStream.Free;
  end;

Próbowałem Content-Type: 'application/json' lub Content-Type: 'text/xml'' ale za każdym razem mam błąd HTTP/1.1 415 Unsupported Media Type.

Co należy dodatkowo ustawić aby uzyskać połączenie?

0

Witam wszystkich,

mam problem z pobraniem informacji o wysłanych fakturach. Inicjalizuję połączenie tokenem sesji (w ramach testów jako Firma2 - odbiorca faktury) i tworząc zapytanie:
online/Query/Invoice/Sync

{
"queryCriteria": {
"subjectType": "subject2",
"type": "incremental",
"acquisitionTimestampThresholdFrom": "2022-05-17T0800",
"acquisitionTimestampThresholdTo": "2022-05-19T0800"
}
}

otrzymuję odpowiedź:

"exceptionDescription": "Dokument nie jest zgodny ze schemą (json)."

jest ktoś w stanie mi podpowiedzieć co źle wpisałem?

Z góry dziękuję!

0

Podczas próby załadowania faktury metodą Invoice/Send wyskakuje mi BAD REQUEST 400, z opisem "Nieprawidłowy format dokumentu (json).". Mój payload wygląda następująco:

{
  "invoiceHash": {
    "hashSHA": {
      "algorithm": "SHA-256",
      "encoding": "Base64",
      "value": "kR+JzfcVlLyflv2gtYIYryyFBzMMccIfknOHOfbTc24A"
    },
    "fileSize": 3680
  },
  "invoicePayload": {
    "type": "plain",
    "invoiceBody": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmL(...)a2E+DQo8L0Zha3R1cmE+DQo="
  }
}

Ktoś wie czy może znowu jakieś elementy JSONa uległy zmianie, albo co mogę robić źle?

0

Mam ciekawy problem ..
Mam podpis elektroniczny SHA256 . i odcisk palca o długości 41 znaków .
A jak jest to u Was ?
Mam info z MF ... i oczekują z odcisku palca 64 znaki
Uprzejmie informujemy, że przekazany odcisk jest obliczony metodą sha1, a wymagany jest sha256.
Algorytm sha1 został wycofany z użycia z końcem ubiegłego roku.

Jak to jest u Was ?
Można podpisać Profilem Zaufanym ?

0

Czy ktoś rozumie czym jest ProcessingCode 431 "Błąd etapu weryfikacji wyników podprocesów przygotowania części odpowiedzi" przy odczycie faktur? (użycie QueryInvoiceAsyncStatus)
Z tego co widzę to gdy zmniejszam zakres dat to działa bez problemu, chociaż nie jestem pewny czy problemem jest zbyt duży zakres dat czy zbyt duża ilość faktur.

0

Przy wizualizacji faktury, nie wszystkie informacje mi się wyświetlają np. brakuje terminu płatności, który w pliku xml jest.
Kod w c# jest taki:

            XPathDocument doc = new XPathDocument(plikXml);
            XmlWriter writer = XmlWriter.Create(plikHtml);
            XslCompiledTransform transform = new XslCompiledTransform();
            XsltSettings settings = new XsltSettings();
            settings.EnableDocumentFunction = true;
            transform.Load(plikXsl, settings, new XmlUrlResolver());
            transform.Transform(doc, writer);
            writer.Close();
            System.Diagnostics.Process.Start(plikHtml);

            Co tu jest źle?
0

Witam,

mam jeszcze jedno pytanie odnośnie łączenia się z KSeFem już nie poprzez Swaggera: https://ksef-test.mf.gov.pl/swagger/index.html, ale poprzez JAVĘ (lub inny język).
Przygotowałem sobie scenariusz testowy dla dwóch firm (A oraz B), mam wygenerowane tokeny autoryzacyjne i chciałbym się właśnie poprzez token autoryzacyjny połączyć i np. pobrać listę wysłanych faktur, więc testując w SWAGGERZE zapytanie o faktury, otrzymuję "exceptionDescription": "Brak tokena sesyjnego.", więc musze najpierw się zautoryzować tokenem sesyjnym po kliknięciu w klawisz AUTHORIZE, co jest dla mnie jasne, więc tak samo poprzez JAVĘ muszę się połączyć tokenem sesyjnym i się autoryzować, w jaki sposób to zrobić?
Byłby ktoś w stanie mi podpowiedzieć jakie zapytania po kolei powinny być wykonane aby otrzymać takie połączenie?

Najpierw zapewne /online/Session/AuthorisationChallenge
i właśnie nie wiem co dalej - jak wykonać autoryzację sesji, jakim poleceniem...

0

Gorąca prośba o pomoc.

Dostaję błąd:
exceptionCode: 21329, exceptionDescription: "Nieprawidłowy podpis"
przy wywołaniu procedury InitSession
na środowisku testowym interfejsów interaktywnych.

pliki.zip

Szczegóły:

Generuje klucze sekwencją

openssl req -new -keyout testkey.key -out testcsr.csr -subj '/CN=FirmaTestowa/SN=Kowalski/GN=Jan/O=Firma Testowa/C=PL/L=Lodzkie/serialNumber=NIP-1121833490'
openssl x509 -signkey testkey.key -in testcsr.csr -req -days 365 -out testcert.pem
openssl pkcs12 -export -out testkeystore.p12 -inkey testkey.key -in testcert.pem

W jej wyniku mam certyfikat:
testkeystore.p12

W edytorze kontraktów interfejsów interaktywnych na wersji testowej
https://ksef-test.mf.gov.pl/swagger/index.html?api=KSeF-online.yaml

wywołuję procedurę:
online/Session/AuthorisationChallenge
z parametrem:

{
  "contextIdentifier":{
    "type":"onip",
    "identifier":"1121833490"
  }
}

W odpowiedzi ostaję:

{
  "timestamp": "2022-05-21T10:25:55.938Z",
  "challenge": "20220521-CR-CF52D0830F-EBAF31DF1B-EE"
}

Kod challenge: 20220521-CR-CF52D0830F-EBAF31DF1B-EE
wstawiam do pliku
InitSessionSignedRequestExample.xml

Podpisuję plik InitSessionSignedRequestExample.xml
wcześniej wygenerowanym certyfikatem testkeystore.p12

wywołuję procedurę:
online/Session/InitSession

W odpowiedzi dostaje błąd:

{
  "exception": {
    "serviceCtx": "srvTEMFB",
    "serviceCode": "20220521-EX-1F1247471A-E5F1341C0A-8D",
    "serviceName": "online.session.session.signed.init",
    "timestamp": "2022-05-21T10:27:15.187Z",
    "referenceNumber": "20220521-SE-6D401DED28-E099957EF1-9F",
    "exceptionDetailList": [
      {
        "exceptionCode": 21329,
        "exceptionDescription": "Nieprawidłowy podpis."
      }
    ]
  }
}

W załączniku wszystkie niezbędne pliki.
Prośba o pomoc.

0

Po otrzymaniu Upo dostaję zawartość, którą dekoduję Base64. Otrzymany XML zawiera różne informację, ale widzę, że coś jest więcej zakodowane. Co to za zawartość, oraz jak to rozkodować?

0

Jak wg Was najlepiej pobierać numery KSeF wysłanych faktur.. ? Czy po wysyłce sprawdzać status w ramach tej samej sesji ? Czy może pobierać to UPO, odkodować i z tego XMLa?
Chodzi mi o sytuacje po pierwsze żeby mieć info ze faktura jest w KSeF więc może już iść do klienta (chyba fakt, że jest numer KSeF jest wystarczający by to stwierdzić) a dwa zapisywać sobie u siebie numery KSeF przy własnych numerach faktur. Chodzi mi o komunikacje interaktywną bo przy wysyłce paczki to i tak nie wiadomo do końca kiedy ale po fakcie trzeba sprawdzać zapewne UPO albo też pobierać liste swoich faktur (zresztą podobnie w interaktywnej by się dało)

Podobnie zastanawia mnie momenty wysyłki do KSeF po wystawieniu we własnej aplikacji. Czy to miałby być moment zapisu z pytaniem czy wysłać , czy może później ktoś musi wybrać opcję wyślij.. kiedy już jest pewny, że wszystko OK i nic nie będzie zmieniał.. Teoretycznie dopóki faktura nie jest w KSeF nie powinna trafić do klienta w żadnej postaci.

0

nowe wersje wywołań - v2 - czy to oznacza, że przestaną obsługiwać stare? ktoś coś wie? póki co mi stare działają.

0

Cześć, staam się nawiązać sesję z tym ich API, wygenerowałem taki xml. Mam testowy Challenge z kroku 1,

<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>20220525-CR-EE48E2A950-79FDEA0848-E5</Challenge>
    <Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
      <ns2:Identifier>5250001090</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 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/2000/09/xmldsig#rsa-sha1" />
      <Reference URI="">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <DigestValue>x6FdmzK1vmJF8ORqVg2Doj+scrc=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>YH/YgXE0dncwtgJ2KxYizRdM+ttucXGP1llMgYFrZGQ1p5EXB7quUZKIFuPkzdzYhQlfPnRg6EmCKUZ4VsIxyFIDcEEQ11eojxV+0cmbKHukTTpTI4dlwz09r78nqtVibWHESoo750eH+ZAdWppHKwNWYD3wVIE5D6U6uhxGm1k=</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509Certificate>MIIDyzCCArMCFAkz7RlOLDf0xehCMXwmf3GQszJYMA0GCSqGSIb3DQEBDQUAMIGhMQswCQYDVQQGEwJQTDESMBAGA1UECAwJTHViZWxza2llMQ8wDQYDVQQHDAZMdWJsaW4xDjAMBgNVBAoMBXNraWNoMQwwCgYDVQQLDANFQ00xFDASBgNVBAMMC3Rlc3Qga2xpZW50MR4wHAYJKoZIhvcNAQkBFg9rb3dhbHNraUB4eHgucGwxGTAXBgNVBGEMEFZBVFBMLTUyNTAwMDEwOTAwHhcNMjIwNTI0MTM1NzI0WhcNMjIwNjIzMTM1NzI0WjCBoTELMAkGA1UEBhMCUEwxEjAQBgNVBAgMCUx1YmVsc2tpZTEPMA0GA1UEBwwGTHVibGluMQ4wDAYDVQQKDAVza2ljaDEMMAoGA1UECwwDRUNNMRQwEgYDVQQDDAt0ZXN0IGtsaWVudDEeMBwGCSqGSIb3DQEJARYPa293YWxza2lAeHh4LnBsMRkwFwYDVQRhDBBWQVRQTC01MjUwMDAxMDkwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2AxtoSWHrqocsiVEcG1kUYkycHWxhL4hYV5LVDIlXEVpP3ZEJKGIGI75fkopmuZGrdXWCctKXhH6vFyXOIzVZGAmLiogYDhc/AkASER8d9AJNqjwcdnRVq3AkGNurf9wRwUMAolP1GAiRv+3U7zuqwUDnEm72AM0VdGaVwE9egVreidLbei5u3tz1kKoJ6iVy/Au6IfqY0JQrcfenoj73Lhrlrh0uZd7vJRz0RHmPU6mFXC0hvX8fWeuMmRs6b2Aw3k/csnuwtgZO9NmigUDnDKkoIvrDSdHPQ42IMV/rv7oDPjIjCmmXKBIAJb91yUx4se5mWBQ/TYANjv1LAQBWQIDAQABMA0GCSqGSIb3DQEBDQUAA4IBAQBnDmRfPNyN/fwwbl/Okejg9NkWufZkLgahKhhMg8UzlhSSwKcrPlc7OYhWWozHSg3TVNNDjMxQHjrCCY4TZFg+L1Q++A1A2v5tm30cT8Aa4dy/ECamPVqCzO2uaJhNEgrYNHVtP6x/g81GuZX/TXc3bKnju0mLIv++4dcWapr1CbjDTPrIF+Xz/y4kUJrJZMavS3XU/PqjDB/88vzt49/YEE7NqYiehiVUtGgvied32g249qfrqwexxnm1RuUHkT/Sx5zlqG3OHbbbZixuEAWg+S2yR+Q/t/5cUdFms9a+SfORl0jRGhoFwAzTd+4S5QX68XRtY7jtrdF3kiniWJCF</X509Certificate>
      </X509Data>
    </KeyInfo>
  </Signature>
</ns3:InitSessionSignedRequest>

Certa wygenerowałem tak:

CSR:
openssl req -newkey rsa:2048 -nodes -keyout key.pem -out certificate.csr -subj "/C=PL/ST=Lubelskie/L=Lublin/O=skich/OU=ECM/CN=test klient/emailAddress=[email protected]/2.5.4.97=VATPL-5250001090"

CSR -> CRT:
openssl x509 -req -in certificate.csr -signkey key.pem -out certificate.crt -sha512

CRT -> PFX:
openssl pkcs12 -export -in certificate.crt -inkey key.pem -out certificate.pfx –CSP “Microsoft Enhanced RSA and AES Cryptographic Provider”

W odpowiedzi dostaję: [{"exceptionCode":9105,"exceptionDescription":"Nieprawidłowa treść podpisu."}]}}

Czego mi brakuje w tym xml ? chyba że może jest certyfikat zły.
Używam w .NET "SignedXml"

0

dostosowuję się do ich zmian 1.0.3 i jest nowe uprawnienie: introspection, z wiki: w psychologii oraz pedagogice, obserwacja oraz analiza własnych subiektywnych stanów psychicznych, myśli i przemyśleń 😀

może ktoś ma jakieś przemyślenia co to za uprawnienie?

0

zajmuję się obecnie wysyłką wsadową do KSEFa. czy mógłby mi ktoś szczegółowo wyjaśnić co mam wrzucić w sekcje encryption i packageSignature dla operacji batch/Init?(te wszystkie rzeczy kryptograficzne to dla mnie nowość, nie miałem z tym wcześniej styczności, a dokumentacja na stronie ksefa pozostawia wiele do życzenia).
ewentualnie może ktoś poratuje fragmentami kodu?

0

Jak to jest z tymi limitami, bo albo niektóre nie są przestrzegane, albo jednostką nie jest minuta. Na pewno mogę wysłać pojedynczą fakturę częściej niż raz na godzinę.

1

Cześć,
byłby ktoś w stanie mi podpowiedzieć w jaki sposób mogę pobrać UPO?
Trzeba wykonać jakieś zapytanie JSONem jak z innymi rzeczami czy trochę inaczej to wygląda?

0

Mam taki przykładowy XML jaki podobno jest wymagany aby wysłać

<ds:SignedInfo>
		<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
		<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
		
		<ds:Reference URI="">
		<ds:Transforms>
			<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
		</ds:Transforms>
		<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
		<ds:DigestValue>jiMz55DsMsWlG0uLIQJVSVIu2X6HvyGBepabQjfpAKU=</ds:DigestValue>
		</ds:Reference>
		
		<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-1845345681">
			<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
			<ds:DigestValue>2/SZsDROlE9PYy2iTa+u6qcnxro=</ds:DigestValue>
		</ds:Reference>
	</ds:SignedInfo>

U mnie generuje się tylko to po dodaniu reference w .NET.

<SignedInfo>
	<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
	<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
	<Reference URI="">
	<Transforms>
		<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
		<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
	</Transforms>
	<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
	<DigestValue>TS3zBFeYWZFbwULVD7jQ1yggyUA=</DigestValue>
	</Reference>
</SignedInfo>

Brakuje mi tego 1 reference URI... ktoś jakiś pomysł jak to uzupełnić ?
Korzystam z tego https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.xml.keyinfox509data?view=dotnet-plat-ext-6.0

0

ile Wam udaje się wysłać faktur na /online/invoice/send?

ja wysłałem w ciągu kilku sekund 3 faktury, a według ich można wysłać jedną https://ksef.mf.gov.pl/document/LimitValues/1.0, przy 4 mam błąd z limitem.

0

Hello,

{
"invoiceHash": {
"hashSHA": {
"algorithm": "SHA-256",
"encoding": "Base64",
"value": "ndeJt2MSJXAPbidtqM8Hnq7c2iIa7qY/y/dgkJUaQT4="
},
"fileSize": 2135
},
"invoicePayload": {
"type": "encrypted",
"encryptedInvoiceHash": {
"hashSHA": {
"algorithm": "SHA-256",
"encoding": "Base64",
"value": "CpecTP+QmTAbzC4i1rlJ0VKVZwJSXp/cKxkkvdElFG0="
},
"fileSize": 2144
},
"encryptedInvoiceBody": "RJ1H3kOesCQHUkcpTi7GTbIQkF0...jXwQRA="
}
}

I reviewed the Swagger request for the Send Invoice request and read some documents but I couldn't find any information on how to encrypt some fields in this request. Could you explain how I can generate these values?

  • encryptedInvoiceBody
  • value of hashSHA in invoicePayload
  • value of hashSHA in invoiceHash

Thanks!


Witam,

Przejrzałem żądanie Swagger dotyczące żądania wysłania faktury i przeczytałem kilka dokumentów, ale nie mogłem znaleźć żadnych informacji o tym, jak zaszyfrować niektóre pola w tym żądaniu.

Czy mógłbyś wyjaśnić, jak mogę wygenerować te wartości?

  • encryptedInvoiceBody
  • value <- hashSHA <- invoicePayload
  • value <- hashSHA <- invoiceHash

Dziękuję

1

Pytanie na temat batch:

W dokumentacji jest tak

W pierwszej kolejności należy przygotować dokument http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001/InitRequest i uzupełnić go informacjami z poprzedniego kroku. Następnie przygotowany dokument należy podpisać wybranym wektorem uwierzytelniania. Ostatecznie podpisany dokument inicjalizacji wysyłki należy wysłać na końcówkę Systemu odpowiedzialną za inicjalizację procesu wysyłki wsadowej. W odpowiedzi wróci numer referencyjny, który posłuży m.in. do sprawdzenia statusu procesu oraz uzyskania UPO.

No to zalozmy ze jest sobie firmaABC
Firma wystawia faktury dla swoich klientow
FirmaABC ma authToken.
Sesje, wysylka pojedynczych faktur w trybie online - dziala ok.

Przez te ksefowe limity jedynym sensownym sposobem dzialania jest batchowa wysylka przy wiekszych ilosciach.
Np firmaABC ma 100 faktur na godzine i trzeba to pchac czasami kilka razy dziennie. Wg limitow 1 init batchowy na godzine, 2 wysylki batchowe na godzine.
Tu jeszcze jest ok - bo sobie to przygotuje, zwaliduje, popakuje.
Z dokumentacji wynika ze trzeba przy batch init podpisywac ten initRequest wektorem uwierzytelniania. Czyli PZ albo Podpis.

no i teraz pytanie: jak to zautomatyzowac? integracja z PZ, przechowywac podpisow to nie wiem nawet jak - da sie w ogóle takie cos zrobic? ale to z bezpiecznego punktu widzenia wyglada na bez sensu.
czy to znaczy ze za kazdym razem przy wysylce trzeba wolac pania krysie zeby podpisala / autoryzowala?

Jedyne co wymyslilem to robi sie paczka gotowa do wysylki -> system powiadamia wlasciwa osobe ze "hey trzeba podpisac paczke zeby poszlo to do ksefu". Wtedy taki payload ma status "podpisane" - no i leci do ksefu. Podobny patent jak w ifirmie np jest autoryzowana wysylka JPK czy kwitow do zusu.

Czyli podsumowujac jak wyeliminowac / zautomatyzowac ten krok z wymogiem podpisywania przez osobe.

1

Czy mógłby ktoś udostępnić wypełniony przykład z nazwą handlową do /common/Invoice/KSeF :
{
"invoiceDetails": {
"dueValue": "string",
"invoiceOryginalNumber": "string",
"subjectTo": {
"issuedToIdentifier": {
"type": "string"
},
"issuedToName": {
"tradeName": "string",
"type": "string"
}
}
},
"ksefReferenceNumber": "string"
}

0

Cześć, mam jeszcze pytanie czy tak powinna wyglądać sekcja Reference jest to prodczas wywołania InitSigned

<Reference 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>jiMz55DsMsWlG0uLIQJVSVIu2X6HvyGBepabQjfpAKU=</ds:DigestValue>
			</Reference>
			<Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties">
				<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
				<DigestValue>2/SZsDROlE9PYy2iTa+u6qcnxro=</ds:DigestValue>
			</Reference>

Gdy dodaję druga sekcję reference Type i URI dostaję błąd "Wadliwy element Reference." Jak powinna wyglądać ta sekcja, może ktoś się spotkał z takim błędem ?
Natomiast jak mam w XML tylko tą pierwszą sekcję reference URI to mam błąd: "Dokument nie jest zgodny ze schemą (xsd)."
Wartość w DigestValue to ma być jakoś automatycznie generowane ?

0

Ogromna prośba jeśli możecie "rzucić" okiem na mój xml. Może ja już nie dostrzegam czego mi brakuje, z sądzę że jest to coś prostego.

<?xml version="1.0" encoding="UTF-8"?>
<ns3:InitSessionSignedRequest xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/online/types/2021/10/01/0001"
    xmlns:ns2="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001"
    xmlns:ns3="http://ksef.mf.gov.pl/schema/gtw/svc/online/auth/request/2021/10/01/0001">
    <ns3:Context>
        <Challenge>20220530-CR-B89DC4F5CF-A81D85DDDD-0B</Challenge>
        <Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
            <ns2:Identifier>1801908070</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-2085390019"
        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/2000/09/xmldsig#rsa-sha1" />
            <Reference Id="r-id-1" 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>m46bd2sjxFa1d1ARXXB3mjAua9aI8BbIGhOjQUElhNc=</DigestValue>
            </Reference>
        </SignedInfo>
        <SignatureValue>YxY75Qvlnag1S3CDFWuhNxT9CCZAiAEy7MI13I3gXy2PxEffLYha3KeEzpTO99sQf/rltlR2T/b6svjV9bX1I9et8MZMsJxRv7A1snp+7pcr+Mvopo1DoFhyZJT7jvTbeWTBjsTWnoqZm1SVK0GIx9+1AVhh0fNq1Rdg58+qgF+x8hjtBpO/8LSM5gzrh6gjAbMDFBxEuQrw3JOt5oVhstDm5D1QzbOVOd5Mm9M0vkGFfe9jQrfYy8kvptKQknlQbAiRO9SEnLK4gYC3uPuTNaYAYbDtxCzek7peQ3u7KNIF2y2y5cc8f7Q4F94LdAsF1xWJcZOZ30YA21S09kQ4Rw==</SignatureValue>
        <KeyInfo>
            <X509Data>
                <X509IssuerSerial>
                    <X509IssuerName>Description=Jan Kowalski NIP-1801908070, SERIALNUMBER=NIP-1801908070, L=Mazowieckie, C=PL, O=Testowa firma, G=Jan, SN=Kowalski, CN=Jan Kowalski</X509IssuerName>
                    <X509SerialNumber>615071608621356082186517744850930040693378555787</X509SerialNumber>
                </X509IssuerSerial>
                <X509SubjectName>Description=Jan Kowalski NIP-1801908070, SERIALNUMBER=NIP-1801908070, L=Mazowieckie, C=PL, O=Testowa firma, G=Jan, SN=Kowalski, CN=Jan Kowalski</X509SubjectName>
                <X509Certificate>MIID7TCCAtUCFGu8w8s2xZn//zuxdOhaj41DhJ+LMA0GCSqGSIb3DQEBCwUAMIGyMRUwEwYDVQQDDAxKYW4gS293YWxza2kxETAPBgNVBAQMCEtvd2Fsc2tpMQwwCgYDVQQqDANKYW4xFjAUBgNVBAoMDVRlc3Rvd2EgZmlybWExCzAJBgNVBAYTAlBMMRQwEgYDVQQHDAtNYXpvd2llY2tpZTEXMBUGA1UEBRMOTklQLTE4MDE5MDgwNzAxJDAiBgNVBA0MG0phbiBLb3dhbHNraSBOSVAtMTgwMTkwODA3MDAeFw0yMjA1MzAwNjMxMTFaFw0yMzA1MzAwNjMxMTFaMIGyMRUwEwYDVQQDDAxKYW4gS293YWxza2kxETAPBgNVBAQMCEtvd2Fsc2tpMQwwCgYDVQQqDANKYW4xFjAUBgNVBAoMDVRlc3Rvd2EgZmlybWExCzAJBgNVBAYTAlBMMRQwEgYDVQQHDAtNYXpvd2llY2tpZTEXMBUGA1UEBRMOTklQLTE4MDE5MDgwNzAxJDAiBgNVBA0MG0phbiBLb3dhbHNraSBOSVAtMTgwMTkwODA3MDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnW0HJJggk7wD89fFKaSrbe9drqDhFPm18AmPL65eaLIqt2gMOIEwYGldz+PDQxYmkcvQETvFyyBST/6SxOyU721kO532Wh3WAfWVemcu+NLMqk7AhUoXfG0JBf6ef6I/LrGR8al94niKTfwQmeeFC8owGo9bqri6GVGv51pLIpqqtF9FTglredyvm97Z0zQsprBhILQlV8cLX/e3zc+Umb6fKlV4C0w+BNcoG5yiCDjgqWKOpZOaOxQezRxTS7F9sr2+QVjjC+sxSv8eCDEgaWlErouu0KDQaoulCvyMs7NK9F5y/aRlhy+B8jvBiBj5jEh/ckG+e0UKcflbES+/cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAcdvnbDilOYE+I/M2OqOa1O860PKRInISkah5ST3Y50dZTJxWEksSe02WpgSjkWmfhbneBsqEgUidSibJ+V9uA87fDGLdWnh645V3BRGQ3TkDT2Cn0NHFq2ECpkqw36hO0MB39PZsP4kM8E9xAIl7Xy38s01lUpFqTZmPysiaoB9uVn9s0mFdr/YCbgXH6VwVHTlm3kyZS+9A7mVdwIYmJ4PUsj0wQx4+VWWxqIhMleOBIyvKdHernx9jHaaVLZ/5vS9VtBKMY8Rwc9sPQ8Q207TBy8+LXoIM7aU6d0CTiQXmoYK4JIWo6hRwzl9vqRlDr47RE3ibPx8qULB9C1dJfw==</X509Certificate>
            </X509Data>
        </KeyInfo>
        <ds:Object xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <xades:QualifyingProperties Target="#Signature-0"
                xmlns:xades="http://uri.etsi.org/01903/v1.3.2#">
                <xades:SignedProperties Id="SignedProperties">
                    <xades:SignedSignatureProperties>
                        <xades:SigningCertificate>
                            <xades:Cert>
                                <xades:CertDigest>
                                    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                                    <ds:DigestValue>+YATDF/7ahpXlW9C4FaVKqUEsFA=</ds:DigestValue>
                                </xades:CertDigest>
                                <xades:IssuerSerial>
                                    <ds:X509IssuerName>Description=Jan Kowalski NIP-1801908070, SERIALNUMBER=NIP-1801908070, L=Mazowieckie, C=PL, O=Testowa firma, G=Jan, SN=Kowalski, CN=Jan Kowalski</ds:X509IssuerName>
                                    <ds:X509SerialNumber>6BBCC3CB36C599FFFF3BB174E85A8F8D43849F8B</ds:X509SerialNumber>
                                </xades:IssuerSerial>
                            </xades:Cert>
                        </xades:SigningCertificate>
                    </xades:SignedSignatureProperties>
                </xades:SignedProperties>
            </xades:QualifyingProperties>
        </ds:Object>
    </Signature>
</ns3:InitSessionSignedRequest>
0

Cześć
Próbuję zalogować się za pomogą tokenu. Na razie token utworzyłem ręcznie w Aplikacji na stronie https://ksef-test.mf.gov.pl/ i jest on tam aktywny w postaci 64 znaków.
U siebie w programie próbuję zaszyfrować ten token:

var
  fs: TFormatSettings;
  AuthorisationChallengeDateTime: TDateTime;
  
  rsa: TRSAEncSign;
  EncryptedToken: string;
begin
  fs := TFormatSettings.Create;
  fs.DateSeparator := '-';
  fs.ShortDateFormat := 'yyyy-MM-dd';
  fs.TimeSeparator := ':';
  fs.ShortTimeFormat := 'hh:mm';
  fs.LongTimeFormat := 'hh:mm:ss:zzz';  
  ...
  // Wyliczam czas w milisekundach
  
  fAuthorisationChallengeTimeStamp := jsonRes.Get(0).JSONValue.Value;
  
  AuthorisationChallengeDateTime := StrToDateTime(fAuthorisationChallengeTimeStamp, fs);
  
  fChallengeMiliseconds := MilliSecondsBetween(AuthorisationChallengeDateTime, 0);

  // Szyfrowanie kluczem publicznym
  
  rsa := TRSAEncSign.Create;
  rsa.OutputFormat := base64;
  rsa.FromPublicKeyFile('publicKey.pem');
  EncryptedToken := rsa.Encrypt(fToken + '|' + IntToStr(fChallengeMiliseconds));
  rsa.Free;   
end;

Do szyfrowania tokena użyłem komponentów TMS Cryptography Pack (na razie w wersji Trial). EncryptedToken ma długość 344 znaków.

Niestety przy próbie logowania uzyskanym zaszyfrowanym tokenem otrzymuję komunikat: "exceptionCode":23003,"exceptionDescription":"Nieprawidłowo zaszyfrowana treść."

W jaki sposób w DELPHI XE lub DELPHI XE6 prawidłowo zaszyfrować ten token?
Czy bez dodatkowych komponentów (TMS Cryptography Pack, SecureBlackBox lub innych) jest to w ogóle możliwe?

0

Cześć

Próbuję wysłać fakturę online - bez szyfrowania.
Mam JSONa - załączam w pliku.
Otrzymuję odpowiedź "Nieprawidłowy format dokumentu (json).".
Czy ktoś będzie w stanie powiedzieć, co nie tak jest z tym JSON'em? - zawartość faktury trochę skróciłem, żeby nie zajmowała połowy ekranu...
Z góry dzięki za pomoc...

inv_json.png

0

Cześć.
Mam jeszcze jedno pytanie - czy przykłady ze strony ministerstwa działają?
Ja testowo wciągnąłem XML faktury z przykładu 1 (załączam w zip) i próbowałem go wysłać w sesji online - ale pytając o status faktury po chwili otrzymuję informację "Dokument nie jest zgodny ze schemą (xsd).
Czy ten plik faktycznie jest niezgodny - czy coś u mnie szwankuje?

Dodam, że chodzi o system testowy.
Jeśli pliki testowe są prawidłowe - co mogłem popsuć, kodując tylko dane binarne XML'a w Base64?
Skrót jest zgodny z zawartością, więc wydaje się, że otrzymują dokładnie tego XMLa, którego wysyłam...

P1.zip

0

Próbuję wysłać podpisany InitSessionSignedRequest (w załączniku)

InitSignedRequest_20220531_144206.xml.zip

ale dostaję komunikat, że dokument niezgodny ze schemą XSD. Czy ktoś może pomóc zweryfikować co jest nie tak?
Próbowałem na testowym środowisku pobrać ze strony ich przykładowy plik InitSessionSignedRequest, podmienić dane z SessionChallenge, podpisać go i wysłać, ale też zwraca, że niezgodny ze schemą. Dodam, że ten sam podpis działa dla wysyłki WSADOWEJ.

a tak wygłada niepodpisany XML

<?xml version="1.0" encoding="UTF-8" ?>
<ns3:InitSessionSignedRequest 
	xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/online/types/2021/10/01/0001"
	xmlns:ns2="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001"
	xmlns:ns3="http://ksef.mf.gov.pl/schema/gtw/svc/online/auth/request/2021/10/01/0001">
<ns3:Context>
<Timestamp>2022-05-31T12:52:31.860Z</Timestamp>
<Challenge>20220531-CR-FFBD96B21D-14F6B0D47A-6A</Challenge>
<Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
<ns2:Identifier>1546452658</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://ksef.mf.gov.pl/wzor/2021/08/05/08051/</ns2:TargetNamespace>
<ns2:Value>FA</ns2:Value>
</ns2:FormCode>
</DocumentType>
<Type>SerialNumber</Type>
</ns3:Context>
</ns3:InitSessionSignedRequest>
0

Przy próbie wywołania metody interaktywnej Status, lub Status z reference number dostaję komunikat "Brak tokenu autoryzacyjnego". Gdzie go podać? W Swagger UI nie ma informacji, gdzie podać ten token, gdzie znajdę, aktualne schemy XSD oraz prawidłowe wywołania tych metod?

0

Teraz z kolei po udanej wysyłce faktury, który przechodzi w trybie WSADOWYM, przy próbie sprawdzenia jej statusu otrzymuję, że dokument jest niezgodny ze schemą XSD.

object TSendInvoiceResponse
elementReferenceNumber="20220602-EE-19698FCF01-31EC55CC1A-9E"
processingCode=100
processingDescription="Proces został zarejestrowany."
referenceNumber="20220602-SE-22C57FCE41-96F5C4E031-88"
timestamp="2022-06-02T0706.501Z"
end

object TStatusInvoiceResponse
elementReferenceNumber="20220602-EE-19698FCF01-31EC55CC1A-9E"
processingCode="425"
processingDescription="Dokument nie jest zgodny ze schemą (xsd)."
referenceNumber="20220602-SE-22C57FCE41-96F5C4E031-88"
timestamp="2022-06-02T0715.579Z"
end

Wysyłana faktura: KSeF202204281131.7z

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