Aller au contenu principal
KSeF 2.0 · statut de la facture

Code 440 de KSeF : « Duplikat faktury »

KSeF rejette une facture avec le statut 440 lorsqu'il contient déjà une facture du même vendeur, du même type et portant le même numéro. C'est le seul code de rejet pour lequel le ministère des Finances polonais publie la règle exacte, la cause peut donc être identifiée sans conjecture.

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
3 min

Quand KSeF considère une facture comme un doublon

KSeF recherche les doublons parmi toutes les factures enregistrées dans le système. Trois champs sont déterminants :

  • le NIP du vendeur, Podmiot1:NIP ;
  • le type de facture, RodzajFaktury ;
  • le numéro de facture, P_2, qui, selon le schéma FA(3), doit identifier la facture sans ambiguïté.

L'unicité vaut pendant 10 années complètes, comptées à partir de la fin de l'année d'émission de la facture. Le NIP du vendeur compte toujours : lorsque plusieurs succursales ou unités émettent des factures au nom d'une même société, elles doivent s'accorder sur leur numérotation.

Fiche du code 440 de KSeF
Le code 440 et les trois champs avec lesquels KSeF détecte un doublon.

Ce que contient la réponse et ce qu'Odoo conserve

Dans la réponse de KSeF, le statut 440 porte la description « Duplikat faktury » (facture en double) et deux champs dans extensions : originalKsefNumber, le numéro KSeF de la facture déjà présente dans le système, et originalSessionReferenceNumber, la session par laquelle elle est entrée. L'exemple de la documentation de l'API place dans details un message du type « Duplikat faktury. Faktura o numerze KSeF: … została już prawidłowo przesłana do systemu w sesji: … ».

Dans Odoo 18, 19 et 20, le module l10n_pl_edi passe « KSeF Status » à Rejected et ajoute à l'historique « KSeF Status: Rejected (Code: 440). Duplicate invoice. » (en polonais sur les versions 18 et 19 : « Status KSeF: Odrzucono (Kod: 440). Powielona faktura. »). Odoo ne conserve pas extensions, le numéro KSeF de l'original n'apparaît donc pas sur la facture. Dans P_2, Odoo écrit le numéro de la facture tel qu'il figure dans Odoo.

D'où vient un doublon avec les factures Odoo

SituationCe qui se passe
La facture est déjà arrivée dans KSeF par un autre canal, puis elle a été envoyée depuis OdooL'original est dans KSeF ; le nouvel envoi reçoit 440.
Le même NIP émet depuis deux bases ou sociétés Odoo aux séquences identiquesDeux factures différentes partagent le type et le numéro.
Les succursales d'une même société tiennent des numérotations propres qui se chevauchentKSeF compte le NIP du vendeur, pas la succursale.

Odoo n'envoie que les factures sans statut KSeF. Une facture en Sent ou Accepted ne peut pas être renvoyée par mégarde depuis le même Odoo.

Comment corriger

  1. Localisez l'original : le numéro KSeF de originalKsefNumber, ou la facture portant ce numéro dans KSeF.
  2. S'il s'agit de la même facture, envoyée auparavant par un autre canal, ne la renvoyez pas. Chaque nouvel envoi sous ce numéro reçoit 440.
  3. S'il s'agit d'une autre facture portant le même numéro, le problème vient de la numérotation : convenez avec votre cabinet comptable de séries séparées pour chaque base, société ou succursale partageant le même NIP.

La facture est-elle dans KSeF après un 440 ?

Oui. KSeF conserve la facture originale, celle de originalKsefNumber. Seul le nouvel envoi a été rejeté.

Combien de temps KSeF retient-il un numéro de facture ?

Pendant 10 années complètes à partir de la fin de l'année d'émission. Jusque-là, le même NIP, le même type et le même numéro donnent 440.

Schéma : ce que KSeF renvoie avec le code 440 et ce qu'affiche Odoo 20
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 ; les éléments barrés sont ceux qu'Odoo ne conserve pas ou ne fait pas.

Avec notre module

Poland KSeF 2.0 Validator n'envoie pas de factures, mais il dispose du bouton « Mark accepted by KSeF » pour une facture déposée dans KSeF en dehors d'Odoo, avec le numéro KSeF attribué par le système. Si l10n_pl_edi envoie ensuite également cette facture et que KSeF la rejette, le module la laisse en Accepted et ajoute : « KSeF rejected the new sending of this invoice by l10n_pl_edi, already accepted by KSeF with KSeF number …: it stays Accepted. ». Dans tous les autres cas, il reprend le statut Rejected de l10n_pl_edi, sans le code 440.

À 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.Codes 410 et 415 de KSeF : autorisations du vendeur et pièces jointesLe 410 et le 415 de KSeF : ce qui les déclenche dans les tests du ministère et quoi vérifier dans Odoo 18, 19 et 20.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.
Vérifié dans le code du module (version 20.0) et dans les sources citées

Sources