CST IBS/CBS

Código de Situação Tributária do IBS e da CBS, os tributos da reforma tributária do consumo (LC 214/2025).

  • Matriz de paridade

Validar

Verifica se um CST-IBS/CBS (Código de Situação Tributária do IBS e da CBS) existe na tabela oficial. É o código que o campo CST do grupo IBSCBS traz nos documentos fiscais eletrônicos da reforma tributária (NF-e, NFC-e, CT-e, NFS-e e outros), e a verificação da rejeição 1020 da NF-e.

  • Aceita uma string só de dígitos, com espaços opcionais nas pontas, ou um inteiro seguro não negativo. Um valor com menos de 3 dígitos é completado com zeros à esquerda, como string ou como número, porque os códigos começam com zeros que um campo numérico perde: 0, "0" e "000" são todos o código 000, e 10 e "10" são 010.
  • Qualquer outra string é rejeitada ("cst200", "2.00"). A função não extrai os dígitos dela. Um número negativo ou fracionário é inválido.
  • A tabela publicada em 23/06/2026 tem 18 códigos: 000, 010, 011, 200, 220, 221, 222, 400, 410, 510, 515, 550, 620, 800, 810, 811, 820 e 830. O CST 220 continua válido, embora as suas classificações tenham sido excluídas (veja classTrib.isValid).
  • O IBS e a CBS usam a mesma tabela. Ela fica separada de cst.isValid porque os seus códigos de 3 dígitos colidem com o CST do ICMS, e cst.isValid sem tax aceita um código de qualquer tabela, então incluir esses códigos mudaria o que esse padrão aceita.
ParâmetroTipoObrigatório
valuestring | numbersim
retornaboolean

Valida um CST-IBS/CBS (Código de Situação Tributária do IBS e da CBS) contra a tabela oficial, o código que o campo CST do grupo IBSCBS leva nos documentos fiscais eletrônicos da reforma tributária (Lei Complementar nº 214/2025): NF-e, NFC-e, CT-e, NFS-e e os demais.

  • Os códigos vigentes são 000, 010, 011, 200, 220, 221, 222, 400, 410, 510, 515, 550, 620, 800, 810, 811, 820 e 830.
  • É uma função própria, não um tax de isValidCst: IBS e CBS compartilham uma única tabela, seus códigos de 3 dígitos colidem com a forma origem + Tabela B do ICMS (000, 200), e isValidCst sem tax aceita um código de qualquer tabela, então incluir esta mudaria o que esse padrão aceita.
  • Aceita uma string de dígitos puros, com espaços opcionais nas extremidades, ou um inteiro seguro não negativo. O campo é numérico com 3 dígitos e não tem máscara, então qualquer outra string é rejeitada em vez de ter os dígitos pinçados.
  • Um valor com menos de 3 dígitos é completado com zeros à esquerda, como string ou como número, já que os códigos começam com zeros que um campo numérico descarta: 0, '0' e '000' são todos o código 000.
import { isValidCstIbsCbs } from '@brazilian-utils/brazilian-utils';

isValidCstIbsCbs('000'); // true
isValidCstIbsCbs(410); // true
isValidCstIbsCbs(10); // true (completado para '010')
isValidCstIbsCbs('100'); // false
isValidCstIbsCbs('cst200'); // false (não é uma forma documentada)
isValidCstIbsCbs(-200); // false (não é um inteiro seguro não negativo)
Código: brazilian-utils/javascript
Teste com JavaScript isValidCstIbsCbs
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (25) e o resultado em cada biblioteca cstIbsCbs.isValid

Consultar

Consulta um CST-IBS/CBS na tabela oficial e retorna o código e a descrição.

  • Mesmas regras de entrada de cstIbsCbs.isValid. Retorna null exatamente quando essa função retorna false.
  • O código retornado tem 3 dígitos, completados com zeros. A descrição é o texto da aba CST da tabela oficial.
ParâmetroTipoObrigatório
valuestring | numbersim
retornaCstIbsCbs | null

Busca um CST-IBS/CBS e retorna a descrição que a tabela oficial de CST dá a ele. O resultado é um registro CstIbsCbs: { code, description }.

  • Valem a mesma tabela e as mesmas regras de entrada de isValidCstIbsCbs. Retorna null quando o código é desconhecido ou o valor não está em uma forma documentada.
import { getCstIbsCbs } from '@brazilian-utils/brazilian-utils';

getCstIbsCbs('000'); // { code: '000', description: 'Tributação integral' }
getCstIbsCbs(410); // { code: '410', description: 'Imunidade e não incidência' }
getCstIbsCbs(10); // { code: '010', description: 'Tributação com alíquotas uniformes' }
getCstIbsCbs('100'); // null
getCstIbsCbs('cst200'); // null (não é uma forma documentada)
Código: brazilian-utils/javascript
Teste com JavaScript getCstIbsCbs
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (23) e o resultado em cada biblioteca cstIbsCbs.get

Fontes oficiais

Veja também CST, cClassTrib

Atualizado em

Nesta página