Comment les voir dans Odoo
Lorsque KSeF rejette la requête, l10n_pl_edi dans Odoo 18, 19 et 20 affiche sur la facture « Error when sending invoices to the KSeF » et, en dessous, « KSeF API Error: » suivi de la réponse telle qu'elle a été reçue, avec exceptionCode inclus. Dans les versions 18 et 19, les messages sont en polonais : « Podczas wysyłania faktur do KSeF wystąpił błąd » et « Błąd API KSeF: … ». Si KSeF refuse déjà à l'ouverture de la session, le message commence par « Failed to open KSeF session: ». La facture ne reçoit aucun statut KSeF : une fois l'erreur corrigée, vous l'envoyez comme auparavant.

Codes, textes et actions à mener
| Code | Texte de KSeF | Que faire |
|---|---|---|
| 21405 | « Błąd walidacji danych wejściowych. » (erreur de validation des données d'entrée), details du validateur | Lisez les details ; l'exemple de la documentation est « Wskazany kod formularza nie jest wspierany. » (code de formulaire non pris en charge). |
| 21001 | « Nieczytelna treść. » (contenu illisible), details avec une description | KSeF n'a pas pu lire la requête ; documenté dans l'API 2.9.0 et déjà renvoyé auparavant. |
| 21155 | « Przekroczono dozwoloną liczbę faktur w sesji. » (nombre de factures dépassé dans la session) | Une session accepte jusqu'à 10 000 factures ; il faut une nouvelle session. |
| 21173 | « Brak sesji o wskazanym numerze referencyjnym. » (aucune session avec ce numéro de référence) | KSeF ne connaît pas la session enregistrée pour l'entreprise ; Odoo ne la remplace pas de lui-même (voir ci-dessous). |
| 21180 | « Status sesji nie pozwala na wykonanie operacji. » (le statut de la session ne le permet pas), p. ex. « Status sesji {code} uniemożliwia wysyłkę faktur. » | La session a été fermée ou a expiré entre la vérification et l'envoi. |
| 21184 | « Sesja tymczasowo niedostępna. » (session temporairement indisponible), avec details de maintenance | KSeF conseille de réessayer plus tard ou d'ouvrir une autre session. |
| 21402 | « Nieprawidłowy rozmiar pliku. » (taille de fichier incorrecte) | La taille indiquée dans la requête ne correspond pas au contenu. |
| 21403 | « Nieprawidłowy skrót pliku. » (empreinte de fichier incorrecte) | L'empreinte SHA-256 ne correspond pas au contenu. |
| 21166 | « Korekta techniczna niedostępna. » (correction technique indisponible) | Concerne la correction technique d'une facture hors ligne. |
| 21167 | « Status faktury nie pozwala na korektę techniczną. » (le statut de la facture ne permet pas de correction technique) | Idem : pas de correction technique pour une facture traitée correctement. |
La session dans Odoo
Odoo conserve le numéro de la session interactive sur la société. Avant l'envoi, il demande à KSeF le statut de cette session : s'il vaut 100, session ouverte, il la réutilise ; sinon, il en ouvre une nouvelle avec le formulaire FA (3) 1-0E. C'est pourquoi le 21180 disparaît en général à la tentative suivante. Le 21173 est différent : à l'envoi suivant, Odoo interroge cette même session, reçoit la même erreur (« Failed to check KSeF session: … ») et n'en ouvre pas de nouvelle. La session enregistrée n'est effacée qu'en supprimant le certificat KSeF dans les paramètres, en enregistrant, puis en ajoutant de nouveau le certificat. Ce comportement découle du code d'Odoo ; nous ne l'avons pas testé auprès de KSeF. Face à un 21184, KSeF suggère une nouvelle session, mais Odoo n'en ouvre une que lorsque la session enregistrée n'a plus le statut 100 ; si l'erreur se répète, attendez, comme le message le conseille.
Les codes 21402 et 21403 concernent des calculs effectués par le programme d'envoi lui-même : Odoo calcule l'empreinte et la taille de la facture avant et après chiffrement. Avec un Odoo standard, ils ne proviennent pas des données de la facture. Odoo n'envoie pas de corrections techniques de factures hors ligne ; les 21166 et 21167 viennent donc d'un autre programme.
Avant de signaler le problème
- Copiez le message complet d'Odoo, avec le JSON qui suit « KSeF API Error: ».
- Notez le code et le texte de details.
- Vérifiez si l'erreur touche une seule facture ou toutes celles envoyées.
- Vérifiez si elle survient en production ou dans l'environnement de test.

Statuts de la session elle-même : 440 et 445
La session interactive a aussi son propre statut. Le 440 « Sesja anulowana » (session annulée) avec details « Nie przesłano faktur » signifie qu'aucune facture n'a été envoyée dans la session, et le 445 « Błąd weryfikacji, brak poprawnych faktur » qu'aucune n'a passé la vérification. Odoo ne contrôle que si la session a le statut 100, il ne les affichera donc pas ; cherchez la cause dans les statuts des factures, comme le 450.
Notre module, Poland KSeF 2.0 Validator, n'envoie pas de factures et ne voit pas ces codes ; avec l'abonnement FlexigoTech Cloud, si vous cliquez sur « Validate FA(3) (FlexigoTech Cloud) » avant l'envoi de la facture, le fichier FA(3) est vérifié par rapport au schéma. Ce résultat n'empêche pas l'envoi par l10n_pl_edi : une facture « Not valid » part quand même si vous l'envoyez.
À lire aussi
Vérifié dans le code du module (version 20.0) et dans les sources citées
Sources
- 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
- Code du module : flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/account_move_views.xml
