One visitor just inspired me to build this post. I am going to explain a little bit of how the Tax Text Laws are populated in the Incoming Nota Fiscal in MM.

First, you need to know that the tax laws are stored in condition records that are generated by the maintenance of the tax code or the maintenance of tax rate tables (J1BTAX tables).

From which condition type are taken is defined in the table J_1BNFLWCOND.

This table is Maintained in the J1BTAX by choosing Condition Setup – Nota fiscal Mapping – Tax law. This leads to the maintenance of the view J_1BNFLWCONDMMV that defines the mapping.

You can also follow the SPRO Menu Financial Accounting Financial Accounting Global Settings Taxes on Sales/Purchases Basic Settings Brazil Condition-Based Tax Calculation Map MM Tax Laws to Nota Fiscal Fields

Here is one example how this table is populated


SAP in MM will follow the following sequence  to determine the Tax Laws automatically:

1 – Dynamic Exception Tables (J_1BTXIC3, J_1BTXIP3, J_1BTXCOF and J_1BTXPIS are some examples)

2 – Material Exception Tables (J_1BTXIC2, J_1BTXIP2 are some examples)

3 – Tax Standard Table  (J_1BTXIP1 for example)

If not found in the tax tables  (maintained in J1BTAX) then SAP will look for the entry associated to the Tax Code in J_1BTAXCODEV (J1BTAX > Click to the button MM)

See below in more details:

IPI Text Law

To determine the IPI Text Tax Law the system will look for any tax dynamic exception in Maintain IPI Dynamic Exceptions (J_1BTXIP3) – For more details around tax dynamic exceptions and their tax groups, check my post:

Then, if an entry corresponding to the process is not found in there, it will search for an entry in Maintain IPI Material-Dependent Exceptions (J_1BTXIP2) and then in Maintain IPI Values (J_1BTXIP1)


If an entry is found in one of those IPI 3 tables but the field IPI Law is in blank, SAP will use the Tax Law associated to the tax code (More details below), or if an entry is not found in any of those tables at all, SAP will still use the IPI Law associated to the tax code.

ICMS Text Law

Similar situation occurs to the ICMS, however in this case, the ICMS Text Law is no present in the “standard ICMS Table” – Maintain ICMS Values (J_1BTXIC1), then the ICMS Law if maintained in Maintain ICMS Dynamic Exceptions (J_1BTXIC3) or Maintain ICMS Material-Dependent Exceptions (J_1BTAXIC2) is taken in consideration and if an entry is found without the ICMS Law populated or an entry is not found at all, same behavior has the IPI, the system will check what is maintained to the tax code in the J_1BTAXCODEV.

To the PIS and COFINS, they do not have the “standard” tables neither the Material Dependent exception tables, they only have the Dynamic Exceptions tables below:

Maintain PIS Values (J_1BTXPIS) and Maintain COFINS Values (J_1BTXCOF), and if an entry is there without the Text Law field populated or an entry doesn’t exist, once again, the entries to be populated in the Incoming Nota Fiscal are the ones associated to the Tax Code.

In the example below, we maintained to 2 different NCM codes, different behaviors. In the first entry, SAP will calculate 0% to the IPI and ignore the IPI Law from tax code and will populate the incoming nota fiscal when posted via MIRO for example with the IPI Text IPB while in the 2nd entry, is posting an incoming nota fiscal to the 2nd NCM, SAP will calculate 10% to the IPI and as the IPI Law is in blank, whatever is associated to the Tax Code in the J_1`BTAXCODEV will be taken to the Nota Fiscal:



In the example below, it was maintained an entry that is Material Dependent, and even if this material has one of the NCM above, SAP will ignore the “standard” rules above and will calculate 16% to the IPI and fulfill the IPI Law with IPK.



In the example below, for ICMS this time, a Dynamic Exception based on Vendor and Material will ignore the Tax Code Text Law associated and will use the IC2.



As I mentioned, anytime when an entry is not found or an entry doesn’t have the Text Law field populated, here is where SAP will look to populate the Text Law in the MM processes:


If you need to create or maintain an existing Entry, via J1BTAX, reach the menu below to maintain those entries:

Tax Laws

I hope this information helps and I will talk on how those Text Laws are populated in the SD scenario in one of my next posts…