CEI
Cadastro Específico do INSS, para empregadores sem CNPJ (obras, produtores rurais), substituído pelo CNO e pelo CAEPF.
Validar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca1 caso falha
- Ruby, biblioteca3 casos falham
- Rust, biblioteca1 caso falha
- .NET, biblioteca4 casos falham
- Erlang, biblioteca
Valida um CEI: 12 dígitos, sendo 11 dígitos de base e um dígito verificador.
- O dígito verificador aplica à base os pesos 7, 4, 1, 8, 5, 2, 1, 6, 3, 7, 4. Soma a dezena da soma à sua unidade. Depois, toma o complemento a 10 do dígito das unidades resultante (10 vira 0).
- Um valor com todos os dígitos iguais é rejeitado.
- Aceita um número ou uma string, sem máscara ou dividida nos grupos impressos (2, 3, 5 e 2 dígitos) por qualquer sequência de espaços,
.,-ou/entre dois grupos. Os espaços nas pontas do valor são ignorados. Qualquer outra forma, como outro separador, uma letra ou um agrupamento diferente, é rejeitada. - 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.
- Nenhuma fonte oficial publica a regra do dígito verificador. Só as 12 posições e a manutenção do número do CEI no CNO (Manual de Orientação do eSocial S-1.3, item 9.1) são oficiais. A IN RFB 2.061/2021 não traz dígito verificador, e o eSocial só verifica se o número existe na base da Receita. A regra vem de implementações de referência de terceiros, conferidas com os dados abertos do CNO e com o exemplo do SERPRO,
000000336854. - Um número perde os zeros à esquerda, então um valor que começa com
0só é aceito como string:"000000336854"é válido e336854não é.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
| retorna | boolean |
Valida um número de CEI (Cadastro Específico do INSS). O CEI identifica o empregador sem CNPJ, como uma obra ou um produtor rural.
- Layout: 12 dígitos impressos como
00.000.00000/00, 11 dígitos de base e um dígito verificador. - Um número perde os zeros à esquerda, então um valor que começa com
0só é aceito como string:isValidCei('000000336854')étrueeisValidCei(336854)éfalse. - Só os 12 dígitos são oficiais: nenhuma norma, leiaute ou manual da Receita Federal publica o dígito verificador, que segue as referências da comunidade abaixo e confere com a base aberta do CNO e com o exemplo
000000336854do SERPRO.
import { isValidCei } from '@brazilian-utils/brazilian-utils';
isValidCei('11.583.00249/85'); // true
isValidCei('277297118187'); // true
isValidCei(249859674386); // true
isValidCei(-249859674386); // false (não é um inteiro seguro não negativo)
isValidCei('24.985.96743/68'); // false (dígito verificador inválido)
isValidCei('000000000000'); // false (dígitos repetidos)Fonte: SERPRO, cadastro CNO (12 posições), MOS do eSocial S-1.3, item 9.1 (o CNO mantém o número do CEI); dígito verificador conforme o yii2-br-validator, Bigai.Documentos.Brasil e a base de dados aberta do CNO.
Código: brazilian-utils/javascriptTeste com JavaScript isValidCei
Casos de teste compartilhados (27) e o resultado em cada biblioteca cei.isValid
Formatar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca7 casos falham
- Rust, biblioteca
- .NET, biblioteca1 caso falha
- Erlang, biblioteca
Formata um CEI com a máscara usual 00.000.00000/00.
As implementações de referência do dígito verificador concordam com essa máscara (a Receita Federal não a imprime).
- A máscara é aplicada até onde os dígitos vão, então um valor em digitação é mascarado progressivamente, e os dígitos além do 12º são descartados.
options.padprimeiro completa com zeros à esquerda até 12 dígitos. - 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).
options.padnum valor sem dígitos ("","---",null) continua retornando uma string vazia. Até a 2.4.0""e"---"retornavam a máscara inteira de zeros.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
options | FormatCeiOptions | não |
options.pad | boolean | não |
| retorna | string |
Formata um número de CEI (Cadastro Específico do INSS) na máscara usual 00.000.00000/00.
- Opções (
FormatCeiOptions):padcompleta o valor com zeros à esquerda até 12 dígitos (padrãofalse). Um valor vazio, ou sem dígitos, devolve''mesmo compad.
import { formatCei } from '@brazilian-utils/brazilian-utils';
formatCei('277297118187'); // 27.729.71181/87
formatCei(249859674386); // 24.985.96743/86
formatCei('249', { pad: true }); // 00.000.00002/49Teste com JavaScript formatCei
Casos de teste compartilhados (20) e o resultado em cada biblioteca cei.format
Interpretar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca2 casos falham
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Remove a formatação do CEI e mantém somente os dígitos, limitados a 12 dígitos.
- 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âmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
| retorna | string |
Remove a formatação do CEI (Cadastro Específico do INSS), mantém apenas os dígitos e limita o resultado a 12 dígitos.
import { parseCei } from '@brazilian-utils/brazilian-utils';
parseCei('27.729.71181/87'); // '277297118187'Teste com JavaScript parseCei
Casos de teste compartilhados (9) e o resultado em cada biblioteca cei.parse
Fontes oficiais
Atualizado em
