Aller au contenu principal
KSeF 2.0 · API

KSeF HTTP 429, 403 et 401 : limites de requêtes et accès refusé

Ces trois réponses n'ont pas de code KSeF à cinq chiffres, car ce sont des codes HTTP classiques. Elles suivent néanmoins des règles : le 429 arrive avec un en-tête Retry-After, le 403 avec un champ reasonCode qui indique ce qui manque, et le 401 signifie que le jeton d'accès a expiré.

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 les sources citées à la fin
Lecture
3 min

Limite de requêtes : 429

Au-delà de la limite, KSeF répond HTTP 429 « Too Many Requests » avec un en-tête Retry-After et bloque l'accès à l'API pendant le délai indiqué. Exemple de la documentation : « Przekroczono limit 20 żądań na minutę. Spróbuj ponownie po 30 sekundach. » (limite de 20 requêtes par minute dépassée ; réessayez dans 30 secondes). Les limites se comptent par seconde, par minute et par heure. Les limites plus élevées entre 20:00 et 06:00 ne concernent que le téléchargement et leurs valeurs n'ont pas encore été publiées ; l'envoi de factures ne bénéficie d'aucune hausse de nuit.

Ce qui compte le plus lors d'un envoi depuis Odoo :

  • envoi d'une facture : 10 par seconde, 30 par minute, 180 par heure ;
  • ouverture d'une session interactive : 10, 30 et 120 ;
  • statut d'une facture dans la session : 30, 120 et 1 200 ;
  • les autres requêtes : 10, 30 et 120.
Fiche des codes HTTP 429, 403 et 401 de KSeF
Le 429 avec le texte de l'API, ainsi que le 401 et le 403, qui arrivent sans code KSeF.

Accès refusé : le 403 et son reasonCode

reasonCodeTexte de KSeF
missing-permissions« Brak wymaganych uprawnień do wykonania operacji w bieżącym kontekście. » (droits manquants dans le contexte actuel)
ip-not-allowed« Żądanie pochodzi z adresu IP innego niż wskazany podczas uwierzytelnienia. » (requête provenant d'une autre IP que celle indiquée lors de la connexion)
insufficient-resource-access« Brak dostępu do wskazanego zasobu. » (pas d'accès à cette ressource)
auth-method-not-allowed« Ta operacja nie jest dostępna dla użytej metody uwierzytelnienia. » (non disponible avec cette méthode d'authentification)
security-service-blocked« Żądanie zostało zablokowane przez mechanizmy bezpieczeństwa. » (bloquée par les mécanismes de sécurité)
context-type-not-allowed« Operacja nie jest dostępna dla uwierzytelnionego typu kontekstu. » (non disponible pour ce type de contexte)

Les réponses 401 et 403 arrivent au format Problem Details, et les 400 et 429 peuvent aussi l'utiliser si le programme envoie l'en-tête X-Error-Format: problem-details. Odoo ne l'envoie pas.

Ce que font Odoo 18, 19 et 20

Face à un 401, Odoo rafraîchit le jeton d'accès et répète la requête une fois. Face à un 403, il affiche « KSeF API Error: » suivi du corps de la réponse, de sorte que le reasonCode apparaît dans le message. Face à un 429, il lève l'erreur « Too Many Requests » :

  • à l'envoi, la facture reçoit cette erreur et reste sans statut KSeF, et Retry-After n'est pas pris en compte : renvoyez-la un peu plus tard ;
  • le téléchargement des factures fournisseurs, effectué par Odoo toutes les 3 heures, lit Retry-After et se reprogramme automatiquement.

Après l'envoi, Odoo demande le statut jusqu'à 5 fois, à 2 secondes d'intervalle. Lorsque beaucoup de factures partent en même temps, ces requêtes comptent aussi pour la limite de statut.

Schéma : ce que renvoie KSeF pour les réponses HTTP 429, 403 et 401 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 ; ce qui est barré correspond à ce qu'Odoo ne conserve pas ou ne fait pas.

Comment éviter le 429

Une facture ayant reçu l'erreur « Too Many Requests » n'a pas de statut KSeF, car KSeF n'a pas accepté la requête : elle revient donc parmi les factures à envoyer, et il n'y a aucun risque qu'elle parvienne deux fois à KSeF. Envoyez les factures par lots plus petits et ne cliquez pas en rafale sur renvoyer. Si vous atteignez souvent les limites d'envoi de la session interactive, le ministère des Finances conseille d'envisager d'abord le mode par lots et, si la session interactive est indispensable, de contacter le support de KSeF. Odoo n'envoie des factures qu'en session interactive. Notre module, Poland KSeF 2.0 Validator, n'effectue aucune requête vers KSeF et ne consomme donc pas ces limites ; avec l'abonnement, sa validation du FA(3) est assurée par FlexigoTech Cloud.

Un 403 security-service-blocked se résout-il tout seul ?

La documentation indique seulement que la requête a été bloquée par les mécanismes de sécurité. Si cela se reproduit avec des données correctes, signalez-le au support de KSeF.

À lire aussi

Exceptions KSeF à l'envoi d'une facture : 21405, 21180, 21184 et le resteExceptions KSeF à l'envoi d'une facture : 21405, 21001, 21155, 21166, 21167, 21173, 21180, 21184, 21402 et 21403. Leur sens et leur affichage dans Odoo.États d'authentification KSeF : 415, 425, 450, 470 et 480États de connexion KSeF 2.0 hors certificat : droits absents, session révoquée, jeton erroné, blocage. Codes 21301 et 21304 et leur affichage dans Odoo.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.
Vérifié dans les sources citées

Sources