Krajowy system e-Faktur

0

Czesc, śledzę ten topik oraz grzebalem w dokumentacji i webinarkach ale nie moge tego okreslic.
Moze ktos z szanownych devow ma odpowiedzi na te pytania.
Niestety z info ksef nie odpisuja mi na zaden email i troche utknalem.

  1. Czy wymagane jest uzyskanie akredytacji w ramach Rządu RP na wysyłanie/otrzymywanie faktur na konto produkcyjne? Jeśli tak, to jak? Ktos moze przerabial ten temat?
  2. Gdzie znaleźć stronę internetową, którą rząd udostępnia bezpłatnie, aby zarządzać e-fakturowaniem? Jak go aktywować? Wiem ze to ten e-mikrofirma ale czy tam jest jakis sandbox panel ?
  3. W jaki sposób możemy otrzymać powiadomienie, że wysłana faktura została dostarczona lub nie została dostarczona i dlaczego? Czy to jest tozsame z faktem nadania numer ksef?
  4. Czy istnieje limit sesji, które mogę otworzyć, powiedzmy, w ciągu jednego dnia (lub w jakimkolwiek przedziale czasowym)?
  5. Czy istnieje minimalna i maksymalna liczba faktur, którymi mogę zarządzać w ramach sesji?

z gory dziekuje za pomoc

0

@alexz:

  1. Czy wymagane jest uzyskanie akredytacji w ramach Rządu RP na wysyłanie/otrzymywanie faktur na konto produkcyjne? Jeśli tak, to jak? Ktos moze przerabial ten temat?

Każda firma z NIPem będzie miała założone konto. Bodaj jest to na stronie FAQu MF

  1. Gdzie znaleźć stronę internetową, którą rząd udostępnia bezpłatnie, aby zarządzać e-fakturowaniem? Jak go aktywować? Wiem ze to ten e-mikrofirma ale czy tam jest jakis sandbox panel ?

Właśnie zadałem wyżej to samo pytanie :)

  1. W jaki sposób możemy otrzymać powiadomienie, że wysłana faktura została dostarczona lub nie została dostarczona i dlaczego? Czy to jest tozsame z faktem nadania numer ksef?

Tylko odpytując serwis i czekając na nr KSeF i UPO lub komunikat błędu.

  1. Czy istnieje limit sesji, które mogę otworzyć, powiedzmy, w ciągu jednego dnia (lub w jakimkolwiek przedziale czasowym)?

Tak, istnieje, ale nie wiadomo do końca, jaki on jest.

  1. Czy istnieje minimalna i maksymalna liczba faktur, którymi mogę zarządzać w ramach sesji?

Minimalna? 0. Maksymalna - teoretycznie nie ma takiego limitu. Sesją jest też np. wysyłka wsadowa, gdzie można wysłać 100 części po 50MB, co może odpowiadać nawet kilku tysiącom czy dziesiątkom tysięcy faktur.

0

Hej ludzie, czy ktoś może lepiej opisać punkt końcowy Query/Credentials/Sync? Myślałem, że dzięki temu będę mógł sprawdzić rolę self_invoice zamiast tylko w odpowiedzi InitSigned. Jest inny sposób sprawdzania poprawności przyznanych ról związanych z samorozliczaniem?

Inny temat: tyle throttling w środowisku testowym!! Mając tylko 5 requests w Authorization Challenge uzyskaj "Limit i poproszę". W produkcji jest lepiej? Czy mamy jakąkolwiek dokumentację opisującą, ile endpoint końcowy może obsłużyć?

0

Orientował się może ktoś czy jest jakiś interfejs graficzny/strona dostarczona prze KSeF do nadawania/odbierania uprawnień dla podmiotu/osoby? Doszły mnie słuchy, że coś takiego miało być ale nie udało mi się nic takiego namierzyć.

0

​/online​/Payment​/Identifier​/GetReferenceNumbers​/{PaymentIdentifier}
Pobranie listy faktur dla identyfikatora płatności
​/online​/Payment​/Identifier​/Request
Wygenerowanie identyfikatora płatności

Czy ktoś wie do czego to jest? W sensie, że po co mi ten indentyfikator? Co z tym dalej się robi?

0

C# - może ktoś wskazać co jest nie tak z podpisaniem - niby proste ale... :D

public XmlDocument Sign(XmlDocument xmlFile, DateTime challengeDate)
{
    FirmaXadesNetCore.XadesService xadesService = new();
    SignatureParameters parameter = new();
    parameter.SignatureMethod = SignatureMethod.RSAwithSHA256;
    parameter.SigningDate = challengeDate;

    parameter.SignaturePackaging = SignaturePackaging.ENVELOPED;

    using var cert = new X509Certificate2(_pfxFile, _pfxFilePass);
    using (parameter.Signer = new Signer(cert))
    {
        using MemoryStream xmlStream = new();
        xmlFile.Save(xmlStream);
        xmlStream.Flush();
        xmlStream.Position = 0;
        var signatureDocument = xadesService.Sign(xmlStream, parameter);
        return signatureDocument.Document;
    }
}

plik który wysyłam jest w załączniku
dostaje cały czas "Nieprawidłowa liczba wpisów [2] referencji podpisu [Signature-919b5f67-433d-4362-ad41-0f612ae642d3]"

1

@Radassos:
Problemem jest XAdesNet usuń jedną z referencji i przejdzie. Niestety nie mogę pokazać kodu.
Szukaj
AddReference
i jedna zakomentuj.
Prawdopodobnie chodzi o błędne nadawanie id - dwie referencje mają taki sam id.

0

Wie ktos o co chodzi w
VerifyInvoiceEssentials – etap weryfikacji założeń biznesowych dokumentu faktury

co dokladnie tu sie odbywa?

0

Cześć,

wysyłka wsadowa na ksef-demo. Najdalej docieram do
{
"timestamp": "2022-03-09T0959.716Z",
"referenceNumber": "",
"processingCode": 441,
"processingDescription": "Błąd etapu weryfikacji wyników podprocesów przetwarzania faktury",
"upo": null
}

Czasem utyka na:
{
"timestamp": "2022-03-09T0913.127Z",
"referenceNumber": "",
"processingCode": 320,
"processingDescription": "Zakończenie etapu odszyfrowania zaszyfrowanych części archiwum",
"upo": null
}

Zipy testowałem SharpZipLibem, 7zipem, winrarem. Metoda Deflate. Testowałem Zip i Zip64.

Działam tak:

  1. Zipuje dokumenty xml do jednego archiwum.
  2. Dzielę archiwum bajtowo na 2 części (pierwszy part 50bajtów, drugi part resztę).
  3. Szyfruje oba party zgodnie z instrukcją - to powinno być ok bo w sesyjnej wysyłce robię to tak samo i działa.
  4. Liczę hashe zaszyfrowanych partów i je podaje w partach. Liczę też hash niezaszyfrowanego całego archiwum i podaje w ...PackageSignature/PackageFileHash/HashSHA

Wydaje mi się, że robię wszystko jak w instrukcji. Cała wysyłka przebiega ok, kończę ją i zbieram statusy jak wyżej.

Czy nazwy faktur mają znaczenie? Są to zwykłe xml - np. test.xml
Nazwy partów KSeF_DEC1.tmp_001 i KSeF_DEC1.tmp_002 - są zgodne z regexem z xsd. Nazwa ..PackageSignature/Package Value = "Nowyfolder.zip"

Próbowałem też szyfrować faktury tym samym kluczem przed ich spakowaniem ale to chyba nie był dobry kierunek,

Czy komuś z Was działa poprawnie wysyłka wsadowa i dostajecie finalnie upo do niej?

2

Dla wszystkich, którym limit zapytan przeszkadza, to właśnie dostałem informację:

uprzejmie informujemy, że 10 marca 2022 r. planowana jest aktualizacja środowiska testowego KSeF oraz środowiska przedprodukcyjnego (Demo) KSeF w zakresie limitów poszczególnych zapytań (...) Jednocześnie, zostaną wskazane limity dla poszczególnych zapytań.

0

Mam bardzo podstawowe pytanie, ponieważ mam pierwszy raz do czynienia z podpisami kwalifikowanymi. Jak w praktyce w swoich aplikacjach będziecie podpisywali xml do inicjalizacji wysyłki wsadowej? Czy taka wysyłka będzie musiała być zaincjalizowana przez użytkownika, który podpisze xml swoim podpisem/pieczęcią firmową? Czy da się to całkowicie zautomatyzować bez ingerencji użytkownika - przechowywanie pieczęci w aplikacji? Co z bezpieczeństwem?

0

Takie pytanko, ten KSeF to konkurencja dla takich jak ifirma, infakt?

0

Czy ktoś zna maksymalny rozmiar pakietów w zapytaniu asynchronicznym? .yaml mówi, że ma nieograniczony rozmiar

Ale nie wiem, czy możemy temu zaufać...

0

Święto - po tygodniu KSeF przerobił moją fakturę na produkcji!

I mam głupie pytanie - jak pobrać UPO? Myślałem, że Invoice/Get będę miał fakturę z jakimiś dodatkowymi danymi, ale mam tam tylko ten XML który wysłałem.

0

Hej może ktoś podać przykład działającego zapytania o faktury :
/online/Query/Invoice/Sync

0

Cześć,

była ta aktualizacja testu i demo? Ja nie widzę różnić.

Wsadowa wysyłka dalej utyka w tym samym miejscu.

0

Hej!
Nie mogę uporać się z podpisem dokumentu. Wysyłki robię na bramkę batch/Init

W odpowiedzi dostaję komunikat "Brak referencji podpisu...". Wcześniej jeszcze miałem błędy "Nieprawidłowy podpis".

{
    "exception": {
        "serviceCtx": "srvTEMFC",
        "serviceCode": "20220311-EX-84C208F645-D4AA131CEC-D5",
        "serviceName": "batch.init",
        "timestamp": "2022-03-11T11:05:26.500Z",
        "referenceNumber": "20220311-SE-3AAF39CB5C-A00ABC9898-2D",
        "exceptionDetailList": [
            {
                "exceptionCode": 9109,
                "exceptionDescription": "Brak danych referencji podpisu [Signature-65bec1a7-3d9c-41df-8f96-0ca2d56a9f1c]."
            }
        ]
    }
}

Podpisany dokument:

<?xml version="1.0" encoding="utf-8"?>
<InitRequest xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001">
  <Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="p3:SubjectIdentifierByCompanyType" xmlns:p3="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
    <Identifier xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">8389331446</Identifier>
  </Identifier>
  <DocumentType>
    <Service xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">KSeF</Service>
    <FormCode xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <SystemCode>FA (1)</SystemCode>
      <SchemaVersion>1-0E</SchemaVersion>
      <TargetNamespace>http://ksef.mf.gov.pl/schema/gtw/svc/batch/init/request/2021/10/01/0001</TargetNamespace>
      <Value>FA</Value>
    </FormCode>
  </DocumentType>
  <Encryption>
    <EncryptionKey xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Encoding>Base64</Encoding>
      <Algorithm>AES</Algorithm>
      <Size>256</Size>
      <Value>uJtPS3qzyfqHwCuui8mXsm3hYxWxIy23mDZtYver9V/2SFys9dBDi9GAUL+Ne05TU3/K8KQ3jIUIJthNA+sA/4UNgfhw/6z4Lxlr7XaR4es4PTbZRN8EIXKHTuDQPKGsTGGTrjJFopbUOSDx8Ha6dpqQhDvmB6EF62e8qzmT8k85P2FrbiZMMp0OscCxmpflwrhc35nsM+HRmvEErqof4zFW/55utlv5s+ZYCWj8HIfqRtKpO2Qi6SsjW9ENgtprtWw/5UmpnPbFsTH0chjg0+yNJs10VzGUzte62kx4V/R1+9ZVEpPPDAKmEsrY7hP5rp+mAQ5p5jjrLNrUrIxJgA==</Value>
    </EncryptionKey>
    <EncryptionInitializationVector xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Encoding>Base64</Encoding>
      <Bytes>16</Bytes>
      <Value>SHZmI1kI+lknhUB/emCBNg==</Value>
    </EncryptionInitializationVector>
    <EncryptionAlgorithmKey xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Algorithm>RSA</Algorithm>
      <Mode>ECB</Mode>
      <Padding>PKCS#1</Padding>
    </EncryptionAlgorithmKey>
    <EncryptionAlgorithmData xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
      <Algorithm>AES</Algorithm>
      <Mode>CBC</Mode>
      <Padding>PKCS#7</Padding>
    </EncryptionAlgorithmData>
  </Encryption>
  <PackageSignature>
    <Package>
      <PackageType xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">split</PackageType>
      <CompressionType xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">zip</CompressionType>
      <Value xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">Test0012</Value>
    </Package>
    <PackageFileHash>
      <HashSHA xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
        <Algorithm>SHA-256</Algorithm>
        <Encoding>Base64</Encoding>
        <Value>kFe0DgUEPuI5v0kQjiIqfyRxhFNuYyahju6yvKA0Hbg=</Value>
      </HashSHA>
      <FileSize xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">3047</FileSize>
    </PackageFileHash>
    <PackagePartsList>
      <PackagePartSignature>
        <OrdinalNumber xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">1</OrdinalNumber>
        <PartFileName xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">tocExampleNJew.xml.zip.aes</PartFileName>
        <PartFileHash xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/batch/types/2021/10/01/0001">
          <HashSHA xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">
            <Algorithm>SHA-256</Algorithm>
            <Encoding>Base64</Encoding>
            <Value>Uh2mqb986WUD7Efjw53L1r7vqfS25sRhNN+5O+3J4zI=</Value>
          </HashSHA>
          <FileSize xmlns="http://ksef.mf.gov.pl/schema/gtw/svc/types/2021/10/01/0001">1200</FileSize>
        </PartFileHash>
      </PackagePartSignature>
    </PackagePartsList>
  </PackageSignature>
  <Signature Id="Signature-65bec1a7-3d9c-41df-8f96-0ca2d56a9f1c" 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 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>iUrXcjZiIIcGYImP8TJFhS4c+vWg0aSbr1uIDuZVS7E=</DigestValue>
      </Reference>
      <Reference URI="#SignedProperties-65bec1a7-3d9c-41df-8f96-0ca2d56a9f1c" Type="http://www.w3.org/2000/09/xmldsig#SignatureProperties">
        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
        <DigestValue>7ZKYdH2JaG3BVESP2lO4VL5Oo4fqCbwxewt9Lwfdo0Q=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>Dd8TfUYURGnulF8jUf7e78g6gF0TwVANoAT8YXdClr3EFOYa8yawOtgU/ajJQW6UZhd99hhyGl33UBZuDBFbA/YJ7KiOmBPxRJuM+Egp+TqHcs3Dkb2iDPqFRnUjrBoclg0QP/ntGaSKodeV1K0+9Wv8odVnKPEyZJKdcOTEFoYLOmoRaTkdqOO7RQsfgGmB5du2M30/vCCXTxn6Rx+oKY/dwXZUtOr2uvv8GrcaE8hPI8MYlpnTXLk6NsgrHf9S4SP4km6CnhTdzWJmTrFFL0eoaUHIVyhGUyILqZfMl5i/DwZTh1wIZsh6dhsjOpkaAUymNzArDFNJ5EbnGJF3Cw==</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509Certificate>MIIC9zCCAd8CFFVYF3YnCbDVFKr0mjKdvmHZ0yNfMA0GCSqGSIb3DQEBBQUAMDgxGzAZBgNVBAMMElRlc3RLc2VmVG9jQ21wTm93eTEZMBcGA1UEYQwQVkFUUEwtODM4OTMzMTQ0NjAeFw0yMjAzMTExMDQ2NDRaFw0yMzAzMTExMDQ2NDRaMDgxGzAZBgNVBAMMElRlc3RLc2VmVG9jQ21wTm93eTEZMBcGA1UEYQwQVkFUUEwtODM4OTMzMTQ0NjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHya5VgArwNavs2xGK9vvwR2sVkPJhrIP5l/hJSYW4y7lVvTdeMiA8dQlVYjNYYuv6nCx9CVkzPMuw5AP9YmKlNmWxypQpyaL+hztEjPljfuN09qYvTbz2VJ9hdDytAwVas0AYdX9skL05W2vq2Uz0tIFzKcRprQkUiusmkH7IeMai/QoiPwDieNgJFFkyN4mVXaVctOh/J/cHEIaEoFomnzJ6aFZxGZbA/U5gc6gHRIdMnQs0+3drfCaokVsFfZlxjK1NzqBvlr30+X9gM3S1Ym9Vrn6ZBKyPW1//26CK5eo2EjxWbeBAAFmm73ruFZiUn3SXcwJYEnI2mB3OMza8CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAeJcoyZ0NPPAECRI6qXLV8w49E61yyGf5asWFvK5D0QbW5IgJys4NbrAcoBNjJOnugog1jG6vV7OSZZPI6zqvzhr6MIkyoalD5p+di0kZrHoSQAzXoNprAPkuVL59hhT0fhEsEQXopNwZyH9fYNhhUdITUMNylgU+KOm+K4SIiQc93VGst8C2IJx6HRRahetYtevR8XkaJcBfCfho4ay+ohO3QQcj9qpkRolW4OHRNnx9KOPg8Q6692MjWqvo4eznnlF/pWvC+W9hoROfXDEufUgX9Q+4fIajIFciUUdOBeHpZQEikXRJR2h8Xk82y2UZ/TdO8VO7Ts2qZ/FUy7symQ==</X509Certificate>
      </X509Data>
    </KeyInfo>
    <Object>
      <QualifyingProperties Target="#Signature-65bec1a7-3d9c-41df-8f96-0ca2d56a9f1c" xmlns="http://uri.etsi.org/01903/v1.3.2#">
        <SignedProperties Id="SignedProperties-65bec1a7-3d9c-41df-8f96-0ca2d56a9f1c">
          <SignedSignatureProperties>
            <SigningTime>2022-03-11T10:58:10Z</SigningTime>
            <SigningCertificate>
              <Cert>
                <CertDigest>
                  <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#">http://www.w3.org/2000/09/xmldsig#sha1</DigestMethod>
                  <DigestValue xmlns="http://www.w3.org/2000/09/xmldsig#">a5Js3Sj8nIXgk6NujrGTAIc3V9Y=</DigestValue>
                </CertDigest>
                <IssuerSerial>
                  <X509IssuerName xmlns="http://www.w3.org/2000/09/xmldsig#">OID.2.5.4.97=VATPL-8389331446, CN=TestKsefTocCmpNowy</X509IssuerName>
                  <X509SerialNumber xmlns="http://www.w3.org/2000/09/xmldsig#">487228724885282990646107697260546485821136642911</X509SerialNumber>
                </IssuerSerial>
              </Cert>
            </SigningCertificate>
          </SignedSignatureProperties>
        </SignedProperties>
      </QualifyingProperties>
    </Object>
  </Signature>
</InitRequest>

W przypadku tego błędu, jak i wcześniejszego ()z nieprawidłowym podpisem), walidacja xmla walidatorem podpisów online zwraca poniższe problemy:
Signature is Invalid
Number of Reference Digests = 2
Reference 1 digest is invalid because the computed digest differs from the digest in the XML.
Reference 2 digest is invalid because the computed digest differs from the digest in the XML.

Macie jakieś pomysły, gdzie leży problem?

0

generatetoken i grant. nie jestem w stanie sprawdzić czy przeszły ok funkcją /online/Credentials/Status/ jeżeli nawiązę nową sesje. wszyscy tak mają? Czy tylko ja taki szczęśliwy? na ksef-test długo to trwa (na granta to się jeszcze nie doczekałem) i trudno wymagać by ktoś siedział i sobie w kółko klikał czy się nadały czy nie. Komunikat jest że tego ElementReferenceNumber nie ma

0

Słuchajcie, jakie macie doświadczenie z online/Invoice/Get/{KSeFReferenceNumber} ? Ja mam jakiś błąd o braku uwierzytelnienia.. chce pobrać fakturę, którą sam wysłałem..
Raz udało mi się zalogować tokenem i użyc takiego KSeFReferenceNumber, że w tym Swaggerze na ich stronie mi zadziałało.. ale tam też mam ten brak uwierzytelnienia. O co chodzi ?

1

Pojawiły się limity na ksef-test. Ciekawe czy to samo będzie na demo i prod...

time unit: MINUTES

operationId: default limit:20 lifespan:20
operationId: bad_request limit:10 lifespan:10
operationId: online.session.authorisation.challenge limit:10 lifespan:10
operationId: online.session.session.signed.init limit:1 lifespan:60
operationId: online.session.session.token.init limit:1 lifespan:60
operationId: online.session.session.status.plain limit:20 lifespan:10
operationId: online.session.session.status.reference.number limit:10 lifespan:20
operationId: online.session.session.terminate limit:10 lifespan:20
operationId: online.query.query.credentials limit:5 lifespan:60
operationId: online.query.query.invoice limit:5 lifespan:60
operationId: online.query.query.invoice.init limit:5 lifespan:60
operationId: online.query.query.invoice.status limit:20 lifespan:10
operationId: online.query.query.invoice.fetch limit:20 lifespan:10
operationId: online.payment.payment.identifier.request limit:1 lifespan:60
operationId: online.payment.payment.identifier.get.reference.numbers limit:10 lifespan:20
operationId: online.invoice.invoice.send limit:1 lifespan:60
operationId: online.invoice.invoice.get limit:10 lifespan:20
operationId: online.invoice.invoice.status limit:20 lifespan:10
operationId: online.credentials.credentials.status limit:20 lifespan:10
operationId: online.credentials.credentials.grant limit:1 lifespan:60
operationId: online.credentials.generate.token limit:1 lifespan:60
operationId: online.credentials.revoke.token limit:10 lifespan:20
operationId: online.credentials.credentials.revoke limit:10 lifespan:20
operationId: common.invoice.ksef limit:2 lifespan:60
operationId: common.status limit:20 lifespan:10
operationId: batch.init limit:1 lifespan:60
operationId: batch.upload limit:2 lifespan:60
operationId: batch.finish limit:1 lifespan:60

0

Cześć, Działa Wam wyszukiwanie faktur na test? Wczoraj działało, dzisiaj dostaję: 21104 - Brak uwierzytelnienia :/
Token ma uprawnienia odczytu faktur, Zapytanie z przykładu w poście powyżej:

{ "queryCriteria": { "subjectType": "subject2", "type": "incremental", "acquisitionTimestampThresholdFrom": "2022-03-01T11:27:26.000Z", "acquisitionTimestampThresholdTo": "2022-03-11T06:35:40.000Z" } } 
0

Jak wygląda nadawanie uprawnień komuś zakładając, że mam już token autoryzacyjny? GenerateToken nie pozwala określić dla kogo dany token generujemy, natomiast w przypadku nadawania uprawnień (Grant) mogę określić czyjś pesel/nip ale nie ma żadnego tokenu zwrotnego. Skąd w takim razie osoba której nadaję uprawnienia ma uzyskać swój token, lub jak się ma zalogować do ksef? (Póki co wygląda to dla mnie tak, jakby osoba która otrzymała uprawnienia musiała we własnym zakresie uzyskać token niezależnie od otrzymanych uprawnień, ale ciężko to widzę w praktyce)

0

Potrzebuje zrobic takie cos:
Mam firme ktora chce sie podlaczyc do KSEF przez nasze api. Myslalem o tym zeby taka firme w momencie "onboardu" autoryzowac przez Profil Zaufany lub druga opcja - zeby uzyc certyfikatu (podpis kwalifikowany) dzieki ktoremu bede mogl podpisac ten krok z InitSigned > i finalnie wygenerowac AuthorizationToken.

Robil z was ktos cos podobnego? Najwiekszy rebus mam z ta integracja PZ.
Jak w praktyce dzialalby taki patent z podpisami. zalozmy ze ta firma "ma podpis", ale gdzie/jak to przechowywac? Nie rozumiem do konca flow w tym zakresie.

0

Hm czy dobrze rozumiem, że wysyłka wsadowa jest możliwa tylko za pomocą InitSigned czyli nie da się tego zautomatyzować? Tak samo pobranie UPO jest możliwe tylko dla tej wysyłki ?

0

Słuchajcie bo z tymi statusami to też jakiś burdel hm chciałbym to uporządkować:

  1. żądanie ​/online​/Invoice​/Status​/{InvoiceElementReferenceNumber}

Czy to działa tylko dla tej sesji w której wysłałem fakturę ?
Jak próbuje znowu odczytać ten status to mam błąd ze faktura o podanym identyfikatorze nie istnieje a sprawdzam numer z pola "elementReferenceNumber", który dostaje od razu po wysłaniu faktury.

  1. żądanie /common/Status/{ReferenceNumber}

Tutaj podaje refenrenceNumber czyli niby ten ref number dla sesji czyli to co zwracane jest po zalogwoaniu czy nawet po wysłaniu faktury jako referenceNumber

  1. żądanie /online/Invoice/Get/{KSeFReferenceNumber} , slużące do pobrania faktury gdzie parametrem jest ten numer referencyjny zwracany "KSeFReferenceNumber" np stąd ​/online​/Invoice​/Status​/{InvoiceElementReferenceNumber} , albo na liście faktur ?

Kiedy mogę się spodziewać UPO w odpoweidzi z żądania nr 2 dla wysyłki interaktywnej ?

0

Czy AuthorizationChallenge - dalej ma 5 minut waznosci? czy moze sie cos zmienilo w tej kwestii? wie ktos?

0

ksef-test, nie mogę się przebić przez logowanie sie i nadawanie uprawnien.

  1. loguję się pieczęcią, jest ok
  2. tworzę sobie token, jest ok, dostaję status 200 i jak robie sync na uprawnieniach to jest.
  3. ale próbuje się zalogować tym tokenem to błąd 400 i komunikat brak podpisu.
  4. usiłuje zrobić grant to wisi cały czas na statusie 315 Zakończenie etapu weryfikacji wyników podprocesu uwierzytelniania, przy sync na uprawnieniach nie widać tych uprawnień

w załączeniu xml z połączeniem przez token.
InitSessionTokenRequest.7zInitSessionTokenRequest.7zinittoken.7z

0

Czy ktoś miał błąd taki jak poniżej podczas sprawdzania statusu wysyłki? Wykonałem wysyłkę wsadową (Init, Upload, Finish) i wszystkie etapy przebiegły pomyślnie. Sprawdzając status na końcówce "/common/Status/" dostaję w odpowiedzi:

{
    "timestamp": "2022-03-17T09:02:05.024Z",
    "referenceNumber": "20220317-SE-7A1549241C-26E19E8943-9D",
    "processingCode": 425,
    "processingDescription": "Nieprawidłowy skrót pliku.",
    "upo": null
}
0

Hej, mam problem, każda sesja jaką otwieram (InitSigned) ma status "Błąd etapu weryfikacji wyników podprocesu uwierzytelniania" ("processingCode": 416). Brakuje mi już pomysłów..

Po kolei robię tak:

  1. Tworzę nową pieczęć (na milion sposobów) poprzez openssl
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/[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”
  1. Generuję AuthorisationChallenge poprzez AuthorisationChallenge, wysyłam:
{
  "contextIdentifier": {
    "type": "onip",
    "identifier": "1168523215"
  }
}

w odpowiedzi dostaję:

{
  "timestamp": "2022-03-17T14:18:23.757Z",
  "challenge": "20220317-CR-59DC608B30-62783B0D16-FB"
}
  1. Przygotowuję plik dla wywołania InitSigned i go podpisuję wcześniej wygenerowaną pieczęcią (z p.1). Wcześniej próbowałem też zamiast "pieczęcią" podpisać podpisem wygenerowanym na NIP. Efekt był ten sam (o tym dalej). Podpisany plik wygląda tak:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><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>20220317-CR-59DC608B30-62783B0D16-FB</Challenge>
		<Identifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SubjectIdentifierByCompanyType">
			<ns2:Identifier>1168523215</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>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="id-a28644d74fd57e1cd4619cc7f8fdf9fd"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><ds:Reference Id="r-id-a28644d74fd57e1cd4619cc7f8fdf9fd-1" URI=""><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"><dsig-filter2:XPath xmlns:dsig-filter2="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract">/descendant::ds:Signature</dsig-filter2:XPath></ds:Transform><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><ds:DigestValue>iqQTWz3oniWYU7/T9764g/XzMjzMUYjuW/bLcGnOslw=</ds:DigestValue></ds:Reference><ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xades-id-a28644d74fd57e1cd4619cc7f8fdf9fd"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><ds:DigestValue>GkKA2FuHLRrnYQM3EqWOq1f4PfTDMk/xNwPYXyIxCCM=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue Id="value-id-a28644d74fd57e1cd4619cc7f8fdf9fd">l9HWdtNbcliLnkxkNCoxXQw+R76xcQwNn4LWUYRfhHbTubDZ46xefB8TGUIxrN/XiNted+b1ySdntQONhqfyLtpiCocSLXrXdLmfuiCSVnirZldAIofikqLMwjGh5VWr4gojwWqpY4cMrDERWRKGK3wUxoPaGjXmjhHxfcElm9mfWIot9as8uiHSSWovDtSA+hdx3u0504ze1h4JGQ11QvBogAvLqcVTibkOKYrztbRJlHV6HYeHZx6LDL3abYBeif3aojWkypuJ0vTHEqwRGYxV8qgHLVyja3CpsII5Xh3jMs+aS65T1vj0qmcOmuje2T3oYln42iEl8f+EFELgFQ==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIDwDCCAqgCCQC2nGcCO/8PTTANBgkqhkiG9w0BAQ0FADCBoTELMAkGA1UEBhMCUEwxEjAQBgNVBAgMCUx1YmVsc2tpZTEPMA0GA1UEBwwGTHVibGluMQ4wDAYDVQQKDAVza2ljaDEMMAoGA1UECwwDRUNNMRQwEgYDVQQDDAt0ZXN0IGtsaWVudDEeMBwGCSqGSIb3DQEJARYPa293YWxza2lAeHh4LnBsMRkwFwYDVQRhDBBWQVRQTC0xMTY4NTIzMjE1MB4XDTIyMDMxNzEwMzQyNFoXDTIyMDQxNjEwMzQyNFowgaExCzAJBgNVBAYTAlBMMRIwEAYDVQQIDAlMdWJlbHNraWUxDzANBgNVBAcMBkx1YmxpbjEOMAwGA1UECgwFc2tpY2gxDDAKBgNVBAsMA0VDTTEUMBIGA1UEAwwLdGVzdCBrbGllbnQxHjAcBgkqhkiG9w0BCQEWD2tvd2Fsc2tpQHh4eC5wbDEZMBcGA1UEYQwQVkFUUEwtMTE2ODUyMzIxNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM8fbsxsw3xzYpf7Vs8bcJnG9rh0ZCuLoCGXX6yVVXHkkxTUEGb4oe7UToxmv+AxBBRkSn4PsyEA7wY/AjdL1mBO2Id9TD02xBdqzpvFLXkGrhaii0k3BUIuydVe/PW8fuGwIIgznoiiUGn8+bALc+78WzqmNgC2qZ3SBpsksrv7ryTBaiw3kfGRowTJjK9Sj22nTvNF+y862TwLMH505IhAUYA2WfL1XNHoKXN8j8C1LGxIAkIn11nvrrxrkzDdV5MGevjno3N578ZQJDqLE6sCu0E6jQkMEqsal7UROjfGwXVtzBeiAxkhOoAOsb57xs5lJ9/0z9E5apz77U369YECAwEAATANBgkqhkiG9w0BAQ0FAAOCAQEAoA/j9bhzsH7ruB8sT6INKyfv3dN11iyA8vUvxfjbGYANKddeBo77zA11hbUCS59N+/drAz51grBzMOQAMv8nvnTP2u8M3LrPPQwAhXzexyXNZL/rsCKxj4i/xOtP4AbOz/VHOm0Jm3a3V7ynmOMNJjE6KJgndlzp3dKe32qLxLdUkcn2VWlII/xMeC4zHyV1fwvwOZpROWpZOSaVHTf3uAKcMlxRhlkU6yo39BsD5qPb2AXaHNcVaZ/A1drvdUPjD9H0PZa/4kYY63wsXhmlU0h/h9YsOi99ph9CJo+pBSfab6+ngR3CN7H0LBJyp9utE3+J9ihjpzDhiREX7WVuSQ==</ds:X509Certificate></ds:X509Data></ds:KeyInfo><ds:Object><xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#id-a28644d74fd57e1cd4619cc7f8fdf9fd"><xades:SignedProperties Id="xades-id-a28644d74fd57e1cd4619cc7f8fdf9fd"><xades:SignedSignatureProperties><xades:SigningTime>2022-03-17T14:22:38Z</xades:SigningTime><xades:SigningCertificateV2><xades:Cert><xades:CertDigest><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/><ds:DigestValue>J1pvQeQxERiQuy/5N+K0hun6RGZejmlNlrSzFv/MCrct++VUunfP0ZH+myp+PX2SBhLNXC+zJXZjaBkwGJayyQ==</ds:DigestValue></xades:CertDigest><xades:IssuerSerialV2>MIG1MIGnpIGkMIGhMQswCQYDVQQGEwJQTDESMBAGA1UECAwJTHViZWxza2llMQ8wDQYDVQQHDAZMdWJsaW4xDjAMBgNVBAoMBXNraWNoMQwwCgYDVQQLDANFQ00xFDASBgNVBAMMC3Rlc3Qga2xpZW50MR4wHAYJKoZIhvcNAQkBFg9rb3dhbHNraUB4eHgucGwxGTAXBgNVBGEMEFZBVFBMLTExNjg1MjMyMTUCCQC2nGcCO/8PTQ==</xades:IssuerSerialV2></xades:Cert></xades:SigningCertificateV2></xades:SignedSignatureProperties><xades:SignedDataObjectProperties><xades:DataObjectFormat ObjectReference="#r-id-a28644d74fd57e1cd4619cc7f8fdf9fd-1"><xades:MimeType>text/xml</xades:MimeType></xades:DataObjectFormat></xades:SignedDataObjectProperties></xades:SignedProperties></xades:QualifyingProperties></ds:Object></ds:Signature></ns3:InitSessionSignedRequest>
  1. Wywołuję https://ksef.mf.gov.pl/api/online/Session/InitSigned wskazując plik z zawartością z p.3. Dostaję odpowiedź (kod 201):
{
  "timestamp": "2022-03-17T14:24:50.438Z",
  "referenceNumber": "20220317-SE-6E5CFCFB29-9C4EEB7917-95",
  "sessionToken": {
    "token": "aeaed168ceb99bcdb88c208978d34fa0cc9e622df97cebbcc3351ce56d94f5f4",
    "context": {
      "contextIdentifier": {
        "type": "onip",
        "identifier": "1168523215"
      },
      "contextName": {
        "type": "fn",
        "tradeName": null,
        "fullName": "CN_1168523215"
      },
      "credentialsRoleList": [
        {
          "type": "standard_plain",
          "roleType": "owner",
          "roleDescription": "uprawnienie właścicielskie"
        },
        {
          "type": "standard_plain",
          "roleType": "owner",
          "roleDescription": "system"
        }
      ]
    }
  }
}

Czyli niby wszystko jest OK.. Ale nie do końca,

  1. Sprawdzam stan sesji poprzez wywołanie ""https://ksef.mf.gov.pl/api/online/Session/Status?PageSize=1&PageOffset=0" + w nagłówek wstawiam Token otrzymany jako wynik poprzedniego zapytania, czyli SessionToken = aeaed168ceb99bcdb88c208978d34fa0cc9e622df97cebbcc3351ce56d94f5f4. Otrzymuję :
{
    "timestamp": "2022-03-17T14:31:59.601Z",
    "referenceNumber": "20220317-SE-6E5CFCFB29-9C4EEB7917-95",
    "numberOfElements": 0,
    "pageSize": 1,
    "pageOffset": 0,
    "processingCode": 416,
    "processingDescription": "Błąd etapu weryfikacji wyników podprocesu uwierzytelniania",
    "invoiceStatusList": []
}

416 - Błąd etapu weryfikacji wyników podprocesu uwierzytelniania.
O co tu chodzi? Co robię nie tak? Certyfikat generowałem już na 10 sposobów. InitSigned generowałem już z 30x na przestrzeni dzisiejszego i wczorajszego dnia. Wciąż mam ten sam błąd.

Certyfikat, którym podpisuję plik dla InitSigned (generowany w p.1):
certificate2.rar
Hasło certyfikatu: 12345

Z góry bardzo dziękuję za pomoc.

EDIT:
Oczywiście wszystkie wykonania na środowisku TESTOWYM: https://ksef-test.mf.gov.pl/swagger/index.html

0

Hej zaczynam zabawę z wysyłką wsadową , ta sekcja Encryption i te klucze AES i ten jakis wektor inicjujący to sam sobie generuje ? Jest do tego jakaś dokumentacja sensowna w ogóle albo jakieś przykłady ?

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