Come vederli in Odoo
Quando KSeF rifiuta la richiesta, l10n_pl_edi in Odoo 18, 19 e 20 mostra sulla fattura «Error when sending invoices to the KSeF» e, sotto, «KSeF API Error: » con la risposta esattamente come è arrivata, exceptionCode incluso. Nella 18 e nella 19 in polacco: «Podczas wysyłania faktur do KSeF wystąpił błąd» e «Błąd API KSeF: …». Se KSeF si rifiuta già all'apertura della sessione, il messaggio inizia con «Failed to open KSeF session: ». La fattura non riceve uno stato KSeF, quindi, una volta corretta, la invii come prima.

Codici, testi e cosa fare
| Codice | Testo di KSeF | Cosa fare |
|---|---|---|
| 21405 | «Błąd walidacji danych wejściowych.» (errore di validazione dei dati di ingresso), details del validatore | Leggi i details; l'esempio della documentazione è «Wskazany kod formularza nie jest wspierany.» (codice del modulo non supportato). |
| 21001 | «Nieczytelna treść.» (contenuto illeggibile), details con una descrizione | KSeF non è riuscito a leggere la richiesta; documentato nell'API 2.9.0 e restituito anche prima. |
| 21155 | «Przekroczono dozwoloną liczbę faktur w sesji.» (troppe fatture nella sessione) | Una sessione ammette fino a 10 000 fatture; serve una sessione nuova. |
| 21173 | «Brak sesji o wskazanym numerze referencyjnym.» (nessuna sessione con quel numero di riferimento) | KSeF non conosce la sessione memorizzata nell'azienda; Odoo non la sostituisce da sola (vedi sotto). |
| 21180 | «Status sesji nie pozwala na wykonanie operacji.» (lo stato della sessione non lo consente), p. es. «Status sesji {code} uniemożliwia wysyłkę faktur.» | La sessione si è chiusa o è scaduta tra il controllo e l'invio. |
| 21184 | «Sesja tymczasowo niedostępna.» (sessione temporaneamente non disponibile), con details di manutenzione | KSeF consiglia di riprovare più tardi o di aprire un'altra sessione. |
| 21402 | «Nieprawidłowy rozmiar pliku.» (dimensione del file non valida) | La dimensione della richiesta non corrisponde al contenuto. |
| 21403 | «Nieprawidłowy skrót pliku.» (impronta del file non valida) | L'impronta SHA-256 non corrisponde al contenuto. |
| 21166 | «Korekta techniczna niedostępna.» (correzione tecnica non disponibile) | Riguarda la correzione tecnica di una fattura offline. |
| 21167 | «Status faktury nie pozwala na korektę techniczną.» (lo stato della fattura non consente la correzione tecnica) | Lo stesso: non c'è correzione tecnica per una fattura elaborata correttamente. |
La sessione in Odoo
Odoo memorizza il numero della sessione interattiva sull'azienda. Prima dell'invio chiede a KSeF lo stato della sessione: se è 100, sessione aperta, continua a usarla; altrimenti ne apre una nuova con il modulo FA (3) 1-0E. Per questo il 21180 di solito scompare al tentativo successivo. Con il 21173 è diverso: all'invio successivo Odoo chiede informazioni sulla stessa sessione, riceve lo stesso errore («Failed to check KSeF session: …») e non ne apre un'altra. La sessione memorizzata si cancella solo rimuovendo il certificato KSeF nelle impostazioni e salvando, poi aggiungendo di nuovo il certificato. Questo deriva dal codice di Odoo; non l'abbiamo provato con KSeF. Davanti a un 21184 KSeF suggerisce una sessione nuova, ma Odoo ne apre una solo quando quella memorizzata non ha più lo stato 100; se l'errore si ripete, aspetta, come consiglia il messaggio.
I codici 21402 e 21403 riguardano calcoli che fa il programma che invia: Odoo calcola l'impronta e la dimensione della fattura prima e dopo la cifratura. Con un Odoo standard non derivano dai dati della fattura. Odoo non invia correzioni tecniche di fatture offline, quindi il 21166 e il 21167 provengono da un altro programma.
Prima di segnalare il problema
- Copia il messaggio intero di Odoo, con il JSON che segue «KSeF API Error:».
- Annota il codice e il testo di details.
- Verifica se l'errore riguarda una fattura o tutte quelle che stai inviando.
- Verifica se succede in produzione o nell'ambiente di prova.

Stati della sessione stessa: 440 e 445
Anche la sessione interattiva ha un proprio stato. Il 440 «Sesja anulowana» (sessione annullata) con details «Nie przesłano faktur» significa che nella sessione non è stata inviata nessuna fattura, e il 445 «Błąd weryfikacji, brak poprawnych faktur», che nessuna ha superato la verifica. Odoo controlla solo se la sessione ha lo stato 100, quindi non li mostrerà; cerca la causa negli stati delle fatture, come il 450.
Il nostro modulo, Poland KSeF 2.0 Validator, non invia fatture e non vede questi codici; con l'abbonamento a FlexigoTech Cloud, se premi «Validate FA(3) (FlexigoTech Cloud)» prima di inviare la fattura, controlla il file FA(3) rispetto allo schema. Quel risultato non blocca l'invio di l10n_pl_edi: una fattura «Not valid» parte comunque se la invii.
Continua a leggere
Verificato nel codice del modulo (versione 20.0) e nelle fonti collegate
Fonti
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/api-changelog.md#
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/api-changelog.md#
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- 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/mode
- 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/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/i18n
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- Codice del modulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/account_move_views.xml
