Certidão

A matrícula de 32 dígitos das certidões do registro civil (nascimento, casamento, óbito e demais atos).

  • Matriz de paridade

Validar

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 rejeita 0, sejam quais forem os dígitos verificadores.
  • options.accept restringe 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âmetroTipoObrigatório
valuestringsim
optionsIsValidCertidaoOptionsnão
options.acceptCertidaoType[]não
retornaboolean

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ígitosCampo
6CNS da serventia
2acervo
2serviço, sempre 55
4ano
1tipo do livro
5livro
3folha
7termo
2dígitos verificadores
  • Opções (IsValidCertidaoOptions): accept restringe 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'] }); // false

Fonte: 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/javascript
Teste com JavaScript isValidCertidao
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 (37) e o resultado em cada biblioteca certidao.isValid

Formatar

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.pad primeiro 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 é false por padrão.
ParâmetroTipoObrigatório
valuestring | numbersim
optionsFormatCertidaoOptionsnão
options.padbooleannão
retornastring

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): pad completa o valor com zeros à esquerda até 32 dígitos (padrão false). Um valor vazio, ou sem dígitos, devolve '' mesmo com pad.
  • 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/javascript
Teste com JavaScript formatCertidao
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 (13) e o resultado em cada biblioteca certidao.format

Interpretar

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âmetroTipoObrigatório
valuestring | numbersim
retornastring

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'
Código: brazilian-utils/javascript
Teste com JavaScript parseCertidao
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 (8) e o resultado em cada biblioteca certidao.parse

Decodificar

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 (sempre 55), 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.
  • year e typeCode são números. registryCns, acervo, service, book, page, term e checkDigits são strings que mantêm os zeros à esquerda. A entrada é lida como certidao.isValid a lê, então um valor com máscara funciona e um valor que não é string retorna null.
  • 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 é 01 para o acervo próprio da serventia e 02 em 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 em 02, 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ódigo 02.
ParâmetroTipoObrigatório
valuestringsim
retornaCertidaoInfo | 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 null também para um serviço diferente de 55 e para o código de livro 0.
  • 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:

ChaveDescrição
registryCnsO CNS (Código Nacional de Serventia) de 6 dígitos da serventia que lavrou o ato.
acervoAcervo 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".
serviceServiço prestado pela serventia, sempre "55", o registro civil das pessoas naturais.
yearAno do registro, com 4 dígitos.
typeLivro 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".
typeCodeCódigo bruto do livro, de 1 a 9, como impresso na décima quinta posição da matrícula.
bookNúmero do livro, com 5 dígitos e zeros à esquerda.
pageNúmero da folha, com 3 dígitos e zeros à esquerda.
termNúmero do termo, com 7 dígitos e zeros à esquerda.
checkDigitsOs 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'); // null

Fonte: 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/javascript
Teste com JavaScript getCertidaoInfo
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 certidao.getInfo

Fontes oficiais

Atualizado em

Nesta página