Qué dice KSeF y qué prueba el Ministerio
| Código | Texto de KSeF | Caso de las pruebas del Ministerio |
|---|---|---|
| 410 | «Nieprawidłowy zakres uprawnień» (alcance de permisos incorrecto) | Factura con un NIP de vendedor distinto del NIP con el que se autenticó la sesión. |
| 410 | «Nieprawidłowy zakres uprawnień» | Vendedor sin permiso para adjuntos; en details: «Sprzedawca {nip} nie posiada zgody do wysyłania faktur z załącznikami». |
| 415 | «Brak możliwości wysyłania faktury z załącznikiem» (no se puede enviar una factura con adjunto) | Factura con adjunto enviada en una sesión interactiva. |
La documentación de KSeF añade dos reglas. Para enviar una factura hace falta el permiso de emitirla en el contexto de ese contribuyente. Las facturas con adjuntos solo se envían en modo lote (la excepción es la corrección técnica de una factura offline) y después de dar de alta esa opción en e-Urząd Skarbowy.

Cómo se ve en Odoo 18, 19 y 20
l10n_pl_edi inicia sesión en KSeF con el certificado KSeF de los ajustes, con el NIP de la empresa como contexto, y escribe ese mismo NIP en Podmiot1. Exige que el NIF de la empresa empiece por PL («A polish VAT number must be set on your company.»). Tras un 410 pone el estado en Rejected y escribe «KSeF Status: Rejected (Code: 410). Incorrect scope of permissions.» (en polaco en la 18 y la 19: «Status KSeF: Odrzucono (Kod:410). Nieprawidłowy zakres uprawnień.»).
El 410 llega como estado de la factura, igual que el 450, así que Odoo lo enseña en el historial tras consultar el estado: justo después del envío o más tarde con el botón «Check Sending». Los permisos se dan y se revisan en el propio KSeF, no en Odoo: Odoo solo conoce el certificado y el NIP de la empresa.
La plantilla FA(3) de Odoo no tiene el elemento Zalacznik y Odoo envía en sesión interactiva. Así que el 415, y un 410 por adjuntos, no deberían salir de una factura generada por Odoo; si los ves, el fichero vino de otro programa.
Qué revisar ante un 410
- El NIP de la empresa en Odoo es exactamente el NIP sobre el que tiene permisos el titular del certificado.
- El titular del certificado tiene en KSeF el permiso de emitir facturas para ese NIP; lo concede el propietario de la empresa. Sin ningún permiso, KSeF ya corta el inicio de sesión (estado 415 en la autenticación: «Brak przypisanych uprawnień», sin permisos asignados).
- Si cambiaste el NIP de la empresa en Odoo, vuelve a guardar el certificado en los ajustes. Odoo escribe en
Podmiot1el NIP actual mientras, hasta la siguiente renovación automática, su acceso viene de un inicio de sesión con el anterior, que es justo el caso de la prueba del Ministerio. - En una base con varias empresas, cada una tiene su certificado; la factura va con el contexto de la empresa a la que pertenece.

Volver a enviarla
Tras corregirlo, restablece la factura a borrador (en una rechazada Odoo borra el estado y el número KSeF), confírmala y envíala otra vez. Nuestro módulo, Poland KSeF 2.0 Validator, toma de l10n_pl_edi el estado Rejected y luego el Accepted, pero no envía nada por su cuenta ni cambia permisos en KSeF.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-client-csharp/blob/a66cbc669814e6c2a615748a13a0a04a650ba04f/KSeF.Cl
- github.com/CIRFMF/ksef-client-csharp/blob/a66cbc669814e6c2a615748a13a0a04a650ba04f/KSeF.Cl
- github.com/CIRFMF/ksef-client-csharp/blob/a66cbc669814e6c2a615748a13a0a04a650ba04f/KSeF.Cl
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/i18n
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- 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
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/account_move.py
