Regras fiscais
A Regra Fiscal é o cérebro do motor. Tudo antes dela — jurisdições, tipos de impostos, perfis — é vocabulário. A regra é a frase: “Aplique este tipo de imposto à esta alíquota quando estas condições forem todas verdadeiras.” Quando você contabiliza uma fatura, o motor encontra toda regra cujas condições se encaixam e as executa.
Duas ideias tornam as regras fiscais poderosas, e ambas vão contra o que as pessoas esperam. Primeiro, muitas regras disparam ao mesmo tempo — não existe “a primeira coincidência vence.” Uma venda no Reino Unido coincide com uma regra; uma venda interestadual brasileira coincide com seis, e todas as seis se aplicam. Segundo, as condições de uma regra são, em sua maioria, opcionais, e uma condição em branco significa “coincide com qualquer valor.” É isso que permite que um país com regime simples use regras enxutas, enquanto um país complexo empilha regras precisas.
Acesso necessário. Configurar e manter regras fiscais requer 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á-las, mas não alterá-las.
Anatomia: três grupos de campos
Uma Regra Fiscal parece complexa, mas seus campos se dividem em três grupos claros. Apenas cinco são obrigatórios — o restante são condições opcionais e ajustes de cálculo.
| Grupo | Campos | Função |
|---|---|---|
| Identidade e resultado | Código, Tipo de Imposto, Alíquota, Sequência, Descrição, Notas, Está Ativo | Qual imposto, qual alíquota, em qual ordem |
| Condições de correspondência | Jurisdição de Origem e Destino, Perfil Fiscal, Perfil do Terceiro Comprador e Vendedor, Operação Fiscal, Regime do Vendedor, Vigente De / Até | Quando esta regra dispara? |
| Modificadores de cálculo | Incluir Frete, Subtrair Desconto, % de Redução de Base, % de MVA, Imposto Incluído no Preço, Depende de Regra Anterior | Como a base é calculada? |
As condições de correspondência — em branco significa “qualquer”
Uma regra dispara apenas quando todas as suas condições definidas são satisfeitas. Deixe uma condição em branco e ela deixa de ser um filtro — a regra coincide com qualquer valor ali. Esse comportamento de “nulo = curinga” é a coisa mais importante a entender sobre as regras.
| Condição | Coincide quando… | Em branco significa |
|---|---|---|
| Jurisdição de Origem | A localização do vendedor é este lugar ou está abaixo dele (ancestralidade) | Qualquer origem |
| Jurisdição de Destino | A localização do comprador é este lugar ou está abaixo dele | Qualquer destino |
| Perfil Fiscal | O tratamento fiscal do produto na linha é igual a este | Coringa geral — dispara apenas para produtos marcados com “Aplicar Imposto Padrão” (veja abaixo) |
| Perfil fiscal de parte (comprador) | O perfil do terceiro do cliente é igual a este | Qualquer comprador |
| Perfil fiscal de parte (vendedor) | O perfil do terceiro da sua entidade é igual a este | Qualquer vendedor |
| Operação Fiscal | A operação derivada é igual a esta (interestadual, exportação…) | Qualquer operação |
| Regime do Vendedor | O regime da sua entidade coincide (Lucro Real…) — lido a partir do campo Regime Fiscal do Perfil Fiscal do Terceiro da entidade, de forma que renomear um perfil nunca altera o cálculo | Qualquer = todos os regimes |
| Escopo de Contribuinte do Comprador | O status de contribuinte do comprador coincide (Contribuinte / Não Contribuinte) — por exemplo, DIFAL/FCP no Brasil disparam apenas para consumidores finais não contribuintes | Qualquer = todos os compradores |
| Vigente De / Até | A data da fatura cai dentro da janela | (De em branco = sem início; Até em branco = sem expiração) |
| Está Ativo | Marcado | Desmarcado = nunca dispara |
A correspondência por ancestralidade (Origem/Destino) é o mesmo truque de hierarquia de
Jurisdições Fiscais: uma regra definida em GB
dispara para um comprador em qualquer lugar do Reino Unido, porque GB é
ancestral de todo lugar do Reino Unido. Além dessas condições, o motor também executa
uma verificação separada de nexo fiscal (sua entidade está registrada
onde o comprador está?) antes de qualquer regra disparar — veja Registro Fiscal de
Entidade.
Sequência e dependências — a ordem importa
Quando várias regras disparam, o motor as executa na ordem da Sequência (a menor primeiro). Para a maioria dos impostos a ordem é apenas cosmética, mas para alguns ela é essencial, porque um imposto é calculado a partir do resultado de outro. É para isso que serve Depende de Regra Anterior.
A autorreferência da regra é protegida: uma regra não pode depender de si mesma, e a regra anterior precisa estar ativa (duas regras de validação garantem isso).
Como a base é calculada
Por padrão, o imposto de uma regra é simplesmente base × alíquota, onde a base é o valor da linha. Os modificadores de cálculo ajustam essa base para os casos que precisam disso. Aplicados nesta ordem:
| Modificador | Efeito sobre a base | Usado para |
|---|---|---|
| Incluir Frete | + frete na linha | Brasil (o frete é tributável na base do ICMS) |
| Subtrair Desconto | − desconto na linha | Descontos que reduzem o valor tributável |
| Redução de base (%) | × (1 − %redução) | Isenções parciais de base (alguns itens no Brasil) |
| MVA / margem (%) | × (1 + %MVA) | Margem de valor agregado da Substituição Tributária do ICMS no Brasil |
| Depende de Regra Anterior | − o valor da regra anterior | Diferencial do DIFAL |
| Imposto incluído no preço (por dentro) | O imposto está embutido no preço — não se soma ao total da fatura | ICMS no Brasil |
O valor final é base × alíquota ÷ 100, arredondado para duas casas decimais (para cima a partir de 0,5). Os exemplos numéricos completos — incluindo o cálculo por dentro do Brasil — estão em Como o Imposto é Calculado e no exemplo do Brasil.
Vigência — histórico de alíquotas sem perder o passado
Alíquotas mudam, e faturas antigas precisam manter sua alíquota antiga. A REDA lida com isso por meio de Vigente De / Vigente Até em vez de um objeto de histórico separado. Para alterar uma alíquota: defina o campo Vigente Até da regra antiga para o dia anterior à mudança e crie uma nova regra com a nova alíquota a partir da data da mudança.
GB-VAT-STD-20 é vigente a partir de 4 de janeiro de 2011
— o dia em que a alíquota subiu para 20%. Uma fatura com data anterior a essa
coincidiria com a regra antiga de 17,5% (com sua própria janela de vigência); uma
fatura de hoje coincide com a regra de 20%. O motor sempre escolhe a regra em vigor
na data da fatura.
Os campos — com valores do Reino Unido e do Brasil
Cada campo, com a regra de IVA padrão do Reino Unido ao lado da regra de ICMS interestadual do Brasil:
| Campo | Obrig. | 🇬🇧 GB-VAT-STD-20 | 🇧🇷 BR-ICMS-6101-SP-TO-SE |
|---|---|---|---|
| Código | Sim | GB-VAT-STD-20 | BR-ICMS-6101-SP-TO-SE |
| Tipo de Imposto | Sim | GB-VAT-STD | BR-ICMS |
| Alíquota | Sim | 20% | 12% |
| Sequência | Sim | 10 | 10 |
| Vigente De | Sim | 2011-01-04 | 2020-01-01 |
| Perfil Fiscal | Não | GB-STD-20 | BR-STD-GOODS |
| Jurisdição de Destino | Não | GB | (em branco — delimitado pela Operação Fiscal) |
| Operação Fiscal | Não | (em branco) | BR-6101 (interestadual) |
| Regime do Vendedor | Não | Qualquer | Qualquer |
| Imposto Incluído no Preço | Não | Não | Sim (por dentro) |
| Origem / Perfil do Comprador e Vendedor / MVA / Redução de Base / Frete / Desconto / Depende de | Não | (todos em branco) | (definidos conforme exigido pela legislação brasileira) |
O contraste é a lição: a regra do Reino Unido define um punhado de campos e deixa o resto em branco (= qualquer), então coincide amplamente. A regra do Brasil fixa a operação fiscal e o sinalizador por dentro, então dispara com precisão em vendas interestaduais e embute o imposto no preço.
Dados reais: conjuntos de regras do Reino Unido e do Brasil
🇬🇧 Reino Unido — 4 regras, uma por tratamento
| Regra | Tipo de Imposto | Perfil Fiscal | Alíquota | Seq. |
|---|---|---|---|---|
GB-VAT-STD-20 | GB-VAT-STD | GB-STD-20 | 20% | 10 |
GB-VAT-RED-5 | GB-VAT-RED | GB-RED-5 | 5% | 10 |
GB-VAT-ZERO-0 | GB-VAT-ZERO | GB-ZERO | 0% | 10 |
GB-VAT-EX-0 | GB-VAT-EXEMPT | GB-EXEMPT | 0% | 10 |
Um produto, uma regra dispara (a que tem o Perfil Fiscal coincidente). Sem drama de sequenciamento — elas são mutuamente exclusivas por perfil.
🇧🇷 Brasil — seis regras em uma linha interestadual
| Seq. | Regra | Imposto | Alíquota | Campos notáveis |
|---|---|---|---|---|
| 10 | BR-ICMS-6101-SP-TO-SE | ICMS | 12% | Imposto Incluído no Preço (por dentro); Operação Fiscal = BR-6101 |
| 20 | BR-IPI-STANDARD | IPI | 10% | Aditivo; Perfil Fiscal = BR-IPI-GOODS |
| 30 | BR-PIS-LR-STDG | PIS | 1,65% | Regime do Vendedor = Lucro Real; por dentro |
| 40 | BR-COFINS-LR-STDG | COFINS | 7,6% | Regime do Vendedor = Lucro Real; por dentro |
| 50 | BR-DIFAL-RJ-STDG | DIFAL | 8% | Operação Fiscal = BR-6101; Destino = RJ; Comprador = Não Contribuinte |
| 60 | BR-FCP-RJ-STDG | FCP | 2% | Operação Fiscal = BR-6101; Destino = RJ; Comprador = Não Contribuinte |
Cada dimensão está fazendo seu trabalho aqui: a Operação Fiscal controla as regras interestaduais, o Destino restringe DIFAL/FCP ao Rio de Janeiro, o Escopo de Contribuinte do Comprador restringe DIFAL/FCP a vendas para consumidor (não contribuinte), o Regime do Vendedor seleciona o PIS/COFINS do Lucro Real, e a Sequência ordena a cascata. Mude o vendedor para Lucro Presumido e as alíquotas de 0,65% / 3% tomam seu lugar; venda para uma empresa registrada no ICMS em vez de um consumidor e o DIFAL/FCP saem, restando quatro regras.
Como a correspondência funciona no momento da contabilização
Você não aciona nada disso — acontece automaticamente quando uma fatura é contabilizada — mas aqui está a sequência, para que as escolhas de campos façam sentido:
Proteções integradas
| Regra | O que ela garante |
|---|---|
| Código em maiúsculas / sem espaços | Códigos de ID externo limpos |
| Alíquota não negativa | Use 0 para itens de alíquota zero/isentos — nunca uma alíquota negativa |
| Intervalo de datas de vigência | Vigente Até não pode ser anterior a Vigente De — uma regra não pode expirar antes de começar |
| Não depende de si mesma | Uma regra não pode depender de si mesma, e a regra anterior precisa estar ativa |
| Referências ativas | O tipo de imposto, os perfis, as jurisdições e a operação fiscal que uma regra referencia precisam estar todos ativos |
O que vem a seguir
- Tipos de impostos — o imposto que uma regra aplica.
- Componentes de Cálculo de Impostos — personalização avançada da base em uma regra.
- Como o imposto é calculado em um documento — regras aplicadas em um cálculo real.
- Operações Fiscais — a natureza da transação que uma regra lê.
- Imposto de Linha de Origem (Registros de Auditoria) — o registro que cada regra disparada grava.
Perguntas frequentes
Nenhuma prevalece — as duas disparam. O motor nunca para na primeira coincidência; ele aplica toda regra cujas condições sejam satisfeitas, na ordem da Sequência. Isso é proposital: o Brasil de fato empilha seis impostos em uma única venda. Se você quiser que apenas uma se aplique, torne as condições delas mutuamente exclusivas (como as regras do Reino Unido, por Perfil Fiscal).
Percorra as condições: ela está Ativa? A data da fatura está dentro do intervalo Vigente De/Até? As jurisdições de origem/destino coincidem (por ancestralidade)? O Perfil Fiscal da linha coincide (ou o da regra está em branco)? Os perfis de terceiros, a operação fiscal e o regime do vendedor coincidem? E, separadamente — sua entidade tem nexo fiscal na jurisdição do comprador? Uma única condição não atendida interrompe a regra.
Não edite a alíquota diretamente na regra. Defina o campo Vigente Até da regra atual para o dia anterior à mudança e, em seguida, crie uma nova regra com a nova alíquota vigente a partir da data da mudança. As faturas antigas mantêm a alíquota antiga; as novas recebem a nova.
Defina uma condição apenas quando a regra realmente deva ser restringida por ela. Em branco = “aplica-se independentemente disso.” Regimes simples (Reino Unido) deixam quase tudo em branco; regimes complexos (Brasil) fixam operação fiscal, destino e regime do vendedor para direcionar com precisão. Definir condições demais é o motivo mais comum de uma regra não disparar quando você espera que ela dispare.
Isso foi útil?