GitHub

API niskiego poziomu

Wrappery endpointów zgodne ze schematem, przestrzenie nazw modeli raw i narzędzia niskopoziomowe.

Na tej stronie

API niskiego poziomu to powierzchnia SDK dla kontroli na poziomie endpointów bez wychodzenia poza transport biblioteki. Jest dostępne przez client.raw przed uwierzytelnieniem i auth.raw po uwierzytelnieniu.

Użyj go, gdy integracja wymaga własnego podpisywania, własnej obsługi szyfrowania, dokładnych payloadów OpenAPI albo debugowania endpointów. Większość aplikacji nadal powinna zaczynać od klientów wysokiego poziomu.

Kontrakt

WłaściwośćZachowanie low-level
TransportTen sam stos middleware, retry, sprawdzenia cyklu życia i mapowanie wyjątków co klient bazowy.
Uwierzytelnienieclient.raw jest nieuwierzytelnione; auth.raw używa bearer transportu tam, gdzie wymaga tego KSeF.
ModeleŻądania i odpowiedzi używają nazw ze schematu KSeF/OpenAPI, np. referenceNumber, publicKeyId, authenticationToken.
ParsowaniePoprawne odpowiedzi JSON trafiają do wygenerowanych modeli spec albo uzupełniających supp.
Odpowiedzi binarneXML faktur i UPO zwracane jako bytes.
AsyncKlient async ma te same moduły i nazwy metod; wywołania sieciowe używają await.

Przestrzenie nazw modeli

Modele low-level importuj ze wspieranego ksef2.raw, nie z wewnętrznych pakietów wygenerowanych:

from ksef2.raw import spec, supp
python
NamespaceDo czego służy
specWygenerowane modele żądań i odpowiedzi OpenAPI.
suppModele supplemental używane tam, gdzie wygenerowany kształt OpenAPI wymaga wsparcia SDK.
ksef2.raw.mappersJawne mosty z modeli schema-native do publicznych modeli SDK.

Eksportowane utility

ExportDo czego służy
encrypt_tokenSzyfrowanie payloadów uwierzytelniania tokenem KSeF.
generate_session_keyGenerowanie klucza AES i IV dla szyfrowania sesji, faktur albo eksportu.
encrypt_symmetric_keySzyfrowanie lokalnego materiału AES publicznym certyfikatem KSeF.
encrypt_invoiceSzyfrowanie bajtów XML faktury dla low-level wysyłki online.
sha256_b64Obliczanie base64 SHA-256 dla metadanych payloadów low-level.
prepare_batch_packageBudowanie zaszyfrowanej paczki batch, gdy caller prowadzi low-level batch flow.

Poziomy kontroli

PoziomCo posiada SDKCo posiada callerTypowe wejście
WorkflowKolejność endpointów, szyfrowanie, polling i mapowanie modeli.Dane biznesowe i persystencja.auth.invoices, auth.batch, klienci sesji.
Step-levelSzczegóły protokołu dla jednego kroku workflow SDK.Kolejność i zapis stanu między krokami.session.send_invoice(), submission.wait().
Low-levelTransport, parsowanie odpowiedzi, mapowanie wyjątków.Kolejność endpointów, payloady ze schematu, obsługa szyfrowania, polling.client.raw, auth.raw.

Główna zasada dotyczy właściciela sesji: jeśli low-level kod otwiera sesję, ten sam poziom zwykle powinien ją zamknąć i sprawdzać. Jeśli wysoki poziom otwiera sesję, używaj zwróconego klienta sesji.

Sekcja low-level