Error codes / 2831
EFRIS error 2831 — the excise taxDetails group needs a taxRateName
A credit note's taxDetails group for tax category "05" must carry a non-empty taxRateName. It is optional elsewhere, which is why it is easy to miss.
What it actually means
The excise group on a credit note is validated more strictly than the equivalent group on an invoice. An empty or absent taxRateName is accepted on the invoice and rejected on the note.
The fix
Set taxRateName on the category "05" group when building credit note tax details, carrying across the name from the original invoice where you have it.
tax_details.append({
"taxCategoryCode": "05", # excise duty
"taxRateName": "Excise Duty", # required on a credit note (2831)
"taxRate": excise_rate,
"taxAmount": f"-{abs(excise_tax):.2f}",
"grossAmount": f"-{abs(excise_gross):.2f}",
"netAmount": f"-{abs(excise_net):.2f}",
})
Why this happens
It usually appears immediately after fixing 1462: once the excise fields are mirrored correctly, the excise taxDetails group exists, and its own validation applies.
Related
- Error 1462 — A credit note must mirror the original line's excise fields
- Error 1345 — summary.grossAmount must exclude excise duty
- All EFRIS error codes
The EFRIS API Kit handles this case already — it is one of the rejections the library was calibrated against. This page stays free either way.