Skip to main content
Brazil IBS/CBS Reform

Brazil IBS/CBS Reform errors and warnings in Odoo: when they appear and what to do

Brazil IBS/CBS Reform messages tell you in their own wording what is wrong: the reform not enabled for the company, a cClassTrib or CST code with too many or too few digits, a percentage out of range, a duplicated configuration or a document blocked by validation. Here you go through them within an invented case, with the exact text of each one and what to do to move on.

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

Key facts

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
6 min

How to read the messages

The module's messages are about values that fail a check (a badly formed code, a percentage out of range, a repeated record or a configuration that does not exist for a date), a step missing before you can continue, a file that is not valid or the audit records.

Some texts contain %s or %d. These are placeholders for a specific value (company, product, date, code or number), and that value is the first thing to look at.

The case: a haulier preparing its first document under the reform

Example Illustrative case: the company and its figures are made up to explain the flow.

Transportes Rio Claro is an invented road haulage company that already works with Odoo. It installs Brazil IBS/CBS Reform and its accounts manager starts configuring it. This is what she runs into along the way.

Reform not enabled

The first attempt hits one of these three texts: Reform is not enabled for company %s., Reform is not enabled for this company. or Reform computation is not enabled for this company.. All three say that, in the company being used, the reform (or its computation, in the third case) is not enabled. What to do: enable the reform for that company. If you work with several companies, check the name in the message against the active company before changing anything.

One configuration per company, with defaults

Creating a second configuration for the same company triggers One reform configuration per company is allowed.. You do not need another one: edit the existing one.

Later on, Set the default CST IBS, CST CBS and cClassTrib in the reform configuration first. appears. The text asks for those three defaults to be filled in the reform configuration before carrying on, and that is what she does.

Rates, date by date

Rates can raise four messages. Only one rate configuration per company per date is allowed. means there is already a rate configuration for that company on that date: edit it rather than duplicating it. IBS rates cannot be negative. and IBS rates must sum to a value between 0 and 100. ask you to correct the values: none negative and a total between 0 and 100. And No rate configuration found for company %s on date %s says there is no rate configuration for that company on that date; create one or check the date shown in the message.

cClassTrib and CST codes

This is where format errors show up. cClassTrib code must be 6 digits. and CST code must be exactly 3 digits. are fixed by entering the code with exactly that length. The other two are about the combination: CST IBS code %s is not allowed for cClassTrib %s and CST CBS code %s is not allowed for cClassTrib %s mean that CST is not allowed with that cClassTrib. What to do: choose another CST or check whether the cClassTrib is the right one.

List of cClassTrib codes with Code, Description, Valid From and Valid Until columns among others, search bar and New button
The cClassTrib code list, with description, article and validity dates.

Products, mappings and tax type

When assigning products, One mapping per company, product and fiscal operation. appears if the same product already has a mapping for that company and fiscal operation: correct the existing one. If you get All products already have mappings., the text itself says every product already has one.

Depending on the type chosen, the module asks for different data: Ad valorem rate must be specified for ad valorem type. (the ad valorem rate is missing), Specific amount must be specified for specific type. (the specific amount is missing) and Both ad valorem rate and specific amount must be specified for mixed type. (the mixed type needs both). For the unit of measure, Invalid UOM ISO code. Valid codes are: %s shows the list of valid codes: use one of them. And No IS rate configuration found for product %s on date %s says there is no IS rate configuration for that product on that date.

Percentages and presumed credit

Base reduction percentage must be between 0 and 100. and Credit percentage must be between 0 and 100. ask for a value within that range. Presumed credit code is required. asks you to fill in the presumed credit code.

Importing a file

When loading data from a file, the module can reply Please select a file. (none has been chosen), File exceeds maximum size of 5 MB. (the file is larger than 5 MB) or File exceeds maximum of %d rows. (it has more rows than the maximum shown in the message). In the last two cases, trim the file or split it into parts and upload them separately.

Issuing: blocked by validation

With everything configured, the accounts manager tries to issue and gets Cannot issue document: reform validation blocks exist. Please review the validation diagnostics.. The message says there are reform validation blocks and asks you to review the diagnostics. What to do: open the validation diagnostics, fix each block they point to and try again.

Document Breakdown form for an entry with CT-e model and IBS, CBS, IS and CT-e sections with bases and amounts
A document breakdown with CT-e model, bases, amounts and waiver counter; the screenshot is cut off at the bottom.

What cannot be touched

Two messages protect the history: Audit logs cannot be modified. and Audit logs cannot be deleted.. Audit records cannot be edited or deleted; there is nothing to fix, just stop trying. The same goes for Computed reform results cannot be modified directly.: computed results are not changed directly.

Document Breakdown list with four entries, CT-e and NF-e models, IBS, CBS and IS base and amount columns and a totals row
The Document Breakdown list, with amounts per tax and the totals row.
Walkthrough from the Document Breakdown list to the cClassTrib code list and the Document Breakdown form of a CT-e entry
From the breakdown list to the cClassTrib codes and the detail of one document.

What to take from the case

  • Read the value that sits in place of %s: company, product, date or code tells you where to look.
  • If a message says the reform is not enabled or asks for the defaults, sort it out in that company's reform configuration.
  • Duplicates (configuration per company, rates per date, mappings per product and fiscal operation) are solved by editing what already exists.
  • If the block comes when issuing, the validation diagnostics are where to start.

If you want the rollout field by field, see the setup guide, and to understand what each record goes through, how it works under the bonnet.

How FlexigoTech can help

FlexigoTech implements Odoo 17, 18, 19 and 20 and builds bespoke connectors and integrations, so we can review with you the configuration behind these messages or adapt the behaviour if your case needs it. The module costs €9 excluding VAT per Odoo version, one-off payment, for 17, 18, 19 and 20; you will find it on the Odoo Apps listing and on the module page.

Keep reading

How Brazil IBS/CBS Reform works inside Odoo: a glossary of menus and tasksHow Brazil IBS/CBS Reform works inside Odoo: the Reform Tax menu, its code tables, the per-document breakdown and the two scheduled tasks it installs.Brazil IBS/CBS Reform in Odoo: a checklist to set it up and review the first weekWhich settings and fields to fill in for Brazil IBS/CBS Reform in Odoo, which states each record shows and what to check during your first week of use.Brazil IBS/CBS Reform for Odoo: what it covers, what it needs and whether it fitsWhat Brazil IBS/CBS Reform covers according to its README, what you need before installing it, which Odoo versions it supports and an end-to-end example.
Checked in the module's source code (version 20.0) and the linked sources

Sources

  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/account_move_extension.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/base_reduction.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/cclass_trib.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/cst_table.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/is_rate_config.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/presumed_credit.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/product_reform_map.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/reform_audit_log.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/reform_config.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/reform_doc_line_result.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): models/reform_rate.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): wizards/apply_defaults_wizard.py
  • Module source code: flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_ 20.0 (4876ef49): wizards/mapping_import_wizard.py
  • apps.odoo.com/apps/modules/20.0/flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_
  • apps.odoo.com/apps/modules/17.0/flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_
  • apps.odoo.com/apps/modules/18.0/flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_
  • apps.odoo.com/apps/modules/19.0/flexigo_brazil_ibs_cbs_nota_fiscal_reform_layer_for_nf_
  • flexigotech.com/en/services.html