GitHub

Sesje i faktury niskiego poziomu

Kontrakty raw sesji, faktur, UPO, eksportu i payloadów szyfrowania.

Na tej stronie

Użyj low-level sesji i faktur, gdy integracja posiada materiał szyfrowania, otwieranie sesji, wysyłkę faktury, szyfrowanie eksportu albo kolejność pollingu.

Materiał posiadany przez callera

WartośćŹródłoPotrzebna do
aes_keygenerate_session_key() albo własna custody kluczaSzyfrowanie faktury/sesji/eksportu i późniejsze odszyfrowanie.
ivgenerate_session_key() albo własna custody kluczaMetadane szyfrowania wysyłane do KSeF i lokalne operacje crypto.
encrypted_keyencrypt_symmetric_key(aes_key, cert.certificate)encryptedSymmetricKey w payloadach sesji albo eksportu.
public_key_idMetadane publicznego certyfikatu KSeFpublicKeyId w payloadach sesji albo eksportu.
referenceNumberOdpowiedź KSeF na open-session albo exportPóźniejsza wysyłka, status, zamknięcie, UPO albo export status.

Jeżeli wysokopoziomowy helper utworzył ten materiał, preferuj pasującą metodę resume albo fetch wysokiego poziomu. Nie odtwarzaj stanu szyfrowania z logów.

Metody raw session

MetodaZwracaDo czego służy
auth.raw.session.open_online(body)spec.OpenOnlineSessionResponseOtwarcie sesji online z OpenOnlineSessionRequest.
auth.raw.session.terminate_online(reference_number)NoneZamknięcie sesji online po referencji.
auth.raw.session.open_batch(body)spec.OpenBatchSessionResponseOtwarcie sesji batch z OpenBatchSessionRequest.
auth.raw.session.close_batch(reference_number)NoneZamknięcie sesji batch po uploadzie wszystkich części.
auth.raw.session.get_session_upo(reference_number, upo_reference_number)bytesPobranie bajtów UPO sesji.
auth.raw.session.list_sessions(...)spec.SessionsQueryResponseQuery historii sesji z filtrami i opcjonalnym continuation tokenem.

Metody raw invoices

MetodaZwracaDo czego służy
auth.raw.invoices.query_metadata(body, **params)spec.QueryInvoicesMetadataResponsePobranie jednej strony metadanych z spec.InvoiceQueryFilters.
auth.raw.invoices.export(body)spec.ExportInvoicesResponseStart eksportu faktur z InvoiceExportRequest.
auth.raw.invoices.get_export_status(reference_number)spec.InvoiceExportStatusResponseSprawdzenie gotowości paczki eksportu.
auth.raw.invoices.download(ksef_number)bytesPobranie przetworzonego XML faktury po numerze KSeF.
auth.raw.invoices.send(reference_number, body)spec.SendInvoiceResponseWysłanie jednej zaszyfrowanej faktury do otwartej sesji online.
auth.raw.invoices.get_session_status(reference_number)spec.SessionStatusResponsePobranie statusu sesji online albo batch.
auth.raw.invoices.list_session_invoices(reference_number, ...)spec.SessionInvoicesResponseLista zaakceptowanych/faktur sesji.
auth.raw.invoices.list_failed_session_invoices(reference_number, ...)spec.SessionInvoicesResponseLista nieudanych faktur sesji.
auth.raw.invoices.get_session_invoice_status(reference_number, invoice_reference_number)spec.SessionInvoiceStatusResponseStatus jednej faktury w sesji.
auth.raw.invoices.get_invoice_upo_by_ksef(reference_number, ksef_number)bytesPobranie UPO faktury po numerze KSeF.
auth.raw.invoices.get_invoice_upo_by_reference(reference_number, invoice_reference_number)bytesPobranie UPO faktury po referencji faktury w sesji.

Metody z continuation_token wysyłają go jako x-continuation-token.

Payload OpenOnlineSessionRequest

PoleŹródło
formCodespec.FormCode(...) pasujący do schemy faktury.
encryption.encryptedSymmetricKeyBase64 encoded encrypted_key.
encryption.initializationVectorBase64 encoded iv.
encryption.publicKeyIdId publicznego klucza KSeF użytego do szyfrowania.

Zachowaj zwrócone referenceNumber razem z aes_key i iv.

Payload SendInvoiceRequest

PoleŹródło
invoiceHashsha256_b64(invoice_xml)
invoiceSizelen(invoice_xml)
encryptedInvoiceHashsha256_b64(encrypted_invoice)
encryptedInvoiceSizelen(encrypted_invoice)
encryptedInvoiceContentBase64 encoded zaszyfrowane bajty faktury.

encrypt_invoice(xml_bytes=invoice_xml, key=aes_key, iv=iv) tworzy zaszyfrowane bajty faktury. Low-level send nie polluje; użyj get_session_invoice_status(), aż faktura osiągnie finalny status.

Payload eksportu

auth.raw.invoices.export() przyjmuje InvoiceExportRequest. Caller posiada te same pola szyfrowania co przy sesjach:

Grupa pólŹródło
encryptionZaszyfrowany materiał AES i publicKeyId.
filtersspec.InvoiceQueryFilters.
compressionTypespec.CompressionType, zwykle ZIP.

Używaj wysokopoziomowego auth.invoices.export(...).wait(), chyba że sam odszyfrowujesz części paczki kluczem AES i IV, które wygenerowałeś.

Handoff paczki batch

prepare_batch_package jest eksportowane z ksef2.raw dla low-level batch flows. Przygotowuje metadane zaszyfrowanej paczki ZIP i części. Wynikowe metadane batch file można przekazać do:

Punkt wejściaKiedy używać
auth.raw.session.open_batch(body)Gdy chcesz posiadać pełny schema-native request otwarcia batch.
auth.open_batch_session(...)Gdy chcesz step-level wiązanie sesji SDK przy caller-owned materiale szyfrowania.

Powiązana referencja

  • Low-level API: Sprawdź własność low-level, namespace modeli i utility exports.
  • Mapa endpointów: Znajdź każdą gałąź raw endpointów.
  • Wyślij faktury: Użyj wysokopoziomowych workflow online i batch, gdy raw endpoint control nie jest wymagany.