KsefClient (sync) i AsyncKsefClient (async) grupują podklientów domenowych:
client.authclient.sessionsclient.invoicesclient.lighthouseclient.permissionsclient.certificatesclient.tokensclient.limitsclient.rate_limitsclient.securityclient.testdataclient.peppol
from ksef_client import KsefClient, KsefClientOptions, KsefEnvironment
with KsefClient(KsefClientOptions(base_url=KsefEnvironment.DEMO.value)) as client:
...Wariant asynchroniczny:
import asyncio
from ksef_client import AsyncKsefClient, KsefClientOptions, KsefEnvironment
async def main() -> None:
async with AsyncKsefClient(KsefClientOptions(base_url=KsefEnvironment.DEMO.value)) as client:
...
asyncio.run(main())Token może zostać przekazany na dwa sposoby:
- w konstruktorze:
KsefClient(options, access_token=...) - per-call:
client.invoices.query_invoice_metadata(..., access_token=...)
Wariant per-call jest preferowany w przypadku obsługi wielu kontekstów.
KsefClient.close()– zamyka wewnętrznegohttpx.ClientAsyncKsefClient.aclose()– zamykahttpx.AsyncClient
Zalecane jest użycie context managera (with / async with), który zapewnia zamknięcie połączeń HTTP.
client.http_client udostępnia obiekt transportowy używany przez SDK.
Typowe zastosowania:
- wywołania na pre-signed URL (wysyłka/pobieranie partów) poza podklientami domenowymi
- diagnostyka (np. podgląd nagłówków odpowiedzi)
W typowych scenariuszach zamiast tego stosowane są:
BatchUploadHelper/ExportDownloadHelper(zksef_client.services)- albo gotowych workflow (
BatchSessionWorkflow,ExportWorkflow)