API para leitura de QRCODE da CNH
Olá pessoal, tudo bom? Atualmente na empresa em que eu trabalho temos uma demanda por adicionar uma camada de segurança para validar motoristas. Estes motoristas devem estar com a CNH regularizada.
Dito isso, fui atrás de alguma API que realizasse o scan do QRCode da CNH (no caso das CNHs mais recentes). E descobri que a SERPRO possui APIs que fazem isso, porém o processo para poder realizar a compra vai ser um pouco demorado. E, também, eles não oferecem um sandbox para teste nem nada do tipo (ao menos vasculhei o site de cabo a rabo e não encontrei).
Também tentei procurar por APIs que sejam, digamos, "revendedoras", mas sem sucesso também.
Alguém conhece alguma API que permita obter as informações da CNH?
Na playstore você encontra um app chamado Vio feito pela Serpro, ele é capaz de ler e exibir informações do qrcode da CNH de maneira OFFLINE. Se ele funciona offline, significa que os dados provavelmente estão guardados no propio qrcode (espero eu com algum tipo de assinatura digital), talvez a especificação desse qrcode seja publica ou alguem ja tenha feito engenharia reversa.
Testando aqui em casa com um app de qrcode comum, o qrcode armazena texto binario.
Parece que no próprio site deles, tem um botão bem vísivel com um "Quero Testar"
https://loja.serpro.gov.br/vioapidecodifica
https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/
Meus 2 cents:
Eh um pouco complicado - ate achei este aqui que oferece o servico:
https://www.instagram.com/fleetmaxgestao/p/DIJXDGPhv4D/
Mas falando um pouco como funciona:
- O QR Code da CNH eh chamado QR CODE VIO:
O Vio é um sistema de certificação de autenticidade de documentos de identificação. Documentos compatíveis portam o QR Code Vio, um QR Code que replica os dados contidos no documento utilizando encriptação forte para garantir a autenticidade dos dados. Além disso QR Codes Vio são encriptados na fonte a partir de informações fornecidas pela própria entidade emissora do documento, garantindo o não-repúdio.
Serve nao apenas para CNH, mas outros documentos que usem o mesmo formato.
Mais informacoes em:
https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/ https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/#o-que-e-o-vio
Agora, o formato binario para tentar ler, ver o certificado e tentar tirar a informacao ? tambem nao achei.
Ate tem o exemplo de informacao que guarda na CNH, mas o formato de decodificacao nao (so a chamada de API).
https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/exemplos/
"data" : { "nome" : "string", "nome_civil" : "string", "identidade" : "string", "cpf" : "string", "data_nascimento" : "string", "filiacao_pai" : "string", "filiacao_mae" : "string", "permissao" : "string", "acc" : "string", "categoria" : "string", "numero_registro" : "string", "data_validade" : "string", "data_primeira_habilitacao" : "string", "observacoes" : "string", "local_emissao" : "string", "uf_emissao" : "string", "data_emissao" : "string", "numero_validacao_cnh" : "string", "numero_renach" : "string" },
Cita tambem que o leitor de qr code nao pode tentar converter para texto, uma vez que eh binario (criptografado):
Exemplo de leitura de QRCode a partir do dispositivo mobile A integração pode ser feita facilmente em dispositivos móveis como smartphones e tablets, mas NUNCA deve ser usado um aplicativo genérico de leitura de QR Code, pois estes sempre interpretam a informação e tentam convertê-la para texto, inutilizando os dados.
A API do Vio precisa dos dados criptografados existentes no QRCode Vio para permitir a decodificação do mesmo. A tentativa de tratamento do conteúdo do QRCode como Texto, String, URL ou outro tipo de dado viola a integridade dos dados e impede a decodificação via API Vio Decode.
No final da pagina tem alguns codigos de exemplo.
EDIT: Fiz o decode a partir do exemplo:
imagem de exemplo CNH: https://apicenter.estaleiro.serpro.gov.br/documentacao/vio-decode/pt/qrcodes/cnh-demo.png
Decode online: https://zxing.org/w/decode.jspx
Coloquei o endereco da imagem de exemplo e mandei decodificar - funcionou, mas trouxe o conteudo binario.
Olá! Tudo bem?
Temos exatamente a solução que você procura, com preços mais acessíveis do que os praticados pelo SERPRO. Nossa API permite a leitura e validação do QR Code da CNH de forma rápida, segura, legalizada e em acordo com a LGPD/GDPR (certificações no site).
Entre em contato conosco para mais informações: www.cpfcnpj.com.br