AssinAPI

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

  1. SHA-256 do arquivo enviado.
  2. Manifesto: storage ↔ banco ↔ hash recalculado.
  3. Assinatura do manifesto com a chave pública do servidor.
  4. Reconstrução completa da cadeia de auditoria.
  5. Hash de cada documento original e final (bytes no storage).
  6. Hash de cada registro de assinatura recalculado a partir do banco.
  7. 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.