Aller au contenu principal
KSeF 2.0 · envoi de la facture

Exceptions KSeF à l'envoi d'une facture : 21405, 21180, 21184 et le reste

Ces codes arrivent immédiatement, sous forme de réponse HTTP 400 à l'envoi de la facture, avant que KSeF n'examine son contenu. C'est ce qui les distingue d'états comme le 450, qui arrivent plus tard. Dans Odoo, vous les voyez avec la réponse complète de KSeF.

FlexigoTech · Responsable : Víctor Gómez · Mis à jour le 5 novembre 2026

L'essentiel

Module
KSeF 2.0
Versions
Odoo 17, 18, 19 et 20
Vérifié
dans le code du module, version 20.0 · dans les sources citées à la fin
Lecture
4 min

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.

Fiche de l'exception 21405 de KSeF avec les codes d'envoi
Le code 21405 avec sa description issue de l'API et les autres exceptions renvoyées lors de l'envoi d'une facture dans une session interactive.

Codes, textes et actions à mener

CodeTexte de KSeFQue faire
21405« Błąd walidacji danych wejściowych. » (erreur de validation des données d'entrée), details du validateurLisez 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 descriptionKSeF 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 maintenanceKSeF 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.
Schéma : ce que KSeF renvoie pour l'exception 21405 et ce qu'Odoo 20 affiche
Schéma réalisé à partir du code de l10n_pl_edi d'Odoo 20 et de la spécification de l'API KSeF 2.9.0 ; ce qui est barré est ce qu'Odoo ne conserve pas ou ne fait pas.

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

Code KSeF 450 : « Błąd weryfikacji semantyki dokumentu faktury »Le code 450 de KSeF rejette une facture FA(3) après contrôle de son contenu. Où se trouve la cause réelle, ce qu'Odoo 18, 19 et 20 n'affichent pas et comment la renvoyer.Statuts techniques de la facture dans KSeF : 550, 500, 405, 430 et 435Statuts KSeF sans lien avec le contenu : 550 « Operacja została anulowana przez system », 500, 405, 430 et 435. Ce que fait Odoo et pourquoi le 550 reste en Sent.KSeF HTTP 429, 403 et 401 : limites de requêtes et accès refuséKSeF renvoie 429 Too Many Requests au dépassement, 403 avec un reasonCode si l'accès manque et 401 si le jeton a expiré. Limites et réactions d'Odoo.
Vérifié dans le code du module (version 20.0) et dans les sources citées

Sources