Product Information
SD: Exclusão do ICMS da base do PIS e do COFINS
(Scroll down for the English version)
Olá, pessoal
Você pode optar por excluir o ICMS da base de cálculo do PIS e do COFINS sobre as operações de receita. A solução entregue pela SAP te permite as seguintes opções no contexto de exclusão do ICMS da base de cálculo do PIS e do COFINS em Sales and Distribution (SD):
- Nenhuma mudança.
- Exclusão apenas do valor de ICMS (ICM3).
- Exclusão dos valores de ICMS (ICM3) e Fundo de Combate à Pobreza (FCP) sobre o ICMS (ICSC).
- Exclusão dos valores de ICMS (ICM3) e ICMS Partilha (ICAP), quando a operação for interestadual com não contribuintes do ICMS.
- Exclusão dos valores de ICMS (ICM3), ICMS Partilha (ICAP), e FCP sobre o ICMS Partilha (ICSP), quando a operação for interestadual com não contribuintes do ICMS.
Você pode personalizar o seu sistema e definir em quais cenários essa exclusão deve acontecer. Para os cenários que você habilitar a exclusão, as seguintes mudanças no processo de cálculo acontecem:
- O cálculo do preço unitário é alterado para que os valores de ICMS sejam excluídos das bases de cálculo do PIS e do COFINS durante a formação do preço.
- Durante o cálculo do PIS e do COFINS, os valores de ICMS são excluídos das bases de cálculo.
Novo cálculo
Nos cenários que você não habilitar a exclusão, nenhuma mudança acontece e o sistema calcula preço unitário e impostos de acordo com o comportamento padrão. Nos cenários que você habilitar a exclusão, tanto o valor unitário, quanto as bases do PIS e do COFINS terão seus valores calculados conforme novo cálculo.
A formula para cálculo do preço unitário em um cenário de venda para revenda é a seguinte:
Preço unitário = Valor líquido / (1 – (ICMS + (PIS * (1 – ICMS)) + (COFINS * (1 – ICMS))))
Como habilitar a exclusão
Um novo método Exclude ICMS from PIS and COFINS base (EXCLUDE_ICMS_FROM_PIS_COF_BASE) está disponível na BAdI for Brazil Tax Extensions (BADI_J1B_EXTEND_TAXES). Esse método te permite ativar a exclusão do ICMS, de acordo com as suas necessidades legais.
Na descrição da SAP Note 3085964 – ICMS Exclusion from PIS and COFINS Base Amount (TAXBRA), você encontra exemplo do comportamento do cálculo de imposto e mais informações técnicas sobre a BAdI.
Campo do SPED
Para fins de escrituração fiscal, o campo ICMS Amount Excluded from the PIS/COFINS Calculation Base está disponível na nota fiscal, e indica a soma dos valores de ICMS excluídos da base de cálculo do PIS e do COFINS. O campo é preenchido automaticamente quando a nota fiscal criada em SD for relevante para cálculo de PIS e COFINS, e valores de ICMS tenham sido selecionados para exclusão via BAdI. Se você criar uma nota fiscal através das transações da Nota Fiscal Writer (J1B*N), o campo ficará disponível para você preencher manualmente.
Para ter essa solução ativa no seu sistema, aplique as seguintes SAP Notes:
- Se você usa o esquema de cálculo de imposto TAXBRA, implemente SAP Note 3085964.
- Se você usa o esquema de cálculo de imposto TAXBRJ, implemente as SAP Notes 3085964 e 3087229.
- Para habilitar o campo do SPED, aplique a SAP Note 3097613.
Importante: se você tem alguma solução de exclusão de ICMS ativa no seu sistema, você deve reverter a implementação. Nesse caso, as SAP Notes de consultoria entregues no passado que devem ser revertidas são as seguintes:
- Para TAXBRA, reverta a aplicação da SAP Note 2456984.
- Para TAXBRJ, reverta a aplicação das SAP Notes 2457131 e 2456986.
Em breve, divulgaremos um post com mais informações referentes à solução de Materials Management (MM). Fiquem atentos! 🙂
Gostou desse post? Dê um Like e compartilhe o conteúdo com seus colegas, e fiquem à vontade para deixar um feedback abaixo. Caso tenha algum comentário ou pergunta sobre a solução, poste no nosso canal de perguntas, neste link.
Um abraço,
Aleshane Ghisleri
#SAPGoGlobal #SAPLocalization
****
Hi guys,
You can choose to exclude the ICMS from the PIS and COFINS tax base on revenue transactions. The solution delivered by SAP allows you the following options in the context of excluding ICMS from the PIS and COFINS tax base in Sales and Distribution (SD):
- No changes.
- Exclude only the ICMS amount (ICM3).
- Exclude the ICMS (ICM3) and the Poverty Combat Fund (FCP) amounts on ICMS (ICSC).
- Exclude the ICMS (ICM3) and the ICMS Partilha (ICAP) amounts when the transaction is interstate with non-ICMS contributers.
- Exclude the ICMS (ICM3), the ICMS Partilha (ICAP), the and FCP on ICMS Partilha (ICSP) amounts when the transaction is interstate with non-ICMS contributers.
You can customize your system and define in which scenarios this exclusion should take place. For scenarios that you enable the exclusion, the following changes to the calculation process happen:
- The unit price calculation is changed so that the ICMS amounts are excluded from the PIS and COFINS tax base during the price formation.
- During the calculation of PIS and COFINS, the ICMS amounts are excluded from the tax base.
New calculation formula
In scenarios where you don’t enable exclusion, no change happens and the system calculates the unit price and taxes according to the default behavior. In scenarios where you enable the exclusion, both the unit price and the PIS and COFINS bases will have their values calculated according to the new calculation formula.
The formula for calculating the unit price in a sales-for-resale scenario is as follows:
Unit price = Net amount / (1 – (ICMS + (PIS * (1 – ICMS)) + (COFINS * (1 – ICMS))))
Enabling the exclusion
A new Exclude ICMS from PIS and COFINS base (EXCLUDE_ICMS_FROM_PIS_COF_BASE) method is available in the BAdI for Brazil Tax Extensions (BADI_J1B_EXTEND_TAXES). This method allows you to activate the ICMS exclusion according to your legal requirements.
In the description of SAP Note 3085964 – ICMS Exclusion from PIS and COFINS Base Amount (TAXBRA), you find an example of the behavior of the tax calculation and more technical information about the Business Add-In (BAdI).
SPED field
For tax bookkeeping purposes, the ICMS Amount Excluded from the PIS/COFINS Calculation Base field is available in the nota fiscal, and indicates the sum of the ICMS amounts excluded from the PIS and COFINS tax base. The field is automatically populated when the nota fiscal created in SD is relevant for PIS and COFINS calculation, and the ICMS values have been determined for exclusion via BAdI. If you create a nota fiscal using the Nota Fiscal Writer (J1B*N) transactions, the field is available for you to fill in manually.
To have this solution active on your system, apply the following SAP Notes:
- If you use the pricing procedure TAXBRA, implement SAP Note 3085964.
- If you use the pricing procedure TAXBRJ, implement SAP Notes 3085964 and 3087229.
- To enable the SPED field, apply SAP Note 3097613.
Important: If you have any ICMS exclusion solutions active on your system, you must roll back the implementation. In this case, the consulting SAP Notes delivered in the past that must be rolled back are as follows:
- For TAXBRA, roll back the implementation of SAP Note 2456984.
- For TAXBRJ, roll back the implementation of SAP Notes 2457131 e 2456986.
We will soon publish a post with more information regarding the Materials Management (MM) solution. Stay tuned! 🙂
Did you like this post? Like and share the content with your colleagues, and feel free to leave feedback below. If you have any comments or questions about the solution, post on our questions channel, on this link.
See you,
Aleshane Ghisleri
#SAPGoGlobal #SAPLocalization
Olá, Aleshane!
No post é informado que quem utiliza TAXBRJ devem ser aplicadas as notas 3085964 e 3087229, sendo que a nota 3085964 é para TAXBRA e a 3087229 é para TAXBRJ.
Entretanto, no link do legal announcements (abaixo), apenas a nota 3087229 é indicada para TAXBRJ:
https://launchpad.support.sap.com/#/legalchangenotification/NoteInforSet/jira=GSREQAMER-1953/TwoColumnsMidExpanded/0
Por gentileza, pode confirmar se a aplicação da nota 3085964 é necessária para quem utiliza TAXBRJ?
Muito obrigado!
Olá, Wesley
Sim, é necessário! A SAP Note que entrega a solução da TAXBRJ é a 3087229, porém ela tem como pre-requisito os objetos entregues pela SAP Note 3085964.
Abraço, Aleshane
Bom dia Aleshane,
Para o cenário de MM, essa solução atende?
Podemos tratar na badi BADI_J1B_EXTEND_TAXES?
Obrigado.
Abraços,
Antonio Carlos
Olá, Ivo
Hoje publicarei um blog post com os detalhes sobre a solução de MM! 🙂 porém, respondendo tua pergunta, a solução de MM utiliza a mesma BAdI.
Abraço, Aleshane
muito obrigado, vamos efetuar os testes com os cenarios de MM e ajustar conforme necessario.
Abraços
Antonio,
Como você fez para a exclusão acontecer somente em SD e não em MM?
Obrigado,
Bom dia Wesley,
Aqui o funcional criou algumas regras, basicamente pelo VBTYP da XVBAK, por data no campo ERDAT, e pelo tipo de ordem no campo AUART. Para o Cenario de MM fizemos consistencias pelo SY-TCODE pois os nomes dos programas são diferentes para recuperar atraves do ASSIGN, e tambem por IVA.
Coloquei abaixo o codigo que usamos no metodo EXCLUDE_ICMS_FROM_PIS_COF_BASE. Espero que ajude
Olá, Antônio!
Obrigado pelo retorno e ajuda.
Eu havia pensado em realizar a validação somente na enhencmente responsável pro "habilitar" o CS_ICMS_EXCL_PARAMS-ICMS = 'X'. Neste ponto, pensei em colocar uma validação para verificar se a aplicação vinha de SD ='V' ou MM = 'TX'.
Mas vi que essa sua validação faz referência por data e documento também.
Obrigado pelo retorno.
Abraços,
Wesley Viana
Olá Aleshane
Aplicamos a solução da SAP, só que nos testes, quando foi realizado a devolução de um faturamento anterior a implementação (origem sem a exclusão do ICMS) identificamos que o sistema desconta o valor da base na devolução.
Entendemos que deveria buscar os mesmos valores da origem, a SAP tem alguma solução para este cenário?
Muito obrigada desde já!
E ficamos no aguardo de um retorno
Luciane
Olá, Luciane!
Nós não entregamos nenhuma lógica para fazer este controle. Contudo, através da implementação do método Exclude ICMS from PIS and COFINS base (EXCLUDE_ICMS_FROM_PIS_COF_BASE), que disponibilizamos na BAdI for Brazil Tax Extensions (BADI_J1B_EXTEND_TAXES), é possível criar a lógica que atenda suas necessidades de negócio. Vale ressaltar que este método novo da BAdI possui o parâmetro de importação IS_ICMS_EXCL_INFO que por sua vez contém, entre outros, dados da KOMK, KOMP e KOMV, que fazem parte do framework da pricing e podem ser usados na sua lógica.
Pode ser relevante saber também que entregamos com a SAP Note 3097613 o campo ICMS Amount Excluded from the PIS/COFINS Calculation Base (EXCLUDED_ICMS_FROM_PISCOFINS) na tabela Nota Fiscal line items (J_1BNFLIN). Este campo estará vazio para notas sem nenhuma exclusão, de acordo com a nossa solução de preenchimento automático dele.
Desejo um ótimo dia!
Atenciosamente,
Vinícius Garcia
Olá Vinicius, boa tarde!
Muito obrigada pelo seu retorno.
Tenha um ótimo dia 😉
Luciane
Boa tarde,
por algum motivo que não consigo identificar não estou conseguindo fazer a implementação do método Exclude ICMS from PIS and COFINS base (EXCLUDE_ICMS_FROM_PIS_COF_BASE), disponibilizado na BAdI for Brazil Tax Extensions (BADI_J1B_EXTEND_TAXES). Simplesmente não me dá a opção. O que será que tem de errado na minha implementação?
BAdI
Obrigado,
Matheus
Boa tarde Matheus,
Nós conseguimos da seguinte forma: Acessar SE18 e colocar o nome da BADI BADI_J1B_EXTEND_TAXES e vá em Exibir.
Clique com o botao direito em cima do nome da badi e vá na opção criar implementação. Dai basta seguir as etapas para criação e depois no metodo que voce quer implementar.
Espero ter ajudado.
Abraços
Oi Antonio,
bom dia.
Fiz a criação e implementei na classe CL_TAX_CALC_BR, porém ao tentar ativar ele dá erro dizendo que essa classe é abstrata. Entendo que estou fazendo na classe errada, você utilizou qual Implementation Class?
Implementation
Método
Obrigado,
Matheus
Bom dia Matheus,
Voce precisará criar uma classe Z de implementação para funcionar corretamente. Veja como fizemos abaixo:
Abraços
Oi Antonio!
Obrigado por esclarecer. Já fiz a implementação aqui e os usuários vão iniciar os testes.
Abraços.
Olá, Matheus
Compartilho contigo o link do SAP Help Portal com instruções para implementar BAdIs, pode cliar aqui. Acredito que vai te ajudar.
Abraço, Aleshane
Bom dia Aleshane!
Mesmo com meu usuário S não tenho permissão para acessar o link que você me passou 🙁
consegue me passar de alguma outra forma?
Obrigado,
Matheus
Olá, Matheus!
Desculpa, talvez tenha enviado o link quebrado. Tenta esse, por favor: https://help.sap.com/viewer/46a2cfc13d25463b8b9a3d2a3c3ba0d9/latest/en-US/44f518d884056c30e10000000a114a6b.html
Abraço, Aleshane
Aleshane,
Estou no S4 e gostaria de saber, depois de aplicar as notas, como o sistema irá diferenciar cada caso de exclusão?
Seria o caso de criar alguma categoria da empresa para o pagamento ICMS para cada caso para determinar corretamente?
Porque olhando as notas, eu não encontrei nenhuma customização de SD, e não sei como vai ocorrer esta diferenciação.
Obrigada!!
Lúcia Cristina Mendes
Olá,
Para fazer essa definição você deve implementar o método EXCLUDE_ICMS_FROM_PIS_COF_BASE da BAdI for Brazil Tax Extensions (BADI_J1B_EXTEND_TAXES). Tendo em vista que não há uma definição legal clara, você deve implementar no método a lógica que fizer sentido para o seu contexto legal e de negócio. Neste método você pode analisar os parâmetros de entrada e preencher os parâmetros de saída como for necessário a fim de atender seu requisito legal.
Se não houver nenhuma implementação da BAdI o sistema não irá excluir nada e o comportamento deve continuar o mesmo de antes da aplicação das notas. Segue explicação dos parâmetros.
O parâmetro de entrada deste método da BAdI, IS_ICMS_EXCL_INFO, é uma estrutura que inclui, entre outros, KOMK, KOMP e KOMV, que fazem parte do framework da pricing e podem ser usados na sua lógica. É importante analisar bem seu caso para seja feita a implementação da lógica que atenda a todo o seu cenário legal.
O parâmetro de saída do método é a estrutura CS_ICMS_EXCL_PARAMS que possui os campos icms, icms_fcp, icms_partilha, icms_partilha_fcp que definem o que será excluído. Alguns pontos relevantes:
Espero que ajude e qualquer dúvida estamos à disposição!
Atenciosamente
Vinícius Garcia
Explicação Sensacional Vinicius !! 🙂
Vou passar aqui pro meu ABAP agora está começando a clarear!! Justamente esta questão de ainda não existir uma definição clara, é o que está causando tanta dúvida!
Valeu mesmo!!
Bom final de semana!
Boa noite Vinicius,
Gostaria de tirar uma dúvida, aplicamos a nota 3085964, porém ao analisar o source code na nota vi que existe um código inserido nas interfaces, mas na minha badi a interface está sem implementação em nenhum dos métodos.
Consegue me esclarecer se está correto e devemos fazer a implementação customizada para o nosso contexto ou se deveria haver mesmo o source code inicial ?
Segue prints.
interface na nota
badi
implementações
Obrigado.
Olá, Pedro,
Não há nenhuma implementação inicial por parte da SAP para o método EXCLUDE_ICMS_FROM_PIS_COF_BASE. Toda lógica para este cenário deve ser feita pelos clientes e é de responsabilidade dos clientes, como informado no Disclaimer da SAP Note 3085964 – ICMS Exclusion from PIS and COFINS Base Amount (TAXBRA).
Este código que você vê na interface é apenas a definição local das estruturas usadas para os parâmetros do método EXCLUDE_ICMS_FROM_PIS_COF_BASE. Esses são entregues na interface. Interface nunca tem implementação de lógica, apenas definições (como assinatura de métodos e seus parâmetros, atributos, tipos).
Se você quiser entender melhor, sugiro ir na transação SE24, abrir a interface IF_EX_BADI_J1B_EXTEND_TAXES e olhar os tipos que estão definidos nela na aba de types. Lá você verá a definição dos tipos mty_excl_icms_pis_cof_base e mty_excl_icms_pis_cof_params e assim poderá ver este código do source code entregue pela nota.
Em relação a implementação da BAdI, caso haja dúvidas, sugiro ver a documentação relacionada.
Atenciosamente,
Vinícius Garcia
Entendido Vinicius, vou repassar pro pessoal aqui e veremos o que fazer.
Muito Obrigado pela rápida ajuda.
Prezados,
Só para ficar claro, toda ativação de exclusão se da pela BADI_J1B_EXTEND_TAXES, isto é, não há nenhuma exclusão para SD que seja configuração funcional?
A SAP não pensa liberar alguma visão que para determinado código de imposto, tipo de ordem + categoria de item ou esquema de calculo para que faça uma exclusão padrão ?
Seria muito legal ter como ativar via customizing e caso o customizing não atenda a regra sim ativar direto pela Badi.
Eduardo.
Olá, Eduardo
O teu entendimento está correto.
Não faz parte do nosso planejamento essa opção de customização, mas encaminhei o teu feedback para o time de desenvolvimento! 🙂 Agradeço a sugestão.
Abraço, Aleshane
Galera deixo uma sugestão para SD na BADI, nas devolução ou complementares para que nas devoluções não ative quando a origem não tem a desoneração da base.
Percebi em testes que no SD não basta apenas ativar a desoneração, pois é necessário que se valide as devoluções, isto é, Se a venda for anterior a desoneração e estiver ocorrendo uma devolução quando a mesma for feita vai desonerar, isto é, o credito da devolução não vai ficar igual a venda (mesmo com controle de copia D).
Como resolver, a Solução da SAP sempre carrega o campo (excluded_icms_from_piscofins) da LIN, portanto se na saída houve desoneração esse campo vai ter valor, desta forma se pode colocar o seguinte código na BADI.
Exemplo para a devolução (ordem):
DATA: vl_excluded TYPE j_1bnfe_exc_icms_piscof.
IF is_icms_excl_info-komk-vbtyp EQ 'H' AND is_icms_excl_info-komp-vgbel IS NOT INITIAL.
SELECT SINGLE excluded_icms_from_piscofins
FROM j_1bnflin
INTO vl_excluded
WHERE refkey = is_icms_excl_info-komp-vgbel AND refitm = is_icms_excl_info-komp-vgpos.
IF vl_excluded IS NOT INITIAL.
LOGICA DE ATIVAÇÃO (No código acima vemos que se for H (ordem devolução) o sistema busca da NF devolvida se o campo tem desoneração senão cai fora)
ENDIF.
ENDIF.
Exemplo para a devolução (Faturamento):
DATA: wa_vbap TYPE vbap.
IF is_icms_excl_info-komk-vbtyp EQ 'O' AND is_icms_excl_info-komp-aubel IS NOT INITIAL.
SELECT SINGLE vgbel vgpos
FROM vbap INTO CORRESPONDING FIELDS OF wa_vbap
WHERE vbeln = is_icms_excl_info-komp-aubel AND posnr = is_icms_excl_info-komp-aupos.
IF sy-subrc EQ '0'.
SELECT SINGLE excluded_icms_from_piscofins
FROM j_1bnflin
INTO vl_excluded
WHERE refkey = wa_vbap-vgbel AND refitm = wa_vbap-vgpos.
IF vl_excluded IS NOT INITIAL.
LOGICA DE ATIVAÇÃO (No código acima vemos que se for O (Fatura de devolução ou credito) o sistema busca da NF devolvida se o campo tem desoneração senão cai fora)
ENDIF.
ENDIF.
Está ideia é para que não ocorra uma devolução onde a saída tenha sido com base cheia e no retorno volte com base reduzida.
Espero que ajude no caso de outras pessoas terem o mesmo problema.
Eduardo
Olá, Eduardo
Obrigada pela sugestão! Vou compartilhar teu comentário com o time de desenvolvimento.
Abraço, Aleshane
Show de bola, foi so um padrão que usei para quando é devolução ver se na NF de origem tinha a base excluída e so fizesse a desoneração do pis cof se na origem fez.
Vi que tinha galera fazendo por data, mas como temos o campo (excluded_icms_from_piscofins) é mais facil ver se na origem ele está preenchido.
Abraços.
Edu
Bom dia, Aleshane
Habilitamos a exclusão do ICMS das bases do PIS/COFINS, em um ambiente atualizado (não foi necessário a aplicação de nenhuma SAP Note).
As bases do PIS e COFINS foram reduzidas perfeitamente. Porém, nos casos onde há PIS retido na fonte e COFINS retido na fonte, suas bases continuaram considerando o valor do ICMS.
Como as bases "normais" e "retido na fonte" são sempre as mesmas, não deveria a exclusão do ICMS ter sido feita sobre os impostos RF também?
Muito obrigado!
Olá, Felipe
Obrigada por entrar em contato. Indico que você entre em contato com o seu departamento jurídico e, caso haja entendimento de que esse é o comportamento esperado pela sua empresa, entre em contato com a SAP ou a ASUG junto com a base legal do requerimento. Estamos sempre dispostos à escutar seu feedback e faremos o possível para atender suas necessidades legais.
Abraço, Aleshane
Apenas para compartilhar: caso alguem esteja tendo problemas em faturamentos com partição de lotes, isto é, na fatura ter o item que vai para a NF e um item lote e perceber que nestes casos o campo EXCLUDED_ICMS_FROM_PISCOFINS está ficando vazio ja há um nota piloto para o caso e creio que em breve será disponibilizada a todos.
3256941 - Adjustment of ICMS Exclusion in Batch Split
Process
Abraços
Eduardo
Ola, a nota para a Taxbra não esta mais disponivel?
Olá, Eduardo
A SAP Note 3085964 está disponível. Você não consegue acessar ela? Ou instalar? Qual a sua release?
Abraço, Aleshane
Aleshane,
Bom dia, sabe dizer quando será liberada a SAPNOTE abaixo?
3256941 - Adjustment of ICMS Exclusion in Batch Split
Passei por esse problema num cliente e essa nota resolveu, agora em outro o mesmo problema; mas a nota não consta para download, parece não ter sido liberada ainda.
Pedi para abrir um chamado (903370 / 2022), mas quando há partição de lote o campo do exclude pis cofins fica zerado.
Eduardo
So pra avisar que foi liberada a NOTA piloto
3283482 - Adjustment of batch split scenario with values
Pessoal, bom dia!
Primeiro gostaria de agradecer pelo suporte... sem dúvidas vocês fazem um ótimo trabalho.
Consegui fazer a implementação... mas tenho um problema no qual o Valor total do produto está mudando....
Usando o mesmo item e cliente sem a exclusão o valor total do produto é 145,14..... mas quando aplico a exclusão o valor total do produto muda para 140,34...
Poderiam por gentileza me ajudar?
Olá, obrigado pela pergunta!
Tendo em vista que nosso sistema de maneira geral trabalha com preço líquido no input, é esperado que o preço final mude ao reduzir o imposto.
Dentro do nosso sistema, com essa redução de impostos, a única maneira do preço final permanecer o mesmo é com aumento do preço líquido. Este ajuste deve ser feito a nível de configuração caso deseje manter o mesmo preço final. No ponto onde é mantido o preço líquido você deve aumentá-lo tanto quanto necessário para que o novo preço final bata com o preço final antes da exclusão.
Atenciosamente
Vinícius
Olá Vinicius, tudo bem?
Fiquei com dúvida na sua resposta. Você está sugerindo um aumento do preço, o que normalmente é feito pela área de negócio porém menciona que deve ser feito a nível de configuração? Há alguma forma de "configurar" o preço para bater com o calculo antigo?
Atenciosamente,
Flavio