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.
Status sesji online
Dział zatytułowany „Status sesji online”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, )Status batch
Dział zatytułowany „Status batch”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",)Przeglądanie historycznych sesji
Dział zatytułowany „Przeglądanie historycznych sesji”Użyj auth.invoice_sessions, gdy musisz znaleźć sesje po restarcie procesu.
page = auth.invoice_sessions.query( session_type="online", statuses=["processing", "completed"],)for page in auth.invoice_sessions.all(session_type="batch"): for item in page.sessions: print(item.reference_number, item.status)Zalecany przepływ
Dział zatytułowany „Zalecany przepływ”-
Zapisz referencje sesji i faktur zwrócone przez KSeF.
-
Odpytuj status sesji albo faktury do osiągnięcia stanu końcowego.
-
Zapisz szczegóły faktur przyjętych i odrzuconych.
-
Pobierz i zapisz odpowiedni dokument UPO.