CBO

Códigos de ocupação da Classificação Brasileira de Ocupações (CBO 2002), na release vigente do MTE.

  • Matriz de paridade

Validar

Verifica se um código CBO existe na tabela oficial de ocupações CBO 2002.

  • Aceita os 6 dígitos, a máscara NNNN-NN ou um inteiro não negativo. Uma string com máscara pode ter qualquer sequência de separadores (espaço, ., - ou /) entre os grupos: 2124--05 é válido. Até a 2.4.0 a máscara tinha um único separador e 2124--05 era rejeitado.
  • Separadores só são aceitos na fronteira entre os grupos: 2124-0-5 e 21-2405 são inválidos. Espaços nas pontas são ignorados.
  • Dígitos sem máscara (string ou número) são completados com zeros à esquerda até 6. Um valor com máscara é lido como está escrito.
  • Qualquer outra string é rejeitada. A função não extrai os dígitos dela.
  • Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro é inválido.
  • A tabela segue a release vigente do MTE, os arquivos "Estrutura CBO (CSV)" de 10/07/2026, com 2.725 ocupações. A 2.4.0 usava o CSV mais antigo do gov.br, de 06/06/2025 (2.694 ocupações).
  • Um código que o MTE retirou deixa de ser válido. 225142, 322105, 322115, 322120, 322125 e 782820 eram válidos na 2.4.0 e agora são inválidos. Alguns foram para códigos novos: Técnico em acupuntura agora é 322705.
  • Entraram 37 ocupações, entre elas 782325 (Motorista de transporte por aplicativos), 142360 e 225157.
ParâmetroTipoObrigatório
valuestring | numbersim
retornaboolean

Valida um código CBO (Classificação Brasileira de Ocupações) contra a tabela oficial da CBO 2002.

  • Aceita uma string com os 6 dígitos ou com a máscara NNNN-NN, ou um número.
  • Uma string mascarada pode ter qualquer sequência de separadores (espaço, ., - ou /) entre os grupos. Qualquer outra string é rejeitada, em vez de ter seus dígitos extraídos.
  • Dígitos sem máscara são completados com zeros à esquerda até 6, como string ou como número. Um valor mascarado é lido como foi escrito.
import { isValidCbo } from '@brazilian-utils/brazilian-utils';

isValidCbo('2124-05'); // true
isValidCbo('212405'); // true
isValidCbo(212405); // true
isValidCbo(10205); // true (completado para 6 dígitos, ou seja, '010205')
isValidCbo('10205'); // true (completado do mesmo jeito que um número)
isValidCbo('000000'); // false
isValidCbo('2124abc05'); // false (não é uma forma documentada)
isValidCbo(-212405); // false (não é um inteiro seguro não negativo)

Fonte: tabelas da CBO 2002 publicadas pelo MTE ("Estrutura CBO (CSV)", arquivos de 10/07/2026, 2.725 ocupações).

Código: brazilian-utils/javascript
Teste com JavaScript isValidCbo
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 (38) e o resultado em cada biblioteca cbo.isValid

Formatar

Formata um código CBO com a máscara NNNN-NN. Só a estrutura muda (use cbo.isValid para verificar o código na tabela).

  • A máscara é aplicada até onde os dígitos vão, o que serve a um campo em digitação.
  • options.pad (padrão false) primeiro completa o valor com zeros à esquerda até 6 dígitos. Um número é tratado como a string dos seus dígitos, então só é completado com pad.
  • Uma string é lida pelos seus dígitos: os outros caracteres são descartados e dígitos depois do último da máscara são ignorados.
  • Retorna uma string vazia quando não há nenhum dígito, também com pad. null e undefined também retornam uma string vazia.
  • Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro retorna uma string vazia.
  • Nova na 2.5.0 (#615), para que todo código com máscara tenha o seu formatador.
ParâmetroTipoObrigatório
valuestring | numbersim
optionsFormatCboOptionsnão
options.padbooleannão
retornastring

Formata um código CBO (Classificação Brasileira de Ocupações) na máscara NNNN-NN. Só a estrutura muda; use isValidCbo para conferir um código com a tabela.

  • Opções (FormatCboOptions): pad (padrão false) completa antes o valor com zeros à esquerda até os 6 dígitos de um código completo. Sem ele a máscara é aplicada até onde o valor vai. Um valor vazio, ou sem dígitos, devolve '' mesmo com pad.
  • Caracteres fora da máscara são descartados, e um número só é lido como a string dos seus dígitos quando é um inteiro seguro não negativo: um número negativo, fracionário ou inseguro retorna ''. Retorna '' quando não há dígito algum.
import { formatCbo } from '@brazilian-utils/brazilian-utils';

formatCbo('212405'); // 2124-05
formatCbo('21240'); // 2124-0 (máscara aplicada até onde o valor vai)
formatCbo('10205', { pad: true }); // 0102-05 (completado até 6 dígitos antes)
formatCbo('abc212405'); // 2124-05 (só os dígitos são lidos)
formatCbo(-212405); // '' (não é um inteiro seguro não negativo)

Fonte: tabelas da CBO 2002 publicadas pelo MTE, que imprimem os códigos como NNNN-NN.

Código: brazilian-utils/javascript
Teste com JavaScript formatCbo
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 (26) e o resultado em cada biblioteca cbo.format

Interpretar

Remove a formatação do CBO e mantém somente os dígitos, limitados a 6 dígitos.

  • Não completa nada com zeros à esquerda. Um zero à esquerda precisa estar escrito.
  • Retorna uma string vazia quando não há nenhum dígito (null e undefined incluídos).
  • Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro retorna uma string vazia (a 2.4.0 lia os dígitos de qualquer número, descartando sinal e ponto decimal).
ParâmetroTipoObrigatório
valuestring | numbersim
retornastring

Remove a formatação do CBO (Classificação Brasileira de Ocupações), mantém apenas os dígitos e limita o resultado a 6 dígitos.

  • Nada é completado com zeros à esquerda: o zero inicial de um código como 010205 precisa ser escrito. Use getCbo ou isValidCbo para consultar uma ocupação.
import { parseCbo } from '@brazilian-utils/brazilian-utils';

parseCbo('2124-05'); // '212405'
Código: brazilian-utils/javascript
Teste com JavaScript parseCbo
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 (10) e o resultado em cada biblioteca cbo.parse

Consultar

Consulta um código CBO na tabela de ocupações CBO 2002 e retorna o code e o título oficial (description).

  • Mesmas regras de entrada de cbo.isValid. O código retornado tem os 6 dígitos sem máscara.
  • Retorna null para um código desconhecido ou para um valor que não está escrito em uma das formas aceitas. Uma sequência de separadores entre os grupos é aceita, como em cbo.isValid (2124--05 retorna o registro; até a 2.4.0 retornava null).
  • Retorna null exatamente quando cbo.isValid retorna false. A tabela e os títulos seguem a release vigente do MTE (10/07/2026). 106 títulos mudaram em relação à 2.4.0, e códigos que o MTE retirou retornam null.
ParâmetroTipoObrigatório
valuestring | numbersim
retornaCbo | null

Consulta um código CBO (Classificação Brasileira de Ocupações) e retorna o título oficial da ocupação. O resultado é um registro Cbo: { code, description }.

  • Mesmas regras de isValidCbo. Retorna null quando o código é desconhecido ou o valor não está em uma forma documentada.
import { getCbo } from '@brazilian-utils/brazilian-utils';

getCbo('2124-05'); // { code: '212405', description: 'Analista de desenvolvimento de sistemas' }
getCbo(10205); // { code: '010205', description: 'Oficial da aeronáutica' } (completado para 6 dígitos)
getCbo('10205'); // { code: '010205', description: 'Oficial da aeronáutica' } (completado do mesmo jeito)
getCbo('000000'); // null
getCbo('2124abc05'); // null (não é uma forma documentada)

Fonte: tabelas da CBO 2002 publicadas pelo MTE ("Estrutura CBO (CSV)", arquivos de 10/07/2026, 2.725 ocupações).

Código: brazilian-utils/javascript
Teste com JavaScript getCbo
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 (30) e o resultado em cada biblioteca cbo.get

Fontes oficiais

Atualizado em

Nesta página