From 04e98468685e001b42841659895bf6a32e9636e4 Mon Sep 17 00:00:00 2001 From: smkc Date: Wed, 11 Mar 2026 22:56:04 +0100 Subject: [PATCH 1/2] docs: align SDK docs and CLI tests with KSeF API 2.2.1 --- README.md | 8 +++++- docs/README.md | 2 +- docs/workflows/export.md | 1 + tests/cli/integration/test_send_batch.py | 33 ++++++++++++++++++++++ tests/cli/integration/test_send_online.py | 34 +++++++++++++++++++++++ 5 files changed, 76 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9558bf..1989ac3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Projekt odwzorowuje oficjalne przep艂ywy KSeF i zapewnia sp贸jny model pracy w d ## 馃攧 Kompatybilno艣膰 -Aktualna kompatybilno艣膰: **KSeF API `v2.2.0`** ([api-changelog.md](https://github.com/CIRFMF/ksef-docs/blob/2.2.0/api-changelog.md)). +Aktualna kompatybilno艣膰: **KSeF API `v2.2.1`** ([api-changelog.md](https://github.com/CIRFMF/ksef-docs/blob/2.2.1/api-changelog.md)). ## 馃Л Spis tre艣ci @@ -94,6 +94,12 @@ ksef send online --invoice ./fa.xml --wait-upo --save-upo ./out/upo-online.xml ksef invoice download --ksef-number --out ./out/ ``` +Dla dokument贸w `FA_RR (1)` w wersji `1-1E` przeka偶 jawnie `FormCode`: + +```bash +ksef send online --invoice ./rr.xml --system-code "FA_RR (1)" --schema-version 1-1E --form-value RR +``` + Najwa偶niejsze grupy komend: - onboarding/profiles: `init`, `profile ...` - auth: `auth login-token`, `auth login-xades`, `auth status`, `auth refresh`, `auth logout` diff --git a/docs/README.md b/docs/README.md index 328bcc9..08b8cba 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,7 +4,7 @@ Dokumentacja opisuje **publiczne API** biblioteki `ksef-client-python` (import: Opis kontraktu API (OpenAPI) oraz dokumenty procesowe i ograniczenia systemu znajduj膮 si臋 w `ksef-docs/`. -Kompatybilno艣膰 SDK: **KSeF API `v2.2.0`**. +Kompatybilno艣膰 SDK: **KSeF API `v2.2.1`**. ## Wymagania diff --git a/docs/workflows/export.md b/docs/workflows/export.md index 6178649..104644c 100644 --- a/docs/workflows/export.md +++ b/docs/workflows/export.md @@ -76,5 +76,6 @@ print(len(result.metadata_summaries), len(result.invoice_xml_files)) - Je艣li integracja wymaga tolerowania braku nag艂贸wka, ustaw `require_export_part_hash=False` w `KsefClientOptions` lub podczas tworzenia workflow. - Linki do part贸w wygasaj膮; pobranie powinno nast膮pi膰 bez zb臋dnej zw艂oki. - Paczka eksportu zawiera `_metadata.json` (dla deduplikacji i synchronizacji przyrostowej). +- Poprawka `_metadata.json` opisana w KSeF API `2.2.1` dotyczy generowania paczki po stronie upstream/server-side i nie wymaga zmiany logiki `ExportWorkflow` w SDK. Do HWM i deduplikacji: [HWM](../services/hwm.md). diff --git a/tests/cli/integration/test_send_batch.py b/tests/cli/integration/test_send_batch.py index c6511a2..a9fd302 100644 --- a/tests/cli/integration/test_send_batch.py +++ b/tests/cli/integration/test_send_batch.py @@ -50,6 +50,39 @@ def _fake_send(**kwargs): assert seen["save_upo_overwrite"] is False +def test_send_batch_rr_form_code_override(runner, monkeypatch, tmp_path) -> None: + seen: dict[str, object] = {} + + def _fake_send(**kwargs): + seen.update(kwargs) + return {"session_ref": "BATCH-RR"} + + monkeypatch.setattr(send_cmd, "send_batch_invoices", _fake_send) + batch_dir = tmp_path / "batch" + batch_dir.mkdir() + + result = runner.invoke( + app, + [ + "send", + "batch", + "--dir", + str(batch_dir), + "--system-code", + "FA_RR (1)", + "--schema-version", + "1-1E", + "--form-value", + "RR", + ], + ) + + assert result.exit_code == 0 + assert seen["system_code"] == "FA_RR (1)" + assert seen["schema_version"] == "1-1E" + assert seen["form_value"] == "RR" + + def test_send_batch_save_upo_overwrite_flag(runner, monkeypatch, tmp_path) -> None: seen: dict[str, object] = {} diff --git a/tests/cli/integration/test_send_online.py b/tests/cli/integration/test_send_online.py index 8e26051..02e5ed0 100644 --- a/tests/cli/integration/test_send_online.py +++ b/tests/cli/integration/test_send_online.py @@ -54,6 +54,40 @@ def _fake_send(**kwargs): assert seen["save_upo_overwrite"] is False +def test_send_online_rr_form_code_override(runner, monkeypatch, tmp_path) -> None: + seen: dict[str, object] = {} + + def _fake_send(**kwargs): + seen.update(kwargs) + return {"session_ref": "SES-RR", "invoice_ref": "INV-RR"} + + monkeypatch.setattr(send_cmd, "send_online_invoice", _fake_send) + + invoice_path = tmp_path / "rr.xml" + invoice_path.write_text("", encoding="utf-8") + + result = runner.invoke( + app, + [ + "send", + "online", + "--invoice", + str(invoice_path), + "--system-code", + "FA_RR (1)", + "--schema-version", + "1-1E", + "--form-value", + "RR", + ], + ) + + assert result.exit_code == 0 + assert seen["system_code"] == "FA_RR (1)" + assert seen["schema_version"] == "1-1E" + assert seen["form_value"] == "RR" + + def test_send_online_save_upo_overwrite_flag(runner, monkeypatch, tmp_path) -> None: seen: dict[str, object] = {} From f9554c979808a4de41218f6a48554aabcc08238e Mon Sep 17 00:00:00 2001 From: smkc Date: Wed, 11 Mar 2026 23:01:35 +0100 Subject: [PATCH 2/2] docs: trim redundant 2.2.1 notes --- README.md | 6 ------ docs/workflows/export.md | 1 - 2 files changed, 7 deletions(-) diff --git a/README.md b/README.md index 1989ac3..0dee91b 100644 --- a/README.md +++ b/README.md @@ -94,12 +94,6 @@ ksef send online --invoice ./fa.xml --wait-upo --save-upo ./out/upo-online.xml ksef invoice download --ksef-number --out ./out/ ``` -Dla dokument贸w `FA_RR (1)` w wersji `1-1E` przeka偶 jawnie `FormCode`: - -```bash -ksef send online --invoice ./rr.xml --system-code "FA_RR (1)" --schema-version 1-1E --form-value RR -``` - Najwa偶niejsze grupy komend: - onboarding/profiles: `init`, `profile ...` - auth: `auth login-token`, `auth login-xades`, `auth status`, `auth refresh`, `auth logout` diff --git a/docs/workflows/export.md b/docs/workflows/export.md index 104644c..6178649 100644 --- a/docs/workflows/export.md +++ b/docs/workflows/export.md @@ -76,6 +76,5 @@ print(len(result.metadata_summaries), len(result.invoice_xml_files)) - Je艣li integracja wymaga tolerowania braku nag艂贸wka, ustaw `require_export_part_hash=False` w `KsefClientOptions` lub podczas tworzenia workflow. - Linki do part贸w wygasaj膮; pobranie powinno nast膮pi膰 bez zb臋dnej zw艂oki. - Paczka eksportu zawiera `_metadata.json` (dla deduplikacji i synchronizacji przyrostowej). -- Poprawka `_metadata.json` opisana w KSeF API `2.2.1` dotyczy generowania paczki po stronie upstream/server-side i nie wymaga zmiany logiki `ExportWorkflow` w SDK. Do HWM i deduplikacji: [HWM](../services/hwm.md).