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).
Validar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
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ódigo000, e10e"10"são010. - 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.isValidporque os seus códigos de 3 dígitos colidem com o CST do ICMS, ecst.isValidsemtaxaceita um código de qualquer tabela, então incluir esses códigos mudaria o que esse padrão aceita.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
| retorna | boolean |
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,820e830. - É uma função própria, não um
taxdeisValidCst: 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), eisValidCstsemtaxaceita 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ódigo000.
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)Teste com JavaScript isValidCstIbsCbs
Casos de teste compartilhados (25) e o resultado em cada biblioteca cstIbsCbs.isValid
Consultar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Consulta um CST-IBS/CBS na tabela oficial e retorna o código e a descrição.
- Mesmas regras de entrada de
cstIbsCbs.isValid. Retornanullexatamente quando essa função retornafalse. - O código retornado tem 3 dígitos, completados com zeros. A descrição é o texto da aba CST da tabela oficial.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
| retorna | CstIbsCbs | 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. Retornanullquando 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)Teste com JavaScript getCstIbsCbs
Casos de teste compartilhados (23) e o resultado em cada biblioteca cstIbsCbs.get
Fontes oficiais
- nfe.fazenda.gov.br/portal/exibirArquivo.aspx
- nfe.fazenda.gov.br/portal/exibirArquivo.aspx
- nfe.fazenda.gov.br/portal/exibirArquivo.aspx
- dfe-portal.svrs.rs.gov.br/DFE/TabelaClassificacaoTributaria
- planalto.gov.br/ccivil_03/leis/…/lcp214.htm
Veja também CST, cClassTrib
Atualizado em
