Verificação
Qualquer pessoa pode conferir um documento em /verify enviando o PDF (original ou final) ou o código de verificação. A API equivalente é POST /v1/public/verify.
Resultados
- VALID — o arquivo corresponde a um processo concluído e todas as evidências foram validadas.
- ALTERED — o PDF declara pertencer a um processo, mas seus bytes não correspondem a nenhum artefato registrado.
- UNKNOWN — nenhum processo concluído corresponde ao arquivo/código.
- REVOKED — processo cancelado, recusado ou expirado.
- INVALID_EVIDENCE — o processo existe, mas alguma evidência falhou (ex.: registro alterado no banco).
O que é verificado
- SHA-256 do arquivo enviado.
- Manifesto: storage ↔ banco ↔ hash recalculado.
- Assinatura do manifesto com a chave pública do servidor.
- Reconstrução completa da cadeia de auditoria.
- Hash de cada documento original e final (bytes no storage).
- Hash de cada registro de assinatura recalculado a partir do banco.
- Carimbo do tempo sobre o hash do manifesto.
Verificação offline
As chaves públicas ficam em GET /v1/public/keys. Com manifest.json e manifest.sig (em GET /v1/envelopes/:id/evidence) você pode validar a assinatura com qualquer biblioteca Ed25519, sem depender da AssinAPI.
Operadores podem rodar npm run verify-evidence -- <envelopeId> no servidor para um relatório completo.