Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · COFINS e COFINS-ST

CST em COFINSAliq: códigos 01 e 02 e compatibilidade no XML

<CST>det › imposto › COFINS › COFINSAliq › CST

Revisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

O CST de COFINSAliq identifica a situação tributária da COFINS representada por essa alternativa percentual. Seu caminho é det/imposto/COFINS/COFINSAliq/CST, e o domínio documentado contém somente 01 e 02. Um código aceito em outro grupo da COFINS não é necessariamente aceito aqui.

O significado de 01 e 02

Código Descrição no leiaute
01 Operação tributável com base monetária e alíquota normal, no contexto cumulativo/não cumulativo descrito pelo manual
02 Operação tributável com base monetária e alíquota diferenciada

O MOC 7.0, Anexo I, p. 54 documenta essas descrições. Elas permitem interpretar o documento; não autorizam concluir que toda empresa de determinado regime use um código, nem que um produto tenha determinado percentual.

A escolha requer a situação efetiva da operação e seu fundamento fiscal. Para confirmá-la, reúna identificação do produto, natureza da operação, regime do emitente, data do documento e configuração ou orientação fiscal que originou a classificação. Depois de definido o CST, o sistema deve manter o código e o grupo compatíveis durante o cálculo e a geração do XML.

Código de situação não é valor de alíquota

CST é um código, enquanto pCOFINS é um número percentual. O CST não contém a alíquota e não substitui sua definição. Também não contém a base nem o valor do tributo: em COFINSAliq, os campos vBC, pCOFINS e vCOFINS continuam presentes.

Para demonstrar a representação, assuma CST 01 já definido para uma operação fictícia, base de R$ 80,00 e percentual meramente didático de 2,50%. A conta 80 × 2,50 ÷ 100 resulta em R$ 2,00. O XML é sintético, parcial em relação à nota e não está pronto para transmissão:

<COFINSAliq xmlns="http://www.portalfiscal.inf.br/nfe">
  <CST>01</CST>
  <vBC>80.00</vBC>
  <pCOFINS>2.50</pCOFINS>
  <vCOFINS>2.00</vCOFINS>
</COFINSAliq>

O exemplo não vincula o percentual 2,50% ao código 01 como regra legal. Ele apenas exibe quatro informações com unidades e posições coerentes. Se outro percentual estivesse confirmado para uma operação real, a geração teria de representá-lo; não se escolhe CST por comparação com esse número de exemplo.

Em COFINSQtde, o domínio é CST 03 e os parâmetros são quantidade e valor por unidade. Em COFINSNT, o domínio é 04 a 09 e o grupo não possui aqueles campos de cálculo. COFINSOutr possui um conjunto próprio de códigos de outras operações. Essas diferenças são estruturais e não critérios para mudar a tributação do leitor.

Investigue o caminho e preserve os dois dígitos

No XSD histórico PL_010d_v1.03, CST é uma string enumerada. 01 e 02 são valores exatos; 1, 2, 001, vazio ou espaços não equivalem a eles. Converta o código para a representação textual correta sem perder o zero inicial. Schema PL_010d_v1.03, COFINSAliq/CST.

Quando um validador indicar incompatibilidade:

  1. Localize o item e confirme que a tag está realmente sob COFINSAliq, usando o namespace da NF-e. Buscar apenas “CST” também encontra ICMS, IPI e outros grupos.
  2. Compare o código da configuração fiscal com o texto serializado. Se 01 virou 1, há uma transformação técnica a corrigir.
  3. Se a origem contém outro código, confronte sua definição com a estrutura que o emissor escolheu. Pode haver seleção incorreta do grupo ou classificação pendente.
  4. Corrija a causa comprovada na configuração ou no mapeamento, gere a prévia e valide com o pacote exigido pelo ambiente. Não edite o XML assinado.

Não substitua um código fora do domínio por 01 ou 02 apenas para obter validação. Um XML estruturalmente aceito não comprova que a classificação fiscal seja apropriada. O artigo de COFINSAliq detalha a leitura conjunta dos campos após essa classificação estar confirmada.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/COFINS/COFINSAliq/CST
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
1–1 no contexto do elemento pai
Tipo
inline:xs:string · string
Preenchimento no catálogo
Condicional

A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.

enumeration
01
enumeration
02
whiteSpace
preserve