Componentes de Cálculo de Impostos
Um Componente de Cálculo de Imposto é um complemento opcional e avançado de uma Regra Fiscal — um registro filho que personaliza, em etapas, como a base da regra é calculada. Ele existe para os casos raros em que uma base de imposto é atípica demais para ser expressa com os modificadores nativos da regra.
A principal ideia a levar daqui: a maioria das regras não precisa de nenhum. Por padrão, a base de uma regra é apenas o valor da linha, e os modificadores de cálculo da própria regra — frete, desconto, redução de base, adicional de MVA, por dentro, dependência de regra anterior — já cobrem os regimes complexos que a REDA já entrega prontos. Os componentes são uma ferramenta de precisão para as exceções.
Acesso necessário. Configurar componentes exige o conjunto de permissões Accounting Admin v2 ou Accounting Controller v2. Os conjuntos Accounts Payable v2, Accounts Receivable v2 e Read Only v2 podem visualizá-los, mas não alterá-los.
Quando usar um
Hoje, dois comportamentos de componente valem a pena para você construir sobre:
- Uma base que deve ser limitada a um valor máximo (Teto da Base) — para impostos que se aplicam apenas até um teto.
- Uma etapa que aplica uma alíquota diferente da regra pai (Substituição de Alíquota) — quando várias etapas de uma regra precisam de percentuais próprios.
Se a sua necessidade for coberta pelos modificadores no nível da regra (o caso mais comum), use-os — eles são mais simples e é neles que os pacotes padrão se baseiam.
Os campos
Um componente é filho de uma única Regra Fiscal (relação mestre-detalhe). Seus campos definem uma etapa do cálculo da base:
| Campo | Tipo | Obrigatório | Para que serve |
|---|---|---|---|
| Regra Fiscal | Mestre-Detalhe | Sim | A regra à qual esta etapa pertence |
| Sequência | Número | Sim | Ordem desta etapa dentro da cadeia da regra |
| Fórmula da Base | Lista de seleção | Sim | Valor da Linha · Resultado da Regra Anterior · Valor da Linha Menos Resultado da Regra Anterior · Somente Frete · Expressão Personalizada |
| Regra Anterior | Pesquisa (Regra Fiscal) | Se a fórmula usar uma regra anterior | A regra cujo resultado alimenta esta etapa |
| Substituição de Alíquota | Percentual | Não | Usar uma alíquota diferente da regra pai nesta etapa |
| Teto da Base | Moeda | Não | Limitar a base a um valor máximo |
| Descrição | Área de texto | Não | O que esta etapa calcula e por quê |
| Ativo | Caixa de seleção | Não | Desmarcado → a etapa é ignorada |
Como o motor executa uma cadeia
Quando uma regra tem componentes ativos, o motor os percorre na ordem da Sequência e eles assumem o cálculo da base da regra. Ao longo do processo:
- O Teto da Base limita. Se a base em execução de uma etapa ultrapassa seu Teto da Base, a base é reduzida ao teto antes de a alíquota ser aplicada.
- A Substituição de Alíquota prevalece — a última definida vence. Qualquer etapa pode substituir a Alíquota da regra; se várias etapas trouxerem substituições, a última na sequência é a usada.
- Etapas inativas são ignoradas silenciosamente — o que torna a desativação uma forma segura de testar uma cadeia.
O resultado então passa pelo fluxo normal — arredondamento, registros de auditoria, contabilização no livro razão — exatamente como se a regra tivesse calculado a base sozinha. Duas regras de validação mantêm as cadeias corretas, com estas mensagens exatas:
| A mensagem | O que ela significa |
|---|---|
| “Prior Rule Reference is required when Base Formula is set to "Prior Rule Output" or "Line Amount Minus Prior Rule Output". Select the rule whose output feeds this component’s base calculation.” | Uma fórmula de regra anterior precisa indicar a regra de origem — embora, como visto no destaque acima, o correto seja encaminhar esse padrão pelo campo Depende de Regra Anterior da Regra Fiscal. |
| “A Taxa de substituição deve estar entre 0 e 100. Informe a taxa como porcentagem (ex.: 15 para 15%).” | As substituições são percentuais, não frações — 15 significa 15%. |
Como a complexidade do Brasil é tratada sem componentes
Vale a pena ver isso explicitamente, porque o Brasil é exatamente o tipo de regime em que você esperaria precisar de componentes — e não precisa. Cada parte da sua cascata interestadual corresponde a um campo no nível da regra:
| Mecanismo brasileiro | Tratado por (na Regra Fiscal) |
|---|---|
| ICMS embutido no preço (por dentro) | Sinalizador Imposto Incluído no Preço |
| Adicional de Substituição Tributária | MVA % |
| Diferencial do DIFAL | Suas próprias regras por estado (alíquotas diferenciais fixas), condicionadas por Escopo de Contribuinte do Comprador; o mecanismo Depende de Regra Anterior + Sequência está disponível para variantes de dedução de imposto anterior |
| Isenção parcial da base | Redução de Base % |
| Frete na base do ICMS | Incluir Frete |
Assim, toda a cascata de seis impostos de São Paulo para o Rio roda apenas com campos da regra. Um componente só entraria em cena para uma base personalizada que um futuro cliente precisasse e que nenhum desses campos consiga expressar.
Configuração
- Comece pelos modificadores no nível da regra. Tente expressar a base com os próprios campos da Regra Fiscal primeiro — é mais simples e é como os pacotes já prontos funcionam.
- Adicione componentes apenas para bases limitadas ou com múltiplas alíquotas. Crie-os como filhos da regra, ordenados por Sequência, cada um com uma Fórmula da Base.
- Encaminhe dependências de regra anterior pela própria regra — use o campo Depende de Regra Anterior da Regra Fiscal, não uma fórmula de componente (veja o destaque acima).
- Desative para testar. Desmarcar Ativo ignora uma etapa sem excluí-la — útil para validar uma cadeia.
- Verifique com a prévia. A prévia de impostos em tempo real do formulário da fatura executa a mesma lógica que a contabilização — insira uma linha em rascunho e confirme que a cadeia produz a base esperada antes de entrar em produção.
O que vem a seguir
- Regras fiscais — o registro pai que os componentes estendem.
- Como o imposto é calculado em um documento — componentes em execução dentro de um cálculo.
- Brasil (ICMS, IPI, PIS/COFINS) — bases em camadas que precisam de componentes.
- Imposto de Linha de Origem (Registros de Auditoria) — as linhas por imposto que os componentes produzem.
Perguntas frequentes
Não. As regras já prontas para o Brasil — ICMS por dentro, MVA, DIFAL, FCP, IPI, PIS, COFINS — são todas construídas com campos no nível da regra, sem nenhum componente de cálculo. Você só adicionaria um componente para uma necessidade de base personalizada que esses campos não conseguem expressar.
Os modificadores da regra (frete, desconto, redução de base, MVA, dependência de regra anterior, por dentro) são atalhos rápidos na própria regra — as ferramentas do dia a dia. Um componente é um registro filho separado que constrói a base em etapas explícitas, para fórmulas que os atalhos não conseguem capturar. Componentes são o recurso avançado de reserva.
Sim — o campo Substituição de Alíquota permite que uma etapa aplique uma alíquota diferente da regra pai. A maioria das cadeias não precisa disso; deixe em branco para usar a alíquota da regra.
Isso foi útil?