TF Fiscal

ICMS en detalle

El impuesto estatal sobre circulación: cálculo, sistema de alícuotas, sustitución tributaria y DIFAL, más las tablas de CSOSN / CST separadas por régimen

El ICMS es el tributo más pesado e intrincado de Brasil: cada uno de los 27 estados legisla su versión sobre mercancías, transporte interestatal/intermunicipal y comunicación. Es no acumulativo (crédito en las entradas), calculado por dentro (el impuesto integra su propia base) y con numerosas excepciones estatales: sustitución tributaria (ST), reducción de base, diferimiento, exenciones y el diferencial de alícuotas (DIFAL).

Cálculo y alícuotas

  • Cálculo por dentro: base = precio (que ya contiene el ICMS) + flete + seguro + otros gastos − descuentos; el IPI integra la base en la venta a consumidor final. Una alícuota nominal del 18% equivale a cerca del 21,95% sobre el precio neto.
  • Alícuotas internas: fijadas por cada estado, en general 17%–20% (SP 18%, RJ 20% más 2% de FCP, MG 18%…); superfluos como tabaco, bebidas y cosméticos llegan a 25%–35%.
  • Alícuotas interestatales: 12% en general; 7% del Sur y Sudeste (excepto ES) hacia Norte, Nordeste, Centro-Oeste y ES; mercancía importada (origen 1, 2, 3, 8) siempre 4%.
  • DIFAL: en la venta interestatal a no contribuyente (persona física, empresa sin inscripción estatal), la diferencia entre la alícuota interna del destino y la interestatal va al estado de destino, pagada por el vendedor; Simples (CRT 1 / 4) está dispensado (ADI 5469), CRT 2 / 3 debe calcularla.
  • FCP (Fondo de Combate a la Pobreza): algunos estados agregan 1%–2% en ciertos productos; en la interestatal sigue al DIFAL hacia el destino.
  • Sustitución tributaria (ST): para mercancías listadas (identificadas por el CEST), el ICMS de toda la cadena lo retiene una vez el fabricante o importador sobre la base con MVA; la reventa usa CST 60 / CSOSN 500 y no destaca impuesto.
  • Reducción de base, exención, diferimiento, suspensión: concedidos por estado y producto, mapeados en CST 20 / 40 / 51 / 50 en el régimen normal; el Simples no tiene ese detalle y usa CSOSN 400 / 300 para no gravada e inmune.

El régimen define CSOSN o CST

CRTRégimenCódigo ICMSinvoice_type de la empresaDIFAL
1Simples NacionalCSOSN · 3simples_nacional / 1Dispensado
2Simples Nacional, exceso de sublímiteCST · 2simples_nacional_excesso / 2Debido
3Régimen normal (Lucro Real / Presumido)CST · 2tributacao_normal / lucro_normal / 3Debido
4MEICSOSN · 3simples / 4Dispensado
La plataforma valida localmente que la longitud del código coincida con el régimen: CRT 1 / 4 enviando CST, o CRT 2 / 3 enviando CSOSN, se rechaza con el motivo y no se reenvía (sería rechazado con 590 / 591 y consumiría la cuota del CNPJ). Sin validación cuando invoice_type no está en la tabla.

Simples Nacional: tabla de CSOSN

CRT 1 y 4. Envíe 3 dígitos en icms.situacao_tributaria; los 10 están soportados.

CSOSNSignificadoCuándo usar
101Gravada por el Simples con derecho a créditoVenta a contribuyente del régimen normal transfiriendo crédito; informe aliquota_credito (1,25%–3,95% según la franja).
102Gravada por el Simples sin derecho a créditoMás común: venta a consumidor, no contribuyente, o cualquier venta sin transferir crédito.
103Exención del ICMS por franja de ingresosCuando el estado exime las franjas iniciales de ingresos.
201Con derecho a crédito y con cobro del ICMS por STVenta con ST como sustituto, transfiriendo crédito.
202Sin derecho a crédito y con cobro del ICMS por STVenta con ST como sustituto; el caso más común.
203Exención por franja y con cobro del ICMS por ST103 combinado con ST.
300InmuneInmunidad constitucional: libros, periódicos, revistas y su papel; exportación.
400No gravada por el SimplesFuera del ICMS: remesas sin venta (obsequio, muestra, reparación).
500ICMS cobrado anteriormente por ST o por anticipaciónReventa de mercancía con ST; con CFOP 5405 / 6404, opcionalmente los valores retenidos (v_bc_st_ret, v_icms_st_ret).
900OtrosCuando nada de lo anterior aplica: importación, operaciones que exigen base y valor.

Régimen normal: tabla de CST

CRT 2 y 3. Envíe 2 dígitos en icms.situacao_tributaria; en el XML se antepone el origen. Los 15 están soportados.

CSTSignificadoCuándo usar
00Gravada íntegramenteVenta común, la más usada; informe aliquota.
10Gravada y con cobro del ICMS por STVenta con ST como sustituto; informe aliquota_mva, aliquota_icms_st.
20Con reducción de base de cálculoReducción de base concedida por el estado; informe aliquota_reducao (% de reducción).
30Exenta o no gravada y con cobro del ICMS por STOperación propia exenta, con retención del ST para la etapa siguiente.
40ExentaExenta por ley estatal; puede llevar motivo_desoneracao y valor_desoneracao.
41No gravadaFuera del campo del ICMS; usual en exportación.
50SuspensiónRemesas temporales: reparación, demostración, industrialización por encargo.
51DiferimientoImpuesto diferido; informe aliquota_diferimento.
60ICMS cobrado anteriormente por sustitución tributariaReventa de mercancía con ST; con CFOP 5405 / 6404.
70Con reducción de base y cobro del ICMS por ST20 combinado con 10.
90OtrasCuando nada de lo anterior aplica.
02 · 15 · 53 · 61Serie de tributación monofásica sobre combustiblesSolo combustibles (02 propia, 15 con retención, 53 diferido, 61 cobrado anteriormente); informe ad_rem_icms.

Origen de la mercancía

Campo products[].origem, obligatorio en ambos regímenes. Define la alícuota interestatal (4% para importados) y es el primer dígito del CST/CSOSN en el XML.

ValorSignificado
0Nacional, excepto las de los códigos 3, 4, 5 y 8
1Extranjera, importación directa, excepto código 6
2Extranjera, adquirida en el mercado interno, excepto código 7
3Nacional, contenido de importación superior a 40% y hasta 70%
4Nacional, producción conforme a procesos productivos básicos
5Nacional, contenido de importación hasta 40%
6Extranjera, importación directa, sin similar nacional (lista CAMEX)
7Extranjera, adquirida en el mercado interno, sin similar nacional (lista CAMEX)
8Nacional, contenido de importación superior a 70%

Campos de la plataforma (fila icms[] de la categoría / impostos.icms inline)

CampoFinalidad
cenario · tipo_pessoaClaves de la fila: escenario y tipo de persona, vea abajo.
codigo_cfop · situacao_tributariaCFOP y CST/CSOSN; obligatorios.
aliquotaAlícuota del ICMS (%).
aliquota_reducao% de reducción de base (CST 20 / 70).
aliquota_fcpAlícuota del FCP (%).
aliquota_mva · aliquota_icms_st · aliquota_reducao_st · aliquota_fcp_stAl retener ST como sustituto: MVA, alícuota del ST, reducción de base del ST, FCP-ST (CST 10 / 30 / 70, CSOSN 201 / 202 / 203).
v_bc_st_ret · v_icms_st_ret · v_icms_substituto · p_fcp_st_ret · v_bc_fcp_st_ret · v_fcp_st_retEn la reventa con ST (CST 60 / CSOSN 500): base y valores retenidos anteriormente.
aliquota_creditoAlícuota de crédito transferida al comprador en el Simples (CSOSN 101 / 201).
aliquota_diferimento% de diferimiento (CST 51).
motivo_desoneracao · valor_desoneracaoMotivo de la exoneración y valor exonerado (CST 40 / 41 / 50 / 90).
beneficio_fiscal[]Códigos de beneficio fiscal por estado: [{"estado":"SP","codigo":"SP800001"}], escritos en cBenef del XML.
disable_difal · difal_desconta_icms_inter · difal_base_por_dentro · v_bc_uf_destControles del DIFAL: desactivar; base doble “por dentro” descontando el ICMS interestatal (método de la mayoría de los estados); o informar la base del destino directamente.
desconta_icms_pis_cofinsSi true, resta el ICMS del ítem de la base de PIS/COFINS (STF, Tema 69).

Escenarios y tipo de persona en la categoría

cenarioSignificado
saida_dentro_estadoSalida, destinatario en el mismo estado
saida_fora_estadoSalida, destinatario en otro estado
entrada_dentro_estadoEntrada, contraparte en el mismo estado
entrada_fora_estadoEntrada, contraparte en otro estado
padraoFila por defecto cuando ningún escenario coincide
  • Orden: escenario actual → padrao → heredado saida_dentro_estado / saida_fora_estado; cada paso filtra antes por tipo_pessoa (fisica / juridica).
  • La venta interestatal a persona física exige la fila saida_fora_estado + fisica con CFOP 6108 y códigos; si no, usa la fila de persona jurídica.
  • Importación (transaction_type = 2) ignora el escenario, usa el primer registro y prefiere CFOP 3.xxx; exportación (= 3) ignora tipo_pessoa.
  • Sin fila compatible la emisión falla y el error indica el cenario y el tipo_pessoa faltantes.

Combinaciones recomendadas

OperaciónSimples Nacional (CRT 1 / 4)Régimen normal (CRT 3)
Venta comúnCSOSN 102(101 + aliquota_credito)CST 00 + aliquota
Reventa con ST retenidaCSOSN 500 · CFOP 5405 / 6404CST 60 · CFOP 5405 / 6404
Retención de ST como sustitutoCSOSN 202 / 201 · MVACST 10 · MVA
Venta interestatal a persona física (B2C)CSOSN 102 · CFOP 6108 · 免 DIFALCST 00 · CFOP 6108 · DIFAL + FCP
Remesa sin venta (obsequio, muestra, reparación…)CSOSN 400CST 41(送修 50)
ExportaciónCSOSN 300 · CFOP 7101 / 7102CST 41 · CFOP 7101 / 7102
Entrada de importaciónCSOSN 900 · CFOP 3102CST 00 · CFOP 3102

Alícuotas, beneficios y listas de ST los define cada estado y cambian con frecuencia; los valores aquí son los usuales, prevaleciendo el contador y la legislación del estado. Para el CFOP vea “CFOP por escenario”.