O DIFAL (Diferencial de Alíquota) é o mecanismo criado pela EC 87/2015 para dividir o ICMS entre a UF de origem e a UF de destino em operações interestaduais destinadas a consumidor final não contribuinte. Antes, o ICMS ficava todo na UF origem; com a emenda, passou a haver partilha.
Quando se aplica
O DIFAL é gerado automaticamente quando todas estas condições ocorrem:
- Empresa emitente é Regime Normal (
CRT = 3). Simples Nacional e MEI não disparam DIFAL neste fluxo - PIS/COFINS/ICMS continuam pelo DAS. - Documento é NF-e modelo 55 de saída (
mod = 55,tpNF = 1). NFC-e e operações de entrada não geram DIFAL. - Operação entre UFs diferentes (UF origem ≠ UF destino).
- Destinatário é não contribuinte do ICMS (
Cliente.IndicadorIe = 9). Quando o destinatário é contribuinte (IndicadorIe = 1), a alíquota interestadual já fecha o recolhimento. - CFOP do produto não está na lista de exclusões configurada no cadastro da empresa - lista que permite tirar CFOPs específicos do DIFAL (ex.: 1202, 2202).
- O modo de cálculo da base do DIFAL configurado para a empresa não está em "desabilitado" (ver próxima seção).
A UF destino é resolvida na seguinte ordem: Entrega.UF (quando há entrega em endereço diferente do cliente) ou, na ausência, Cliente.Endereco.UF.
Modo de cálculo da base (config da empresa)
A empresa tem, no cadastro, um parâmetro que decide a fórmula da vBCUFDest. Você não envia esse parâmetro na requisição - ele é configurado uma única vez por empresa, e a API aplica a fórmula correspondente em todas as notas. Os três modos disponíveis:
| Modo | Fórmula da vBCUFDest | Quando usar |
|---|---|---|
| Base única (default) | vBCUFDest = vBC (base do ICMS próprio). | UFs que aceitam o DIFAL sobre a base do ICMS próprio. |
| Base dupla ("por dentro") | vBCUFDest = (vBC − vICMS) / (1 − pICMSUFDest/100) | UFs que exigem DIFAL com gross-up (ex.: SP, RJ, MG, PR em diversos cenários). |
| DIFAL desabilitado | API não preenche ICMSUFDest mesmo quando as demais condições casariam. | Cenários em que a empresa não recolhe o DIFAL pela nota (regimes especiais, operações fora do escopo). |
A UF destino dita qual modo usar; alinhe com a contabilidade antes de cadastrar a empresa.
Como a Brasil NFe calcula
Você não precisa enviar vICMSUFDest, vFCPUFDest nem vICMSUFRemet. A API calcula automaticamente com base na alíquota interna da UF destino e na alíquota interestadual aplicável (7% ou 12%, ou 4% para importados com Resolução SF 13):
Code
A vBCFCPUFDest faz gross-up combinando alíquota ICMS destino + FCP destino - ela difere de vBCUFDest mesmo no modo "base única".
Exemplo
- Produto vendido de SP para consumidor final em MG, vBC = R$ 1.000,00, empresa SP em Regime Normal.
- Alíquota interestadual SP→MG = 12%. Alíquota interna MG = 18%. FCP MG = 2%.
- Empresa cadastrada no modo "base única".
vICMS= 1000 × 12% = R$ 120,00 (fica em SP).vICMSUFDest= 1000 × (18% − 12%) = R$ 60,00 (vai para MG).vBCFCPUFDest= 1000 / (1 − (18% + 2%)/100) ≈ R$ 1.250,00.vFCPUFDest= 1250 × 2% = R$ 25,00 (vai para MG, FCP).
IE substituta da UF destino (IEST)
Se a empresa tiver uma IE-ST cadastrada para a UF destino, a API a anexa automaticamente em emit.IEST quando o DIFAL é gerado. No cadastro de IEs por UF, é possível marcar uma inscrição como exclusiva de DIFAL - nesse caso ela só é informada em notas que efetivamente disparam DIFAL e fica oculta nas demais.

