Processo judicial
Números de processo na numeração única (NUP) da Resolução CNJ nº 65/2008.
Validar
- JavaScript, biblioteca
- Python, biblioteca25 casos falham
- Go, biblioteca22 casos falham
- Ruby, biblioteca22 casos falham
- Rust, biblioteca22 casos falham
- .NET, biblioteca22 casos falham
- Erlang, biblioteca
Valida um número de processo judicial (Resolução CNJ nº 65/2008). Verifica o formato NNNNNNN-DD.AAAA.J.TR.OOOO, os dígitos verificadores DD (ISO 7064 MOD 97-10) e o par J/TR.
JeTRprecisam indicar um segmento e um tribunal que existem (art. 1º, §§ 4º e 5º).Jé 1 (STF), 2 (CNJ), 3 (STJ), 4 (Justiça Federal), 5 (Justiça do Trabalho), 6 (Justiça Eleitoral), 7 (Justiça Militar da União), 8 (Justiça Estadual) ou 9 (Justiça Militar Estadual).TRé00paraJ1, 2 e 3; paraJ4,01a06(TRF) ou90(CJF); paraJ5,00(TST),01a24(TRT) ou90(CSJT); paraJ6,00(TSE) ou01a27(TRE); paraJ7,00(STM) ou01a12(CJM); paraJ8,01a27(TJ); paraJ9,13,21ou26(TJM de MG, RS e SP).- A unidade de origem
OOOOsó é verificada como quatro dígitos, porque o art. 1º, § 6º deixa a codificação dela a cargo de cada tribunal. - Aceita os 20 dígitos sem máscara ou com a máscara do CNJ, e só string (um número é inválido). Espaço em branco,
.,-e/(os caracteres de máscara quecpf.isValidlê), em qualquer sequência, são aceitos entre os camposNNNNNNN,DD,AAAA,J,TReOOOO, ou omitidos, então0002080-25.2012.515.0049(JeTRjuntos) é válido. Espaços nas pontas são ignorados. Um separador dentro de um campo (000208-0252012.5.15.0049), no começo ou no fim do valor, qualquer outro caractere (_) e uma letra tornam o valor inválido. Até a 2.4.0 uma barra entre os campos o tornava inválido, então0002080/25.2012.5.15.0049erafalse. - Os dígitos verificadores seguem o art. 1º § 2º e o Anexo VIII ("Cálculo do dígito verificador") da Resolução CNJ 65/2008. O TRF da 6ª Região (
4.06) é válido conforme a Resolução CNJ 477/2022. - O exemplo do TRF6 impresso no Anexo II,
0000100-15.2008.406.0000, é fictício, como o próprio Anexo diz. Escrito na formaNNNNNNN-DD.AAAA.J.TR.OOOO, os dígitos verificadores dele são 68, não 15, então a função aceita0000100-68.2008.4.06.0000e rejeita o impresso.
Decisão pendente
Go, Python, Ruby e Rust rejeitam números que a referência (JS) gera para o ano atual. As regras de segmento/tribunal precisam ser conciliadas. Veja a decisão em aberto em docs/findings.md (em inglês).
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
| retorna | boolean |
Valida um número de processo jurídico, conforme a Resolução CNJ nº 65/2008. Três coisas são verificadas: o layout NNNNNNN-DD.AAAA.J.TR.OOOO, os dígitos verificadores DD (ISO 7064 MOD 97-10) e o par J/TR.
JeTRprecisam nomear um órgão e um tribunal que existem.- A unidade de origem (
OOOO) é verificada apenas como quatro dígitos.
import { isValidProcessoJuridico } from '@brazilian-utils/brazilian-utils';
isValidProcessoJuridico('00020802520125150049'); // true
isValidProcessoJuridico('0002080-25.2012.5.15.0049'); // true (máscara do CNJ)
isValidProcessoJuridico('0000100-68.2008.4.06.0000'); // true (TRF da 6ª Região)
isValidProcessoJuridico('0000100-23.2008.8.28.0000'); // false (não existe 28º Tribunal de Justiça)
isValidProcessoJuridico('ab00020802520125150049'); // false (letras são rejeitadas)Fonte: Resolução CNJ nº 65/2008, art. 1º (layout, J e TR) e Anexo VIII ("CÁLCULO DO DÍGITO VERIFICADOR"); o TRF da 6ª Região (4.06) conforme a Resolução CNJ nº 477/2022.
Teste com JavaScript isValidProcessoJuridico
Casos de teste compartilhados (51) e o resultado em cada biblioteca legalProcess.isValid
Formatar
- JavaScript, biblioteca
- Python, biblioteca25 casos falham
- Go, biblioteca21 casos falham
- Ruby, biblioteca25 casos falham
- Rust, biblioteca22 casos falham
- .NET, biblioteca22 casos falham
- Erlang, biblioteca
Formata um número de processo judicial com a máscara do CNJ NNNNNNN-DD.AAAA.J.TR.OOOO.
- Todo caractere que não é dígito é descartado antes, e só os 20 primeiros dígitos ficam. A máscara é aplicada até onde os dígitos vão, então um valor sendo digitado é mascarado progressivamente (
00020802dá0002080-2). options.padprimeiro completa o valor com zeros à esquerda até 20 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).
- Um valor vazio, ou sem dígitos, retorna uma string vazia mesmo com
pad. Até a 2.4.0 opadretornava a máscara toda de zeros.
Decisão pendente
A referência (JS) formata só os caracteres que um valor incompleto tem. Ela retorna uma string vazia para entrada vazia ou inválida. As outras bibliotecas retornam null. Veja a decisão em aberto em docs/findings.md (em inglês).
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
options | FormatProcessoJuridicoOptions | não |
options.pad | boolean | não |
| retorna | string |
Formata um número de processo jurídico na máscara do CNJ NNNNNNN-DD.AAAA.J.TR.OOOO.
- Opções (
FormatProcessoJuridicoOptions):padcompleta o valor com zeros à esquerda até 20 dígitos antes de aplicar a máscara (padrãofalse). Um valor vazio, ou sem dígitos, devolve''mesmo compad.
import { formatProcessoJuridico } from '@brazilian-utils/brazilian-utils';
formatProcessoJuridico('00020802520125150049'); // '0002080-25.2012.5.15.0049'
formatProcessoJuridico('20802520125150049', { pad: true }); // '0002080-25.2012.5.15.0049'Fonte: Resolução CNJ nº 65/2008.
Código: brazilian-utils/javascriptTeste com JavaScript formatProcessoJuridico
Casos de teste compartilhados (36) e o resultado em cada biblioteca legalProcess.format
Interpretar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca2 casos falham
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Remove a formatação do processo judicial e mantém somente os dígitos, limitados a 20 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 processo jurídico, mantém apenas os dígitos e limita o resultado a 20 dígitos.
import { parseProcessoJuridico } from '@brazilian-utils/brazilian-utils';
parseProcessoJuridico('0002080-25.2012.5.15.0049'); // '00020802520125150049'Teste com JavaScript parseProcessoJuridico
Casos de teste compartilhados (19) e o resultado em cada biblioteca legalProcess.parse
Gerar
- JavaScript, biblioteca
- Python, biblioteca6 casos falham
- Go, biblioteca
- Ruby, biblioteca2 casos falham
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Gera um número de processo judicial aleatório e válido (20 dígitos, sem formatação) no formato NNNNNNNDDAAAAJTROOOO da Resolução CNJ nº 65/2008.
options.yeardefine o campoAAAA: um inteiro do ano atual até 9999 (padrão: o ano atual).options.courtdefine o segmentoJ: um inteiro de 1 a 9 (padrão: aleatório).- A função escolhe
TRentre os tribunais do segmento escolhido, então o par sempre indica um tribunal que existe. O número sequencial e a unidade de origem são aleatórios e os dígitos verificadores são calculados. - Retorna
nullquando o ano ou o segmento está fora do intervalo ou não é inteiro, ou quando as opções não são um objeto.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
params | GenerateProcessoJuridicoParams | não |
params.year | number | não |
params.court | number | não |
| retorna | string | null |
Gera um número de processo jurídico válido aleatório no layout da Resolução CNJ nº 65/2008.
- Opções (
GenerateProcessoJuridicoParams):yeardefine o campoAAAA, um inteiro entre o ano atual e 9999 (padrão: o ano atual);courtdefine o órgãoJ, de 1 a 9 (padrão: aleatório). TRé sorteado entre os tribunais do órgão escolhido, então o par sempre nomeia um tribunal que existe.- Retorna
nullquandoyearoucourtestá fora do intervalo.
import { generateProcessoJuridico } from '@brazilian-utils/brazilian-utils';
generateProcessoJuridico(); // '89478645020266070326'
generateProcessoJuridico({ year: 2026, court: 5 }); // '98412562120265087260' (Justiça do Trabalho, TRT da 8ª Região)
generateProcessoJuridico({ year: 10000 }); // null (ano fora do intervalo)
generateProcessoJuridico({ court: 10 }); // null (órgão inexistente)Fonte: Resolução CNJ nº 65/2008.
Código: brazilian-utils/javascriptTeste com JavaScript generateProcessoJuridico
Casos de teste compartilhados (9) e o resultado em cada biblioteca legalProcess.generate
Decodificar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Lê os campos de um número de processo jurídico: o número sequencial, os dígitos verificadores, o ano, o segmento do Judiciário (órgão J), o tribunal e a unidade de origem.
- Retorna
nullexatamente quandolegalProcess.isValidretornafalse; as regras de entrada são as mesmas (os 20 dígitos, com ou sem máscara, como string). - O resultado tem
sequentialNumber(NNNNNNN),checkDigits(DD),year(AAAA, um número),segment,segmentCode(J, de'1'a'9'),tribunalCode(TR, dois dígitos) eoriginUnit(OOOO). Os códigos são strings e mantêm os zeros à esquerda. segmentdá nome ao órgãoJ:supreme-federal-court(1),national-council-of-justice(2),superior-court-of-justice(3),federal(4),labor(5),electoral(6),military(7),state(8) oustate-military(9).tribunalCodeé00para os processos do STF, do CNJ, do STJ, do TST, do TSE e do STM,90para o Conselho da Justiça Federal e o Conselho Superior da Justiça do Trabalho, e o número da região ou do estado nos outros casos. O resultado não traz o nome do tribunal.- A unidade de origem não é conferida: cada tribunal codifica a sua.
- Cada chamada retorna um objeto novo.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | sim |
| retorna | ProcessoJuridicoInfo | null |
Lê os campos de um número de processo jurídico, como um ProcessoJuridicoInfo, ou null quando o isValidProcessoJuridico retornaria false.
- Campos:
sequentialNumber(NNNNNNN),checkDigits(DD),year(AAAA, um número),segment(um nome para o órgãoJ:'supreme-federal-court','national-council-of-justice','superior-court-of-justice','federal','labor','electoral','military','state'ou'state-military'),segmentCode(J,'1'a'9'),tribunalCode(TR, dois dígitos) eoriginUnit(OOOO). Os códigos são strings que mantêm os zeros à esquerda. tribunalCodeé'00'para os processos de um tribunal superior ou do STF, do CNJ, do STJ, do TST, do TSE e do STM,'90'para o Conselho da Justiça Federal e o Conselho Superior da Justiça do Trabalho, e o número da região ou do estado nos demais casos. A unidade de origem não é verificada: cada tribunal a codifica por conta própria.
import { getProcessoJuridicoInfo } from '@brazilian-utils/brazilian-utils';
getProcessoJuridicoInfo('0002080-25.2012.5.15.0049');
// {
// sequentialNumber: '0002080',
// checkDigits: '25',
// year: 2012,
// segment: 'labor',
// segmentCode: '5',
// tribunalCode: '15',
// originUnit: '0049',
// }
getProcessoJuridicoInfo('0000100-23.2008.8.28.0000'); // null (não existe o 28º Tribunal de Justiça)Fonte: Resolução CNJ nº 65/2008.
Código: brazilian-utils/javascriptTeste com JavaScript getProcessoJuridicoInfo
Casos de teste compartilhados (34) e o resultado em cada biblioteca legalProcess.getInfo
Fontes oficiais
Atualizado em
