Skip to main content
KSeF 2.0 · invoice status

KSeF codes 410 and 415: seller permissions and attachments

Both codes arrive as invoice statuses after sending, and both are about whether you may send that invoice in that context. The tests of the Ministry of Finance's library show three concrete causes: a seller NIP different from the session's NIP, no consent for attachments, and an attachment in an interactive session.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 5 November 2026

Key facts

Module
KSeF 2.0
Versions
Odoo 17, 18, 19 and 20
Checked
in the module's source code, version 20.0 · against the sources linked at the end
Reading time
3 min

What KSeF says and what the Ministry tests

CodeKSeF textCase in the Ministry's tests
410“Nieprawidłowy zakres uprawnień” (invalid scope of permissions)Invoice with a seller NIP other than the NIP the session was authenticated with.
410“Nieprawidłowy zakres uprawnień”Seller without consent for attachments; details: “Sprzedawca {nip} nie posiada zgody do wysyłania faktur z załącznikami”.
415“Brak możliwości wysyłania faktury z załącznikiem” (an invoice with an attachment cannot be sent)Invoice with an attachment sent in an interactive session.

The KSeF documentation adds two rules. Sending an invoice requires the right to issue it in the context of that taxpayer. Invoices with attachments may only go in batch mode (the exception is the technical correction of an offline invoice), and only after that option is registered in e-Urząd Skarbowy.

KSeF codes 410 and 415 card
Code 410 with its API description, next to 415 for an invoice with an attachment.

What it looks like in Odoo 18, 19 and 20

l10n_pl_edi signs in to KSeF with the KSeF certificate from the settings, using the company's NIP as context, and writes that same NIP in Podmiot1. It requires the company VAT number to start with PL (“A polish VAT number must be set on your company.”). After a 410 it sets the status to Rejected and writes “KSeF Status: Rejected (Code: 410). Incorrect scope of permissions.” (in Polish on 18 and 19: “Status KSeF: Odrzucono (Kod:410). Nieprawidłowy zakres uprawnień.”).

Code 410 arrives as an invoice status, like 450, so Odoo shows it in the history after checking the status: right after sending, or later with the “Check Sending” button. Permissions are granted and checked in KSeF itself, not in Odoo: Odoo only knows the certificate and the company NIP.

Odoo's FA(3) template has no Zalacznik element, and Odoo sends in an interactive session. So 415, and a 410 caused by attachments, should not come from an invoice Odoo generated; if you see them, the file came from another program.

What to check for a 410

  • The company NIP in Odoo is exactly the NIP the certificate owner holds permissions for.
  • The certificate owner has the right to issue invoices for that NIP in KSeF; the company owner grants it. With no permissions at all, KSeF already stops the sign-in (status 415 at authentication: “Brak przypisanych uprawnień”, no permissions assigned).
  • If you changed the company NIP in Odoo, save the certificate in the settings again. Odoo writes the current NIP in Podmiot1 while, until the next automatic renewal, its access comes from a sign-in on the previous one, which is exactly the Ministry's test case.
  • In a database with several companies, each has its own certificate; an invoice goes with the context of the company it belongs to.
Diagram: what KSeF returns for codes 410 and 415 and what Odoo 20 shows
Diagram based on the l10n_pl_edi code of Odoo 20 and the KSeF API 2.9.0 specification; struck-through items are what Odoo does not keep or do.

Sending it again

After the fix, reset the invoice to draft (for a rejected one Odoo clears the KSeF status and number), confirm it and send it again. Our module, Poland KSeF 2.0 Validator, takes the Rejected status and later the Accepted one from l10n_pl_edi, but it sends nothing itself and does not change permissions in KSeF.

Keep reading

KSeF authentication statuses: 415, 425, 450, 470 and 480KSeF 2.0 sign-in statuses besides certificates: no permissions, revoked, bad token, blocked. Codes 21301 and 21304 and how they look in Odoo 18-20.Signing in to KSeF with a certificate: code 460 and XAdES signature errorsKSeF code 460 and exceptions 9101-9105, 21111, 21115, 21117, 21217, 21401 and 21406 at certificate sign-in. What Odoo 18-20 do not show and what to check.KSeF code 440: “Duplikat faktury”KSeF code 440: an invoice with the same seller NIP, type and number is already in the system. How KSeF counts it, what Odoo 18, 19 and 20 show and how to solve it.
Checked in the module's source code (version 20.0) and the linked sources

Sources