Certidão
A matrícula de 32 dígitos das certidões do registro civil (nascimento, casamento, óbito e demais atos).
Validar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca4 casos falham
- Ruby, biblioteca4 casos falham
- Rust, biblioteca4 casos falham
- .NET, biblioteca
- Erlang, biblioteca
Valida a matrícula de 32 dígitos de uma certidão de registro civil (art. 473 do Código Nacional de Normas da Corregedoria Nacional de Justiça).
- Leiaute: CNS da serventia (6), acervo (2), serviço (2, sempre
55), ano (4), tipo do livro (1), livro (5), folha (3), termo (7) e 2 dígitos verificadores por módulo 11. - O serviço precisa ser
55. O tipo do livro precisa ser de 1 a 7 (os livros do art. 473 V) ou 8 (emancipation, Livro E desdobrado para emancipações) ou 9 (interdiction, Livro E desdobrado para interdições), que vêm do Provimento CNJ 3/2009, art. 7º V, revogado, e são mantidos porque as certidões emitidas sob ele desde 2010 ainda os trazem. A função rejeita0, sejam quais forem os dígitos verificadores. options.acceptrestringe os tipos de livro válidos aos listados (padrão: todos os tipos).- Aceita o valor sem máscara ou com máscara. Entre os nove grupos (6 2 2 4 1 5 3 7 2) é permitida qualquer sequência de espaços,
.,-ou/, e os espaços nas pontas do valor são ignorados; outro separador (#), uma letra ou dígitos agrupados de outra forma tornam o valor inválido. - Nenhuma fonte oficial publica o algoritmo do dígito verificador. O art. 473 IX só nomeia os dígitos verificadores (posições 31 e 32). O Provimento CNJ 3/2009 os fazia gerar por um programa que o CNJ distribuiu aos cartórios, e o leiaute do Cadastro NIS da Caixa diz apenas "módulo 11". Os pesos do módulo 11 e a regra do resto (resto 10 vale 1) seguem implementações de referência da comunidade.
- Só uma string é aceita. Os 32 dígitos de uma matrícula não cabem em um número.
options.accepté uma lista de tipos de livro (birth,marriage,religious-marriage,death,stillbirth,banns,other,emancipation,interdiction). Quando falta ou não é uma lista, todos os tipos são aceitos. Uma lista vazia não aceita nenhum, então o resultado éfalse.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
options | IsValidCertidaoOptions | não |
options.accept | CertidaoType[] | não |
| retorna | boolean |
Valida a matrícula de uma certidão de registro civil (nascimento, casamento, óbito e os demais atos de um registro civil das pessoas naturais). Só uma string é aceita: os 32 dígitos de uma matrícula são mais do que um número JavaScript comporta.
A matrícula tem 32 dígitos, impressos como 000000 00 00 0000 0 00000 000 0000000 00:
| Dígitos | Campo |
|---|---|
| 6 | CNS da serventia |
| 2 | acervo |
| 2 | serviço, sempre 55 |
| 4 | ano |
| 1 | tipo do livro |
| 5 | livro |
| 3 | folha |
| 7 | termo |
| 2 | dígitos verificadores |
- Opções (
IsValidCertidaoOptions):acceptrestringe os tipos de livro válidos (CertidaoType) aos listados (padrão: todos os tipos). - O serviço precisa ser
55, e o dígito do tipo de livro um dos códigos de 1 a 9: 1 a 7 são os livros do art. 473, V (Provimento CNJ nº 149/2023, redação do Provimento CN nº 182/2024); 8 ("emancipation", Livro E desdobrado para emancipações) e 9 ("interdiction", Livro E desdobrado para interdições) vêm do Provimento CNJ nº 3/2009, art. 7º, revogado pelo Provimento CNJ nº 63/2017, e são mantidos para que as certidões emitidas sob ele a partir de 2010 continuem válidas.0é rejeitado. - Aceita o valor com ou sem máscara, com espaços entre e ao redor dos grupos.
- Nenhum documento oficial publica o algoritmo dos dígitos verificadores: o art. 473, IX só nomeia os dois dígitos, o revogado Provimento CNJ nº 3/2009 mandava calculá-los com um programa que o CNJ entregava aos registradores e o leiaute do Cadastro NIS da Caixa diz só "módulo 11". Os pesos e a regra do resto seguem as referências da comunidade abaixo.
import { isValidCertidao } from '@brazilian-utils/brazilian-utils';
isValidCertidao('104539 01 55 2013 1 00012 021 0000123 21'); // true
isValidCertidao('09430001552010100020112000012087'); // true
isValidCertidao('104539 01 55 2013 1 00012 021 0000123 22'); // false (dígitos verificadores inválidos)
isValidCertidao('09400301542011100110002005191744'); // false (serviço diferente de 55)
isValidCertidao('10453901552013900012021000012398'); // true (código de livro 9, Provimento CNJ nº 3/2009)
isValidCertidao('10453901552013000012021000012387'); // false (o código de livro 0 não nomeia livro)
isValidCertidao('123456'); // false (tamanho inválido)
isValidCertidao('104539 01 55 2013 1 00012 021 0000123 21', { accept: ['birth'] }); // true
isValidCertidao('104539 01 55 2013 1 00012 021 0000123 21', { accept: ['death'] }); // falseFonte: art. 473 do Código Nacional de Normas da Corregedoria Nacional de Justiça; dígitos verificadores conforme o ghiorzi.org e o validation-br.
Código: brazilian-utils/javascriptTeste com JavaScript isValidCertidao
Casos de teste compartilhados (37) e o resultado em cada biblioteca certidao.isValid
Formatar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca5 casos falham
- Rust, biblioteca
- .NET, biblioteca2 casos falham
- Erlang, biblioteca
Formata a matrícula de uma certidão de registro civil na máscara impressa do art. 473 do Código Nacional de Normas. A máscara agrupa os 32 dígitos como 6 2 2 4 1 5 3 7 2, separados por espaços.
- A função aplica a máscara até onde os dígitos vão, então uma matrícula parcial em digitação é mascarada progressivamente, e os dígitos além do 32º são descartados.
options.padprimeiro completa com zeros à esquerda até 32 dígitos. - Uma matrícula completa de 32 dígitos não cabe em um inteiro, então você deve passá-la como string.
- 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).
- Um valor sem dígitos retorna uma string vazia mesmo com
options.pad. Até a 2.4.0 retornava a máscara completa de zeros. options.padéfalsepor padrão.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
options | FormatCertidaoOptions | não |
options.pad | boolean | não |
| retorna | string |
Formata a matrícula de uma certidão de registro civil na máscara impressa do art. 473. Os 32 dígitos são agrupados em 6 2 2 4 1 5 3 7 2 e separados por espaços.
- Opções (
FormatCertidaoOptions):padcompleta o valor com zeros à esquerda até 32 dígitos (padrãofalse). Um valor vazio, ou sem dígitos, devolve''mesmo compad. - Um número é aceito quando é um inteiro seguro não negativo, então uma matrícula completa de 32 dígitos precisa ser uma string. Qualquer outro número retorna
''.
import { formatCertidao } from '@brazilian-utils/brazilian-utils';
formatCertidao('10453901552013100012021000012321'); // '104539 01 55 2013 1 00012 021 0000123 21'
formatCertidao('104539.01.55.2013.1.00012.021.0000123-21'); // '104539 01 55 2013 1 00012 021 0000123 21'
formatCertidao('1552010100020112000012087', { pad: true }); // '000000 01 55 2010 1 00020 112 0000120 87'
formatCertidao(104539015520); // '104539 01 55 20' (um número é lido como a string dos seus dígitos)
formatCertidao(1045390155.2); // '' (não é um inteiro seguro não negativo)Fonte: art. 473 do Código Nacional de Normas.
Código: brazilian-utils/javascriptTeste com JavaScript formatCertidao
Casos de teste compartilhados (13) e o resultado em cada biblioteca certidao.format
Interpretar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca2 casos falham
- Rust, biblioteca
- .NET, biblioteca1 caso falha
- Erlang, biblioteca
Remove a formatação da matrícula de uma certidão e mantém apenas os dígitos, com no máximo 32 dígitos.
- Um valor com menos de 32 dígitos passa até onde vai, então dá para tirar a máscara de um campo ainda em digitação. Nada é completado com zeros.
- 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 da matrícula de uma certidão de registro civil, mantém apenas os dígitos e limita o resultado a 32 dígitos.
import { parseCertidao } from '@brazilian-utils/brazilian-utils';
parseCertidao('104539 01 55 2013 1 00012 021 0000123 21');
// '10453901552013100012021000012321'Teste com JavaScript parseCertidao
Casos de teste compartilhados (8) e o resultado em cada biblioteca certidao.parse
Decodificar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca1 caso falha
- Ruby, biblioteca5 casos falham
- Rust, biblioteca
- .NET, biblioteca1 caso falha
- Erlang, biblioteca
Decompõe a matrícula de uma certidão de registro civil em seus campos. Retorna null quando ela não é válida (mesmas regras de certidao.isValid).
typeé o nome do livro em inglês (birth,marriage,religious-marriage,death,stillbirth,banns,other,emancipation,interdiction). Campos: CNS da serventia (6 dígitos), acervo, serviço (sempre55), ano, tipo do livro (nascimento, casamento, casamento religioso, óbito, natimorto, proclamas, outros, emancipação, interdição) e seu código bruto de 1 a 9, livro, folha, termo e os 2 dígitos verificadores.yearetypeCodesão números.registryCns,acervo,service,book,page,termecheckDigitssão strings que mantêm os zeros à esquerda. A entrada é lida comocertidao.isValida lê, então um valor com máscara funciona e um valor que não é string retornanull.- O art. 473 V do Código Nacional de Normas lista os códigos de livro de 1 a 7. Os códigos 8 (emancipação) e 9 (interdição) vêm do Provimento CNJ 3/2009, art. 7º V. Esse provimento foi revogado pelo Provimento CNJ 63/2017, mas as certidões emitidas sob ele a partir de 2010 trazem esses códigos e continuam válidas, então os dois são lidos, como na 2.4.0.
acervoé01para o acervo próprio da serventia e02em diante para cada acervo que ela absorveu. O art. 473, §§ 3º a 5º, separa os absorvidos pela data em que a serventia de origem foi extinta ou desativada. Até 31/12/2009 o CNS é o da unidade incorporadora e o código do acervo começa em02, um por incorporação. A partir de 01/01/2010 o CNS é o da própria unidade incorporada e o código é01, contado como acervo próprio dela. Um acervo dividido entre duas ou mais serventias sucessoras recebe o CNS de cada sucessora com o código02.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
| retorna | CertidaoInfo | null |
Extrai os campos da matrícula de uma certidão de registro civil. Aceita as mesmas formas de entrada de isValidCertidao e retorna null quando a matrícula é inválida.
- Retorna
nulltambém para um serviço diferente de55e para o código de livro0. - O art. 473, V lista os códigos de livro de 1 a 7, de "1: Livro A (Nascimento)" a "7: Livro E (Demais atos relativos ao registro civil)". Os códigos 8 (emancipação) e 9 (interdição) do Provimento CNJ nº 3/2009, art. 7º, revogado pelo Provimento CNJ nº 63/2017, não estão nele, mas continuam sendo lidos, como
"emancipation"e"interdiction", já que as certidões emitidas sob ele a partir de 2010 os trazem e continuam sendo documentos válidos.
O resultado CertidaoInfo traz:
| Chave | Descrição |
|---|---|
registryCns | O CNS (Código Nacional de Serventia) de 6 dígitos da serventia que lavrou o ato. |
acervo | Acervo a que o livro pertence: "01" acervo próprio, "02" em diante um por acervo incorporado. O art. 473, §§ 3º a 5º separa os incorporados pela data em que a serventia de origem foi extinta ou desativada. Até 31/12/2009: o CNS da unidade incorporadora e um código de acervo a partir de "02", um por incorporação. A partir de 01/01/2010: o CNS da própria unidade incorporada e o código "01", considerado acervo próprio dessa unidade. Um acervo fracionado entre duas ou mais serventias sucessoras leva o CNS próprio de cada sucessora com o código "02". |
service | Serviço prestado pela serventia, sempre "55", o registro civil das pessoas naturais. |
year | Ano do registro, com 4 dígitos. |
type | Livro a que o ato pertence: "birth", "marriage", "religious-marriage", "death", "stillbirth", "banns", "other", ou, para os códigos 8 e 9 do Provimento CNJ nº 3/2009, "emancipation" e "interdiction". |
typeCode | Código bruto do livro, de 1 a 9, como impresso na décima quinta posição da matrícula. |
book | Número do livro, com 5 dígitos e zeros à esquerda. |
page | Número da folha, com 3 dígitos e zeros à esquerda. |
term | Número do termo, com 7 dígitos e zeros à esquerda. |
checkDigits | Os 2 dígitos verificadores módulo 11 da matrícula. |
import { getCertidaoInfo } from '@brazilian-utils/brazilian-utils';
getCertidaoInfo('104539 01 55 2013 1 00012 021 0000123 21');
// {
// registryCns: '104539',
// acervo: '01',
// service: '55',
// year: 2013,
// type: 'birth',
// typeCode: 1,
// book: '00012',
// page: '021',
// term: '0000123',
// checkDigits: '21'
// }
getCertidaoInfo('invalid'); // nullFonte: art. 473 do Código Nacional de Normas da Corregedoria Nacional de Justiça; códigos de livro 8 e 9 conforme o revogado Provimento CNJ nº 3/2009, art. 7º, ainda listados pelo ghiorzi.org e o validation-br.
Código: brazilian-utils/javascriptTeste com JavaScript getCertidaoInfo
Casos de teste compartilhados (10) e o resultado em cada biblioteca certidao.getInfo
Fontes oficiais
Atualizado em
