Este artigo faz parte de uma série onde irei apresentar especificidades sobre a implementação de sistemas para gestão de processos judiciais utilizando a API pública do CNJ (Conselho Nacional de Justiça). (https://datajud-wiki.cnj.jus.br/api-publica)
Ao final do texto há o link para meu github onde postei o código em PHP
Neste segundo artigo, vamos tratar da etapa de validação do número informado.
Conforme ja foi explicado, o número CNJ de um processo possui 20 dígitos, no seguinte formato: NNNNNNN-DD.AAAA.J.TR.OOOO
A numeração começa com 7 dígitos que identifica o número sequencial do processo por unidade de origem, seguido por 2 dígitos verificadores, 4 dígitos relativos ao ano de criação/distribuição do processo, 1 digito relativo ao tipo de justiça (jurisdição), 2 relativos ao tribunal naquela jurisdição e por fim, 4 dígitos que identificam a unidade de origem do processo.
Para validar o número informado, inicialmente é necessário separar os dígitos em strings de acordo com seu campo.
A título de exemplo, será utilizado como nome da string a letra do grupo de digitos conforme foi exposto acima.
É importante ressaltar a importância de tratar o número CNJ como string pois ele pode conter 0 à esquerda.
**NNNNNNN-DD.AAAA.J.TR.OOOO**:
$n: número sequencial de identificação do processo (7 primeiros caracteres)
$d: digitos verificador (2 caracteres após o $n)
$a: Ano do processo (4 caracteres após o $d)
$j: código do tipo de justiça (1 caractere após o $a)
$tr: identificação do Tribunal (2 caracteres após o $j)
$o: código da comarca (cidade) do processo (4 caracteres após o $tr)
Esta separação do número CNJ em várias strings pode ser facilmente elaborado com metodo do tipo substr (PHP) ou subtring (java).
A validação do número CNJ é feita pela aplicação do algoritmo
Módulo 97 Base 10, conforme Norma ISO 7064:2003.
No anexo da resolução 65/2008 do CNJ, há uma forma de calcular a validação do número, mas entendo que uma forma mais fácil foi ensinada no canal do Grupo de Estudos GOlang (https://www.youtube.com/@grupodeestudosdegolang) e funciona da seguinte forma:
legenda:
% = resto
. = concatenar
$operacao1 = $n % 97
$operacao2 = ($operacao1 . $a . $j . $tr) % 97
$operacaoFinal = ($operacao2 . $o . $d) % 97
Se o número informado for válido, o resultado da $operacaoFinal, será 1.
Logo, qualquer resultado diferente de 1 significa que o número é inválido.
Você pode ver o código desta validação em PHP no github: https://github.com/leonardomv1981/consulta-processo-judicial-apicnj
Ele está no metodo validarNumeroCnj dentro da Class apicnjClass.php
No próximo artigo iremos começar a analisar os headers necessários para a consulta e opções de consulta.
Top comments (1)
Olá meu amigo, teria disponibilidade e interesse em implementar essa API em um sistema proprietário meu de advocacia que é feito em PHP / Laravel? Estou procurando um profissional para fazer está ação, obrigado