Saltar al contenido principal
KSeF 2.0 · API

KSeF HTTP 429, 403 y 401: límites de peticiones y acceso denegado

Estas tres respuestas no tienen código KSeF de cinco cifras, porque son códigos HTTP normales. Aun así siguen reglas: el 429 llega con la cabecera Retry-After, el 403 con un campo reasonCode que dice qué falta y el 401 significa que caducó el token de acceso.

FlexigoTech · Responsable: Víctor Gómez · Actualizado el 5 de noviembre de 2026

Lo esencial

Módulo
KSeF 2.0
Versiones
Odoo 17, 18, 19 y 20
Comprobado
en las fuentes enlazadas al final
Lectura
3 min

Límite de peticiones: 429

Al pasar el límite, KSeF responde HTTP 429 «Too Many Requests» con la cabecera Retry-After y bloquea el acceso a la API el tiempo indicado. El ejemplo de la documentación: «Przekroczono limit 20 żądań na minutę. Spróbuj ponownie po 30 sekundach.» (superado el límite de 20 peticiones por minuto; vuelve a intentarlo dentro de 30 segundos). Los límites se cuentan por segundo, minuto y hora. Los límites más altos de 20:00 a 06:00 son solo para descargar y aún no tienen cifras publicadas; enviar facturas no tiene límites más altos de noche.

Lo que más importa al enviar desde Odoo:

  • envío de una factura: 10 por segundo, 30 por minuto, 180 por hora;
  • apertura de sesión interactiva: 10, 30 y 120;
  • estado de una factura en la sesión: 30, 120 y 1200;
  • el resto de peticiones: 10, 30 y 120.
Tarjeta de los códigos HTTP 429, 403 y 401 de KSeF
El 429 con el texto de la API, y el 401 y el 403, que llegan sin código KSeF.

Acceso denegado: el 403 y su reasonCode

reasonCodeTexto de KSeF
missing-permissions«Brak wymaganych uprawnień do wykonania operacji w bieżącym kontekście.» (faltan permisos en el contexto actual)
ip-not-allowed«Żądanie pochodzi z adresu IP innego niż wskazany podczas uwierzytelnienia.» (la petición sale de otra IP que la indicada al iniciar sesión)
insufficient-resource-access«Brak dostępu do wskazanego zasobu.» (sin acceso a ese recurso)
auth-method-not-allowed«Ta operacja nie jest dostępna dla użytej metody uwierzytelnienia.» (no disponible con ese método de inicio de sesión)
security-service-blocked«Żądanie zostało zablokowane przez mechanizmy bezpieczeństwa.» (bloqueada por los mecanismos de seguridad)
context-type-not-allowed«Operacja nie jest dostępna dla uwierzytelnionego typu kontekstu.» (no disponible para ese tipo de contexto)

Las respuestas 401 y 403 llegan en formato Problem Details, y las 400 y 429 también pueden si el programa manda la cabecera X-Error-Format: problem-details. Odoo no la manda.

Qué hacen Odoo 18, 19 y 20

Ante un 401, Odoo refresca el token de acceso y repite la petición una vez. Ante un 403 enseña «KSeF API Error: » con el cuerpo de la respuesta, así que verás el reasonCode en el mensaje. Ante un 429 lanza el error «Too Many Requests»:

  • al enviar, la factura recibe ese error y se queda sin estado KSeF, y Retry-After no se tiene en cuenta: vuelve a enviarla un poco después;
  • la descarga de facturas de proveedor, que Odoo hace cada 3 horas, lee Retry-After y se reprograma sola.

Después de enviar, Odoo pregunta por el estado hasta 5 veces, cada 2 segundos. Con muchas facturas enviadas de golpe, esas peticiones también cuentan para el límite de estado.

Esquema: qué devuelve KSeF con las respuestas HTTP 429, 403 y 401 y qué enseña Odoo 20
Esquema hecho a partir del código de l10n_pl_edi de Odoo 20 y de la especificación de la API de KSeF 2.9.0; lo tachado es lo que Odoo no guarda o no hace.

Cómo evitar el 429

Una factura con el error «Too Many Requests» no tiene estado KSeF, porque KSeF no aceptó la petición, así que vuelve a las facturas por enviar y no hay riesgo de que llegue dos veces a KSeF. Envía las facturas en tandas más pequeñas y no pulses reenviar en ráfaga. Si llegas a menudo a los límites de envío de la sesión interactiva, el Ministerio de Finanzas aconseja pensar primero en el modo por lotes y, si la sesión interactiva es imprescindible, escribir al soporte de KSeF. Odoo solo envía facturas en sesión interactiva. Nuestro módulo, Poland KSeF 2.0 Validator, no hace peticiones a KSeF, así que no gasta estos límites; con la suscripción, su validación del FA(3) va a FlexigoTech Cloud.

¿Un 403 security-service-blocked se pasa solo?

La documentación solo dice que la petición la bloquearon los mecanismos de seguridad. Si se repite con datos correctos, avisa al soporte de KSeF.

Sigue leyendo

Excepciones de KSeF al enviar una factura: 21405, 21180, 21184 y el restoExcepciones de KSeF al enviar una factura: 21405, 21001, 21155, 21166, 21167, 21173, 21180, 21184, 21402 y 21403. Qué significan y cómo se ven en Odoo.Estados de autenticación de KSeF: 415, 425, 450, 470 y 480Estados del inicio de sesión en KSeF 2.0 aparte del certificado: sin permisos, revocado, token erróneo, bloqueo. Códigos 21301 y 21304 y cómo se ven en Odoo.Códigos 410 y 415 de KSeF: permisos del vendedor y adjuntosKSeF 410 «Nieprawidłowy zakres uprawnień» y 415 de facturas con adjunto: qué los provoca en las pruebas del Ministerio y qué revisar en Odoo 18, 19 y 20.
Comprobado en las fuentes enlazadas

Fuentes