Technical Articles
Exclusão do ICMS da base do PIS/COFINS no SAP em 3 passos
Como sabemos no Brasil, um dos tópicos do momento é a exclusão do ICMS da base do PIS/COFINS. Há vinte anos esse assunto vem sendo discutindo e, com os dados publicados pelo governo, ainda não existe uma definição clara sobre o modo de cálculo, impossibilitando a implementação de uma solução standard no SAP ECC e S/4HANA.
Mas, como sempre, as operações das empresas não esperam por uma definição formal do governo e uma respectiva SAP Note e já estão acontecendo no dia a dia, então como lidar com esses casos?
Basicamente pode se fazer qualquer coisa nas classes da TAXBRA e de 1000 maneiras diferentes, mas aqui vai nossa sugestão de como pode se fazer isso no ECC e S/4HANA, tanto em MM/Compras como SD/Vendas.
A solução abaixo foi testada pelo meu colega Tiago Correa e está descrita em detalhes abaixo mostrando um exemplo de implementação sem usar as notas já entregues pela SAP para essa exclusão.
Update: O post é de 2021, anterior as notas com a solução standard, mas caso alguém possua um sistema muito antigo e que não é possivelmente simplesmente implementar as notas esta é uma opção possível.
Passo 1 – Enhancement no método determine_additional_rate na classe CL_TAX_CALC_BR (necessário tanto para SD como para MM)
Aqui o parametro MV_ADDITIONAL_RATE é ajustado. Esse parâmetro é calculado para PIS e COFINS sendo multiplicado pela alíquota do ICMS, que nesse caso precisará ser desconsiderada. Uma nova lógica precisa ser incluída no enhancement, dependendo dos parâmetros a serem considerados ( mestre do cliente/fornecedor, IPI, FCP, etc… )
Abaixo segue um exemplo de implementação de código:
Passo 2 – Enhancement no método calculate_pis_cof_base na classe CL_TAX_CALC_BR ( caso de SD )
Nesse caso o parametro EV_BASE recebe o valor calculado incluindo ICMS e é preciso deduzir o valor do ICMS desse parâmetro.
Abaixo segue um exemplo de implementação de código:
Passo 3 – Enhancement no método calculate_pis_cof_base na classe CL_TAX_CALC_BR_MM ( caso de MM )
Nesse caso o parametro EV_BASE recebe o valor calculado incluindo ICMS e é preciso deduzir o valor do ICMS desse parâmetro ( e IPI também no caso de compras para consumo ).
Abaixo segue um exemplo de implementação de código:
Importante!
- Todos enhancements que mencionamos podem ser feitos como enhancements implícitos no final de cada método ou post-method enhancements e não involvem modificações de código standard, apenas ampliações.
- Quando a SAP lançar SAP Notes para contemplar esse cenário durante a implementação das notas individuais ( ou após um upgrade ) é preciso re-testar o cenário e remover (ou re-adequar) a implementação.
- O exemplo de implementação acima usa o modelo TAXBRA, no caso de TAXBRJ a implementação precisa ser completamente diferente.
E ai, o que acham? Como vocês estão fazendo o desenvolvimento dessa solução?
Bom dia Renan!!
Obrigado por compartilhar este tema que é tão importante.
Atualmente onde trabalho utilizamos TAXBRJ.
Neste cenário como poderíamos proceder? Pode me dar um help, por favor?
Muito obrigado e um grande abraço!!!
Oi Eduardo,
Como proceder? 1- Migrar para TAXBRA, 2- Implementar a solução acima. ;D
Brincadeiras à parte, na TAXBRJ eu não estudei a solução, mas com certeza é mais complicado de fazer.
Tem que olhar a função J_1BCALCULATE_TAXES e como está tudo espalhado em vários forms dentro da mesma função e com nomes de variáveis que não fazem muito sentido precisaria analisar bem mais a fundo antes de criar uma solução. Sorry não poder ajudar.
att,
Renan Correa
Bom dia Renan!!
Obrigado por compartilhar este conhecimento:
No caso da TAXBRJ o ideal seria um desenvolvimento na função J_1BCALCULATE_TAXES usando enhancements ( já que não tem ainda BAdI que sirva para esse propósito ) nos FORMS determine_additional_rate e provavelmente calculate_pis e calculate_cofins para retirar o ICMS das alíquotas/bases do pis/cofins. Nesses pontos precisaria reduzir Mas teria que ser bem testado, pode ser que tenha efeitos colaterais depende de como for feito.
Renan,
Parabéns pela publicação!
Implementamos aqui na empresa e está funcionando a Exclusão.
Apenas não encontramos na biblioteca do nosso sistema SAP o ms_tx_data-calcasset do passo 1, if da linha 36, pode dar um help por favor?
Obrigada!
Oi Jisseléa,
Obrigado pleo retorno, mas não tenho nem idéia da diferença no código, nesse ponto do método só tenho comentários da nota 1755461 ( que inseriu esse parametro ) e da nota 2259725 ( que alterou o resuldo do else ).
E ambas as notas são mais velhas do que andar pra frente, já devem estar implementada por Support Package há anos.
Olhando a versão do objeto você pode ter uma idéia se esse contexto foi removido ou alterado no seu sistema, fora isso não tenho muitas sugestões.
att,
Renan Correa
Oi,
Obrigada pelo retorno, nosso sistema está bem desatualizado mesmo.
As notas responderam a pergunta.
Abraço e sucesso!
Boa tarde Renan.
A área fiscal da empresa que atuo informou que além de reduzir o valor do ICMS da base do PIS e COFINS, é necessário informar o valor subtraído como "Montante base excluído". Segundo eles para demonstração no SPED por exemplo.
Já houve tal questionamento?
Obrigado.
Oi Ramon,
Nos projetos que participei não tive esse requisito ainda. Em teoria deve dar pra fazer, mas adiciona mais trabalho.
regards,
Renan Correa
Ola Renan,
Obrigada por compartilhar seus conhecimentos.
Encontramos a nota 2456984 - Exclui ICMS da base PIS / COFINS disponível para fazer a exclusão do ICMS... Você recomenda também? pois ela não foi mencionada aqui como uma solução para estes casos.
Obrigada
Oi Andreia,
Essa nota aparece como indisponível no Launchpad. Não vi o conteúdo dela.
att,
Renan Correa
Bom dia!
Também não consegui consultar esta nota.
Att,
Adriana
Boa tarde,
Desculpe, realmente consultei aqui e a nota foi liberada na epoca (2017) somente para alguns clientes. Está como piloto e por isso eu consigo aplicar ou consultar.
Talvez você tenha acesso a ela de outra forma.
Obrigada
Oi Andreia,
Ahhhh, agora eu sei que nota é essa.
Eu já vi ela anos atrás, mas nunca implementei então são sei o resultado está correto
Eu lembro que tinha uma condição nova pra dizer que o ICMS tinha que ser excluído ou não e uma lógica da SAP que alterava o cálculo.
Eu não recomendaria aplicar essa nota agora, como ela nunca foi adicionada no standard em qualquer upgrade ela vai precisar de ajustes adicionais.
att,
Renan Correa
Caros, boa tarde! vocês tem a confirmação que haverá SAP Note para a exclusão do ICMS da base do PIS/COFINS sairá 17/09?
Obrigado, Rodrigo
Eh o que esta na nota 2545409
Olá Renan bom dia tudo bem , parabéns pela dica.. mas juro que não consegui entender , visto que o meu parâmetro no final do method na variavel mv_additional_rate já sai com o valor de 0.0925000 , não estaria correto ? alguém pode me ajudar com um pedaço da logica implementada para saber se realmente estou no caminho certo ?
Olá Denise,
Aqui seguimos a recomendação do Renan, fazendo um enhancement para excluir o valor do ICMS, assim:
EV_BASE = IV_ VAL_INCL_ICMS – IV_ICMS_AMOUNT
Olá Andreia grato pelo retorno, mas então o que não ficou claro para mim é aonde esta a origem do IV_ VAL_INCL_ICMS que não encontro em ponto alguma das classes sabe me dizer em que ponto você trabalharam esta variável e, sabe me dizer em que ponto influenciaram no ev_base ? grato pela ajuda
Não modificamos nada mais, somente o EV_BASE no mesmo metodo que o Renan informou.
Olá Andreia obrigado , mas o estranho que não tem este campo ou variável nos methodos da classe, de qualquer forma grato pela informação
Bom dia, Renan.
Na semana passada, houve uma atualização da SAP no Legal Change Notifications para os itens referentes a esta mudança, informando como Planned Date 17.09.2021, mas não há nenhum detalhe se será entregue alguma solução ou se ainda precisaremos aguardar a publicação da IN. Por favor, você sabe se será liberada OSS Note nesta data e o que será entregue?
Federal Supreme Court Decision on Exclusion of ICMS From PIS/COFINS Tax Base (SD - ECC and S4H OP)
Federal Supreme Court Decision on Exclusion of ICMS From PIS/COFINS Tax Base (MM - ECC and S4H OP)
Obrigada,
Ana.
Oi Ana,
Vi essa notificação e pelo texto dela parece que a SAP vai disponbilizar BAdI's no ERP para realizar o cálculo ( sem precisar de enhancements ). Por enquanto é uma data planejada, isso pode ser alterado ainda, mas é um bom sinal.
att,
Renan Correa
Boa tarde Renan,
quando você fala da classe CL_TAX_CALC_BR e método determine_additional_rate, que serve tanto para MM e SD gostaria de entender um ponto.
Na linha 37 da imagem fornecida, não há adição do ICMS, então para essa situação não teria que ter tratamento . correto ?
Somente no ELSE onde temos as linhas 42 e 48 ?
Obrigado por compartilhar.
Oi,
Entendo que sim, não precisaria o mesmo tratamando no caso da linha 37 que só acontece se a flag de venda de ativo da ms_tax_data está marcada, eu especificamente não testei esse cenário. Nos casos que testeis sempre cai no cenário da linha 41.
Maravilha ! Obrigado.
Boa tarde Bráulio e Renan,
Também fiquei com dúvidas em relação ao método DETERMINE_ADDITIONAL_RATE.
No cenário que testei, sempre cai na linha 37 pois o flag de venda de ativo está desmarcado.
Mas diferente do que vocês falaram, eu entendo justamente o contrário em relação ao ajuste que temos que fazer no método.
Nas linhas 41 e 48, pelo que entendo, está havendo na verdade uma redução de ICMS e não uma adição, o que não ocorre na linha 37.
Portanto, caso o cenário da linha 37 ocorra, temos que fazer a exclusão do ICMS senão haverá diferença na base do montante.
Dessa forma, entendo que o cálculo teria que ser esse na verdade:
MV_ADDITIONAL_RATE = MV_ADDITIONAL_RATE + (PIS * (1 - ICMS)) + (COFINS * (1 - ICMS)))
Quando alterei somente a base de PIS e COFINS no método CALCULATE_PIS_COF_BASE, a base de montante dos impostos ficou divergente e a diferença foi jogada no preço final. Quando ajustei o parâmetro MV_ADDITIONAL_RATE, não teve diferença.
Poderiam corroborar se o raciocínio está correto por gentileza?
Boa tarde Renan, tudo bem?
Para CTE, você tem alguma sugestão? Fizemos a implementação na classe CL_TAX_CALC_BR_SD para os processos de vendas mais comuns e atendeu corretamente, mas para um cenário específico de transporte acaba não reduzindo a base do impostos na pricing.
Obrigado.
Oie Lyster,
Não cheguei a fazer em nenhuma empresa com emissão de CT-e, desconheço o cenário. Mas agora a SAP está lançando a nota com a solução oficial deles, talvez já funcione para CT-e também.
Assim que eu conseguir baixar, implementar e avaliar vou postar sobre isso no S4CN.COM .
Boa tarde,
Renan ,
Apenas para confirmar a SAP esta para lançar uma solução oficial sobre esse tema ? , caso sim , qual seria a previsão ?
Muito obrigado,
Ricardo Veloso
Oi Ricardo,
Eu não posso falar em nome da SAP, mas sim eles anunciaram que vão lançar a solução e a data esperada para a parte de SD TAXBRA é nessa semana. Assim que as notas forem lançadas vou fazer um post sobre o assunto testando a implementação das notas e o escopo da solução.
att,
Renan Correa
Boa tarde,
Renan,
Muito obrigado pela informação .
Abraços
Ricardo Veloso
Boa tarde, parece que a SAP soltou hoje a nota de SD, porém não consegui acessar ainda.
https://launchpad.support.sap.com/#/notes/3085964
Oi Pessoal,
São 3 notas, porém apenas 2 estão liberadas. 3097613, 3088195 e 3085964. A 3085964 ainda não está liberada.
Assim que conseguir baixar e implementar as notas vou fazer um post no S4CN sobre isso.
att,
Renan Correa
A 3085964 agora está liberada!
Bom dia, nota 3085964 liberada.
Conforme mencionado, implementei as notas e já fiz um teste.
Acho que seria esta a Nota 3097613 https://launchpad.support.sap.com/services/pdf/notes/3097613/E
PESSOAL,
ESSA solução aqui ( para vendas ) pode ser implementada agora via SAP NOTES 3097613, 3088195 e 3085964.
A solução com enhancement continua válida apenas para os casos de MM, esse processo ainda não tem uma solução standard da SAP.
att,
Renan Correa
A solução de MM já saiu também, fiz um blog post .
A solução via enhancement não é mais necessária.
Pelo que entendi:
Solução para SD
- 3085964 - ICMS Exclusion from PIS and COFINS Base Amount (TAXBRA)
- parece que ainda tem mais algo para ser liberado em 24/09/2021.
Solução para EFD Contribuições
- 3088195 - Prerequisite objects for SAP Note 3097613
- 3097613 - ICMS Exclusion from PIS and COFINS Base Amount Changes for SPED Contribuições
Solução para MM
Oi Tarcisio,
A nota " 2545409 - ICMS exclusion from PIS and COFINS Base" não tem nenhuma alteração de código, ela só lista as alterações sendo desenvolvidas.
Para SD TAXBRA a solução já saiu, está na 3085964. Junto com as notas 3088195 e 3097613 para salvar o valor do ICMS excluído para EFD - Solução TAXBRJ e IS/OIL não saíram (provavelmente no 24/09 de acordo com o app de mudanças legais).
Para MM também não saiu ainda, mesma data que você mencionou.
att,
Renan Correa
Bom dia, Renan, acho que falei o mesmo que voce de outra forma. Decidi só aplicar as notas no dia 11/10 pois estamos com outras atividades, se for iniciar a implementação, vai comunicando o efeito. Abraço.
Eu acho que sim, só salientei que a nota 2545409 ñ tem correções pq já vi outros consultores tentando aplicar notas assim achando que tinha alteração de código!
Já até implementei e testei, fiz um post aqui sobre isso. Tá funcionando bem legal por enquanto, não achei nenhum bug e foi fácil de implementar as notas.
To esperando a parte de MM agora.
Validou com seu setor fiscal ? Gerou a EFD Contribuições ? Como está pensando a entrada em produção, só para os clientes que exigirem ? A OV será do mesmo tipo para a forma atual e a futura(com exclusão) ? Vou dar uma olhada no seu post detalhando.
Oi Tarcisio,
Eu implementei primeiro em um sandbox, o seguro morreu de velho ;D . Primeiros testes foram OK, agora já comecei a implementar em alguns clientes, mas cada um tem uma definição diferente.
Em geral para vendas tem sido para todos os cenários/clientes, para compras estamos habilitando via um parâmetro de master data no fornecedor, para definir se calcula ou não dependendo de quem vai enviar a mercadoria.
att,
Renan Correa
Olá Renan.
Para remover o ICMS da base de cálculo do PIS/COFINS nos cenários de MM, eu acabei adotando outra solução, sem necessidade de enhancements, alguns meses antes da SAP se posicionar sobre o assunto.
1. Utilizando a view J_1BPISCOF_CBTV, aplicar a configuração abaixo, para cada IVA desejado, a fim de determinar que a base de PIS/COFINS é composta pelas bases de ICMS, subtraído pelo valor de ICMS.
2. Ativar condição ICOR no IVA.
Por fim, o último requisito para funcionar a exclusão de ICMS da base de PIS/COFINS é indicar um preço líquido no item do pedido de compra descontando ICMS e PIS/COFINS sobre a base normal, não a base flexível. OBS: Caso, o cliente utilize pricing Z, deverá ser criado uma condição para calcular a diferença e acertar o líquido.
Exemplo:
Preço bruto = 100,00
Base ICMS = 100,00
ICMS = 12,00
Base normal de PIS/COFINS = 100,00
PIS sobre base normal = 1,65
COFINS sobre base normal = 7,60
Base flexível de PIS/COFINS = 100,00 – 12,00 = 82,00
PIS sobre base correta/flexível = 1,35
COFINS sobre base correta/flexível = 6,23
Valor líquido item do pedido = Preço bruto – ICMS – PIS s/base normal – COFINS s/base normal = 78,75
Resultado final:
Pedido de compra com pricing Z, no meu caso.
MIRO
Nota fiscal
Abraço,
Yuri Michelon
Legal Yuri,
Interessante essa solução, foi bem engenhosa... eu já implementei a própria solução da SAP para substituir os enhancements e está funcionando bem por enquanto.
Renan
Boa tarde,
Pessoal ,
Voces sabem me dizer se já saíram as notas SAP da solução para MM ?
Obrigado, !
Oi Ricardo,
Já saiu, até fim post sobre isso.
att,
Renan Correa
Mais uma vez muito obrigado !
Abraços !
Olá pessoal.
Mais alguém está discutindo a solução proposta pela SAP quanto ao ICMI da nota 3085964?
No exemplo acima vemos claramente que irá afetar o ICMI e consequentemente o valor do ICMS e possivelmente o IPI. Nosso tributário entende que a decisão somente deverá afetar os valores das contribuições para o PIS e a COFINS.
Olá pessoal, Alguém teria uma dica para implementar essa solução no ECC 5.0?
Prezados, boa noite!
Estamos iniciando a implantação no final do mês e gostaria de saber como ficam as devoluções de vendas. Temos um "price schema" única por conta do nosso template e me preocupa como a solução vai lidar com devoluções de vendas anteriores à implantação.
Agradeço a atenção.