Zo zie je ze in Odoo
Wanneer KSeF het verzoek afwijst, toont l10n_pl_edi in Odoo 18, 19 en 20 op de factuur «Error when sending invoices to the KSeF» en eronder «KSeF API Error: » met het antwoord precies zoals het binnenkwam, inclusief exceptionCode. In Odoo 18 en 19 in het Pools: «Podczas wysyłania faktur do KSeF wystąpił błąd» en «Błąd API KSeF: …». Als KSeF al weigert bij het openen van de sessie, begint het bericht met «Failed to open KSeF session: ». De factuur krijgt geen KSeF-status, dus na de correctie verstuur je haar op dezelfde manier als voorheen.

Codes, teksten en wat te doen
| Code | Tekst van KSeF | Wat te doen |
|---|---|---|
| 21405 | «Błąd walidacji danych wejściowych.» (validatiefout in de invoergegevens), details van de validator | Lees de details; het voorbeeld in de documentatie is «Wskazany kod formularza nie jest wspierany.» (formuliercode wordt niet ondersteund). |
| 21001 | «Nieczytelna treść.» (onleesbare inhoud), details met een beschrijving | KSeF kon het verzoek niet lezen; gedocumenteerd in API 2.9.0 en eerder ook al teruggegeven. |
| 21155 | «Przekroczono dozwoloną liczbę faktur w sesji.» (te veel facturen in de sessie) | Een sessie bevat maximaal 10 000 facturen; er is een nieuwe sessie nodig. |
| 21173 | «Brak sesji o wskazanym numerze referencyjnym.» (geen sessie met dat referentienummer) | KSeF kent de sessie die bij het bedrijf is opgeslagen niet; Odoo vervangt die niet zelf (zie hieronder). |
| 21180 | «Status sesji nie pozwala na wykonanie operacji.» (de status van de sessie staat de bewerking niet toe), bijv. «Status sesji {code} uniemożliwia wysyłkę faktur.» | De sessie is gesloten of verlopen tussen de controle en het verzenden. |
| 21184 | «Sesja tymczasowo niedostępna.» (sessie tijdelijk niet beschikbaar), met details over onderhoud | KSeF raadt aan later opnieuw te proberen of een nieuwe sessie te openen. |
| 21402 | «Nieprawidłowy rozmiar pliku.» (onjuiste bestandsgrootte) | De grootte in het verzoek klopt niet met de inhoud. |
| 21403 | «Nieprawidłowy skrót pliku.» (onjuiste bestandshash) | De SHA-256-hash klopt niet met de inhoud. |
| 21166 | «Korekta techniczna niedostępna.» (technische correctie niet beschikbaar) | Gaat over de technische correctie van een offline factuur. |
| 21167 | «Status faktury nie pozwala na korektę techniczną.» (de status van de factuur staat geen technische correctie toe) | Idem: geen technische correctie voor een factuur die correct is verwerkt. |
De sessie in Odoo
Odoo bewaart het nummer van de interactieve sessie op het bedrijf. Vóór het verzenden vraagt het KSeF naar de status van die sessie: is die 100, een open sessie, dan gebruikt het die verder; anders opent het een nieuwe met het formulier FA (3) 1-0E. Daarom verdwijnt 21180 meestal bij de volgende poging. Bij 21173 is het anders: bij het volgende verzenden vraagt Odoo naar dezelfde sessie, krijgt dezelfde fout («Failed to check KSeF session: …») en opent geen nieuwe. De opgeslagen sessie wordt alleen gewist door het KSeF-certificaat in de instellingen te verwijderen en op te slaan, en het certificaat daarna opnieuw toe te voegen. Dit volgt uit de code van Odoo; we hebben het niet tegen KSeF getest. Bij 21184 stelt KSeF een nieuwe sessie voor, maar Odoo opent er pas een wanneer de opgeslagen sessie niet meer status 100 heeft; blijft de fout terugkomen, wacht dan, zoals het bericht adviseert.
De codes 21402 en 21403 hebben te maken met berekeningen die het verzendende programma zelf doet: Odoo berekent de hash en de grootte van de factuur vóór en na de versleuteling. Bij standaard Odoo komen ze niet uit de factuurgegevens. Odoo verstuurt geen technische correcties van offline facturen, dus 21166 en 21167 komen uit een ander programma.
Voordat je het probleem meldt
- Kopieer het volledige bericht van Odoo, met de JSON na «KSeF API Error:».
- Noteer de code en de tekst van details.
- Controleer of de fout één factuur betreft of alle facturen die worden verzonden.
- Controleer of het in productie of in de testomgeving gebeurt.

Statussen van de sessie zelf: 440 en 445
Ook de interactieve sessie heeft een eigen status. 440 «Sesja anulowana» (sessie geannuleerd) met details «Nie przesłano faktur» betekent dat er in de sessie geen factuur is verzonden, en 445 «Błąd weryfikacji, brak poprawnych faktur» dat geen enkele factuur de verificatie heeft doorstaan. Odoo kijkt alleen of de sessie status 100 heeft, dus die toont het niet; zoek de oorzaak in de statussen van de facturen, zoals 450.
Onze module, Poland KSeF 2.0 Validator, verstuurt geen facturen en ziet deze codes niet; met het abonnement op FlexigoTech Cloud controleert hij, als je vóór het verzenden op «Validate FA(3) (FlexigoTech Cloud)» klikt, het FA(3)-bestand tegen het schema. Dat resultaat houdt l10n_pl_edi niet tegen bij het verzenden: een factuur «Not valid» gaat toch de deur uit als je haar verstuurt.
Lees verder
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen
Bronnen
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/api-changelog.md#
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/api-changelog.md#
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/api-changelog.md
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/i18n
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- Broncode van de module: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/account_move_views.xml
