Límit de peticions: 429
En superar el límit, KSeF respon HTTP 429 «Too Many Requests» amb la capçalera Retry-After i bloqueja l'accés a l'API durant el temps indicat. L'exemple de la documentació: «Przekroczono limit 20 żądań na minutę. Spróbuj ponownie po 30 sekundach.» (superat el límit de 20 peticions per minut; torna a intentar-ho d'aquí a 30 segons). Els límits es compten per segon, minut i hora. Els límits més alts entre les 20:00 i les 06:00 són només per a la descàrrega i encara no hi ha xifres publicades; enviar factures no té límits més alts de nit.
El que més importa en enviar des d'Odoo:
- enviament d'una factura: 10 per segon, 30 per minut, 180 per hora;
- obertura de sessió interactiva: 10, 30 i 120;
- estat d'una factura a la sessió: 30, 120 i 1200;
- la resta de peticions: 10, 30 i 120.

Accés denegat: el 403 i el seu reasonCode
| reasonCode | Text de KSeF |
|---|---|
| missing-permissions | «Brak wymaganych uprawnień do wykonania operacji w bieżącym kontekście.» (falten permisos en el context actual) |
| ip-not-allowed | «Żądanie pochodzi z adresu IP innego niż wskazany podczas uwierzytelnienia.» (la petició surt d'una IP diferent de la indicada en iniciar sessió) |
| insufficient-resource-access | «Brak dostępu do wskazanego zasobu.» (sense accés a aquest recurs) |
| auth-method-not-allowed | «Ta operacja nie jest dostępna dla użytej metody uwierzytelnienia.» (no disponible amb aquest mètode d'inici de sessió) |
| security-service-blocked | «Żądanie zostało zablokowane przez mechanizmy bezpieczeństwa.» (bloquejada pels mecanismes de seguretat) |
| context-type-not-allowed | «Operacja nie jest dostępna dla uwierzytelnionego typu kontekstu.» (no disponible per a aquest tipus de context) |
Les respostes 401 i 403 arriben en format Problem Details, i les 400 i 429 també poden si el programa envia la capçalera X-Error-Format: problem-details. Odoo no l'envia.
Què fan Odoo 18, 19 i 20
Davant d'un 401, Odoo refresca el token d'accés i repeteix la petició una vegada. Davant d'un 403 mostra «KSeF API Error: » amb el cos de la resposta, així que veuràs el reasonCode al missatge. Davant d'un 429 llança l'error «Too Many Requests»:
- en enviar, la factura rep aquest error i es queda sense estat KSeF, i Retry-After no es té en compte: torna-la a enviar una mica més tard;
- la descàrrega de factures de proveïdor, que Odoo fa cada 3 hores, llegeix Retry-After i es reprograma sola.
Després d'enviar, Odoo demana l'estat fins a 5 vegades, cada 2 segons. Amb moltes factures enviades de cop, aquestes peticions també compten per al límit d'estat.

Com evitar el 429
Una factura amb l'error «Too Many Requests» no té estat KSeF, perquè KSeF no va acceptar la petició, així que torna a les factures per enviar i no hi ha risc que arribi dues vegades a KSeF. Envia les factures en tandes més petites i no premis reenviar en ràfega. Si arribes sovint als límits d'enviament de la sessió interactiva, el Ministeri de Finances aconsella pensar primer en el mode per lots i, si la sessió interactiva és imprescindible, escriure al suport de KSeF. Odoo només envia factures en sessió interactiva. El nostre mòdul, Poland KSeF 2.0 Validator, no fa peticions a KSeF, així que no gasta aquests límits; amb la subscripció, la seva validació del FA(3) va a FlexigoTech Cloud.
Un 403 security-service-blocked es passa sol?
La documentació només diu que la petició la van bloquejar els mecanismes de seguretat. Si es repeteix amb dades correctes, avisa el suport de KSeF.
Continua llegint
Comprovat a les fonts enllaçades
Fonts
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/limity/limity-api
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/limity/limity-api
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/limity/limity-api
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/limity/limity-api
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/limity/limity-api
- 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/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/limity/limity-api
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
