Przejdź do głównej zawartości

Status i UPO

Przetwarzanie w KSeF jest asynchroniczne. Przechowuj referencje sesji i referencje faktur, żeby sprawdzać status i pobierać UPO po zakończeniu procesu wysyłki.

with auth.online_session(form_code=FormSchema.FA3) as session:
result = session.send_invoice(invoice_xml=xml_bytes)
invoice_status = session.wait_for_invoice_ready(
invoice_reference_number=result.reference_number,
timeout=120.0,
)
upo_xml = session.get_invoice_upo_by_reference(
invoice_reference_number=result.reference_number,
)
state = auth.batch.submit_prepared_batch(prepared_batch=prepared)
final_status = auth.batch.wait_for_completion(session=state, timeout=300.0)
accepted = auth.batch.list_invoices(session=state)
failed = auth.batch.list_failed_invoices(session=state)

Jeśli KSeF zwróci referencję UPO dla batcha, użyj jej do pobrania dokumentu:

upo_xml = auth.batch.get_upo(
session=state,
upo_reference_number="upo-reference-from-status",
)

Użyj auth.invoice_sessions, gdy musisz znaleźć sesje po restarcie procesu.

page = auth.invoice_sessions.query(
session_type="online",
statuses=["processing", "completed"],
)
  1. Zapisz referencje sesji i faktur zwrócone przez KSeF.

  2. Odpytuj status sesji albo faktury do osiągnięcia stanu końcowego.

  3. Zapisz szczegóły faktur przyjętych i odrzuconych.

  4. Pobierz i zapisz odpowiedni dokument UPO.