Showing results for 
Search instead for 
Did you mean: 

sap brazil substituição tributária calculation issue

Former Member
0 Kudos

Hi All,

I am very new to SAP Brazil pricing and taxaction, recently i encountered an issue with substituição tributária calculation.

As per the user who raised the issue, the BX41 condition type on sales order was said to be calculation incorrectly by using invoice value instead of minimum price.

When i checked the configuration (transaction code J1BTAX) the calculation method was selected as "Base sub.Trib = invoice value or minimum price" and the minimum price and number of units fields were maintained in the special subscreen.

Question 1: When the calculation method = "Base sub.Trib = invoice value or minimum price", what exactly is the system  preference of calculation the base sub. trib value?

Question 2: I also observed that the standard condition routine 320 has been assigned to all tax condition types in brazil pricing procedure. Need help in understanding the pricing routine. Can this routine decides the preference of invoice value over minimum price.



Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello Arun,

What is the actual problem that you encountered in the BX41?

But to answer your question:

1 - The method of calculation is linked to the profile of the "company + product line + client profile", who determines that information is the tributary area. Conceptualizing the "minimum price" (From the minimum value the system starts calculating the ICMS-ST).

2 - The Formula 320 is used in almost all conditions, because in it contains the FM "J_1B_CBT" where necessary calculations is performed.

Arthur Plácido.

Former Member
0 Kudos

Hi Arthur Plácido.,

Below is the current calculation for an order that we have created.

cond typeInvoice val
BX13 (12%)2307.7356
BX23 (8%)1538.4904
ST (20%)4153.92408

The ZPRO is the automatic pricing for a quantity of 9954 Kg in an order.

As I see the BX41 is calculated as 

((ZPR0 + BX23) * 20% ) - BX13 = 1846.19

At the same time the condition type ISTM (BR: Sub.Trib MinPric) of 9954 * 2 BRL = 19908.00 BRL is also available in the order.

My question is why did the system prefer the value of 19231.13 to calculate ST instead of minimum value 19908 which is also available on the order?

Is this the right way to calculate?



Former Member
0 Kudos

Hi Arun,

The Brazilian localization is complex and demands a knowledge of the behavior of taxes.

The ICMS / ST has some combinations that would require a review of:

Customer Master Data

Material Master data

Tax Code of SD.

Advise seeking a Consultant Specialist in Brazilian Localization to analyze your environment.

But technically, below the point where the system sets the minimum price for use:




  IF ms_tax_data-subtribsurtype = '3' AND

     ms_tax_control-usage <> mc_consum.

*   Consider minimum price

    ev_min = ms_tax_data-subtribminprice-kwert.

*   Consider minimum price factor

    IF ms_tax_data-subtribminfactor <> 0.

      ev_min = ev_min * ms_tax_data-subtribminfactor.



    ev_min = 0.


Arthur Plácido.

Former Member
0 Kudos

Hi Arthur,

Thanks for your feedback on the class and method, I was able to figure out the calculation.

In my case the material was marked as industrial because of which the sub.trib base was actual price + IPI industrial tax which was more than the minimum price because of which the minimum price was not considered.

Sub. Trib = (( Actual price + IPI tax ) * ST% ) - ICMS



Answers (0)