Tributário
ICMS · DIFAL POST
Calcula o Diferencial de Alíquota entre duas UFs -- 100% devido à UF de destino desde 2019 (fim do cronograma de partilha da EC 87/2015; base normativa atual: Convênio ICMS 236/2021 + LC 190/2022, que substituiu o Convênio 93/2015 após a ADI 5469 do STF).
Corpo da requisição
| Campo | Tipo | Obrigatório | Observação |
|---|---|---|---|
uf_origem | string | Sim | |
uf_destino | string | Sim | |
valor_operacao | number | Sim | |
aliquota_interna_destino | number | Não | Se omitido, o motor tenta usar a alíquota geral curada da UF de destino -- só funciona pras UFs já curadas; nas demais, omitir retorna 400 pedindo que você informe. Não existe fonte federal única pras 27 alíquotas internas, então esta API nunca inventa uma. |
percentual_fcp_destino | number | Não | |
produto_importado_ou_conteudo_importacao_maior_40 | boolean | Não | |
crt_emitente | string | Não, mas recomendado | CRT do emitente ("1"/"2" = Simples Nacional). |
destinatario_contribuinte | boolean | Não | true = destinatário é contribuinte do ICMS; false = consumidor final não contribuinte. |
Exceção do STF (ADI 5464): se o emitente é optante do Simples
Nacional (
crt_emitente "1" ou "2") e o
destinatário é consumidor final não contribuinte
(destinatario_contribuinte: false), o DIFAL correto é zero
-- o STF suspendeu essa cobrança na ADI 5464 (cautelar, fev/2016, ainda vigente) e o
Convênio ICMS 236/2021 manteve a exclusão do Simples Nacional dessa hipótese. Não se
aplica à antecipação/DIFAL na compra por optante do Simples para uso/consumo (LC
123/2006, art. 13, §1º, XIII), que segue as regras normais. Sem informar
crt_emitente/destinatario_contribuinte, o motor não sabe
aplicar essa exceção e pode calcular um valor que não é devido.
curl -X POST https://areacliente.centralfiscal.com.br/v1/tributario/icms/difal \
-H "Authorization: Bearer cf_live_51JqK..." \
-H "Content-Type: application/json" \
-d '{
"uf_origem": "SP",
"uf_destino": "BA",
"valor_operacao": 1000,
"aliquota_interna_destino": 18,
"percentual_fcp_destino": 2,
"produto_importado_ou_conteudo_importacao_maior_40": false
}'Resposta
{
"aliquotaInterestadual": 12,
"aliquotaInternaDestino": 18,
"aliquotaInternaDestinoOrigem": "informada_pelo_chamador",
"aliquotaInternaDestinoObservacao": null,
"aliquotaDifal": 6,
"valorDifal": 60,
"valorFcpDestino": 20,
"fundamentacao": "..."
}
aliquotaInternaDestinoOrigem indica se a alíquota interna veio de você
(informada_pelo_chamador) ou de uma curadoria interna
(curada (...), com a base legal). Se vier curada,
aliquotaInternaDestinoObservacao pode trazer ressalvas.
Usando o resultado na emissão. Este endpoint só calcula -- pra colocar o
DIFAL na NF-e de verdade, informe os valores calculados em
itens[].tributacao.icms_uf_dest na emissão de
NF-e. O motor confere a aritmética contra a mesma fonte oficial usada aqui e avisa se
algo não bater.