Przejdź do głównej zawartości

Pobieranie faktur

Pobieraj bezpośrednio, gdy znasz numer KSeF jednej faktury. Eksportu użyj dla większej liczby faktur albo gdy chcesz pobrać zaszyfrowane paczki.

xml_bytes = auth.invoices.download_invoice(ksef_number="numer-KSeF")
with open("invoice.xml", "wb") as handle:
handle.write(xml_bytes)

Jeśli faktura została dopiero wysłana, poczekaj aż KSeF udostępni przetworzony XML do pobrania:

xml_bytes = auth.invoices.wait_for_invoice_download(
ksef_number="numer-KSeF",
timeout=120.0,
poll_interval=2.0,
)

Eksport jest asynchroniczny. Zaplanuj eksport z filtrów, poczekaj na paczkę, a następnie pobierz odszyfrowane części ZIP.

export = auth.invoices.schedule_export(filters=filters)
package = auth.invoices.wait_for_export_package(
reference_number=export.reference_number,
timeout=300.0,
)
for path in auth.invoices.fetch_package(
package=package,
export=export,
target_directory="downloads",
):
print(path)

Jeśli przepływ wysyła i potem pobiera faktury, rozdziel te fazy:

  1. Wyślij XML przez sesję online albo wsadową.

  2. Zapisz numer KSeF albo referencję sesji.

  3. Odpytuj status sesji albo metadane do końca przetwarzania.

  4. Pobierz po numerze KSeF albo zbuduj filtr eksportu dla tego samego okresu.