Construindo algoritmo para consumir a API pública do CNJ (conselho nacional de justiça) - 2a parte (validação do número CNJ)
Leonardo Vilela
Posted on December 6, 2023
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.
Posted on December 6, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
December 6, 2023