Registro profissional

Números de inscrição em conselhos profissionais (OAB, CRM, CRO, CRP, CRC).

  • Matriz de paridade

Validar

Verifica a estrutura de um número de registro em conselho profissional: apenas a quantidade de dígitos e a UF, nunca um dígito verificador.

  • params contém o valor, o conselho (OAB, CRM, CRO, CRP ou CRC) e, opcionalmente, o estado esperado. A sigla do estado é lida sem distinção de caixa e sem os espaços nas pontas (a 2.4.0 a comparava como estava escrita).
  • OAB e CRM: 4 a 6 dígitos mais a UF (123456/SP, 123456-SP). A UF precisa ser uma sigla de estado real e é lida sem distinção de caixa (12345/sp é válido).
  • CRO: 3 a 6 dígitos mais a UF (12345/SP), ou a forma do art. 115, § 1º, da Consolidação das Normas do CFO (Resolução CFO-63/2005): primeiro a sigla do conselho (CRO-SP), ligada por hífen à categoria quando houver (TPD, TSB, ASB, APD, CLM/CLF, LPM/LPF, PV, T), depois o número, com -IS para inscrição secundária ou -R para inscrição remida (CRO-SP 12345, CRO-SP-TPD 1234-IS, CRO-SP 12345-R). Novo na 2.5.0; a 2.4.0 rejeitava essa forma.
  • Na forma do art. 115, só o cirurgião-dentista (sem categoria) e o TPD podem ter -R. TSB, ASB e APD só podem ter -IS, e as demais categorias nenhum sufixo. A UF da sigla é a comparada com o estado esperado.
  • CRP: um código regional de 2 dígitos (01 a 24) mais 4 a 6 dígitos (06/12345). A função ignora o estado esperado. O sistema do CFP tem 24 regionais; o CRP-25 (Amapá) é só uma proposta.
  • CRC: UF, 6 dígitos, tipo de registro (O ou P) e dígito verificador (SP-123456/O-3); uma transferência acrescenta T ou S e a UF de destino (SP-123456/O-3 T-MG). O estado esperado corresponde à UF de origem. As duas UFs precisam ser siglas de estado reais.
  • Só a forma do art. 115 do CRO, o formato do CRC e os códigos regionais do CRP se apoiam em fonte publicada. O formato do CRC e os registros P e S vêm do Manual de Registro (2009); a Resolução CFC nº 1.707/2023, em vigor, só define uma numeração "única e sequencial em cada CRC" e o T da transferência, e o algoritmo do dígito verificador não é publicado. O art. 115 não fixa quantidade de dígitos, então os 3 a 6 dígitos do CRO são convenção, como as faixas da OAB e do CRM e o corpo do CRP: a OAB e o CFM não publicam formato. A função não cobre o CREA. Duas formas conhecidas ficam fora dela: um CRM com prefixo 300 (médicos formados no exterior) ou com P no final (inscrição provisória), e um número da OAB com 7 dígitos.
  • params.value é o número de registro, params.council é OAB, CRM, CRO, CRP ou CRC, e params.stateCode é a UF esperada, opcional. Um params que não é objeto, ou sem value string ou com council desconhecido, retorna false.
  • Os caracteres de máscara (espaço, ., - e /) são ignorados onde estiverem. Qualquer outro caractere (@, um emoji) torna o valor inválido em vez de ser removido (12@3456/SP é false). Até a 2.4.0 esses caracteres eram removidos, então 12@3456/SP era true.
  • A função nunca calcula dígito verificador, nem para o CRC, cujo formato traz um (só a presença e a forma são verificadas).
ParâmetroTipoObrigatório
paramsIsValidRegistroProfissionalParamssim
params.valuestringsim
params.councilRegistroProfissionalCouncilsim
params.stateCodeStateCodenão
retornaboolean

Verifica a estrutura de um número de registro em conselho profissional (registro/inscrição profissional). Só a quantidade de dígitos e a UF são conferidas, nunca o dígito verificador, nem no CRC.

  • Os separadores da máscara (espaço, ., - e /) são ignorados em qualquer posição; qualquer outro caractere (@, um emoji) invalida o valor em vez de ser removido.

  • Recebe um objeto (IsValidRegistroProfissionalParams): value, council (RegistroProfissionalCouncil: "OAB", "CRM", "CRO", "CRP" ou "CRC") e stateCode opcional (UF esperada, sem diferenciar maiúsculas/minúsculas e ignorando espaços nas pontas).

  • "OAB" e "CRM": 4 a 6 dígitos mais a UF (123456/SP, 123456-SP); "CRO": 3 a 6 dígitos (12345/SP), ou a forma da Consolidação das Normas do CFO (Resolução CFO-63/2005), art. 115, § 1º: a sigla do Conselho Regional antes, ligada por hífen à categoria (TPD, TSB, ASB, APD, CLM/CLF, LPM/LPF, PV, T) quando houver, depois o número, seguido de -IS na secundária ou -R na remida (CRO-SP 12345, CRO-SP-TPD 1234, CRO-SP 12345-IS). Até a 2.4.0 essa forma era rejeitada.

  • "CRP": código regional de 2 dígitos (01 a 24) mais 4 a 6 dígitos (06/12345); stateCode é ignorado. O sistema CFP tem 24 regionais; o CRP-25 (Amapá) é só uma proposta.

  • "CRC": UF, 6 dígitos, tipo de registro (O ou P) e dígito verificador (SP-123456/O-3); transferência acrescenta T ou S e a UF destino (SP-123456/O-3 T-MG). stateCode confere a UF de origem. Essa forma e os registros P/S vêm do Manual de Registro de 2009; a Resolução CFC nº 1.707/2023, em vigor, só fixa uma numeração "única e sequencial em cada CRC" e o T da transferência, e o algoritmo do dígito verificador não é publicado.

  • As quantidades de dígitos de OAB, CRM, CRO e CRP são convencionais: a OAB e o CFM não publicam formato, e nem o art. 115 do CFO nem o CFP fixam quantidade de dígitos. CREA não é coberto.

import { isValidRegistroProfissional } from '@brazilian-utils/brazilian-utils';

isValidRegistroProfissional({ value: '123456/SP', council: 'OAB' }); // true
isValidRegistroProfissional({ value: '123456-RJ', council: 'OAB', stateCode: 'SP' }); // false (UF divergente)
isValidRegistroProfissional({ value: '123456', council: 'OAB' }); // false (sem UF)
isValidRegistroProfissional({ value: '12@3456/SP', council: 'OAB' }); // false (um caractere fora da máscara)
isValidRegistroProfissional({ value: 'CRO-SP-TPD 1234', council: 'CRO' }); // true (art. 115 das normas do CFO)
isValidRegistroProfissional({ value: '06/12345', council: 'CRP' }); // true
isValidRegistroProfissional({ value: 'SP-123456/O-3', council: 'CRC' }); // true
isValidRegistroProfissional({ value: 'SP-123456/O-3 T-MG', council: 'CRC' }); // true (registro transferido)
isValidRegistroProfissional({ value: 'SP-123456/T-3', council: 'CRC' }); // false ("T" não é tipo de registro)

Fonte: Consolidação das Normas do CFO, art. 115, Manual de Registro do Sistema CFC/CRCs, Resolução CFC nº 1.707/2023, regionais do CFP.

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

Fontes oficiais

Atualizado em

Nesta página