Aller au contenu
signatik

Vérification

Retrouver la preuve d’un PDF par empreinte, même après purge. Référence générée depuis les schémas de validation de l’API : ce que vous lisez est ce que le serveur vérifie.

Base : https://app.signatik.com/api/v1 · authentification Authorization: Bearer sk_… · erreurs { "error": { "code", "message" } }.

post/api/v1/verify

Vérifier un document par empreinte

Soumettez le PDF (base64) ou son empreinte SHA-256. Retrouve l’enveloppe (document original, scellé ou révision intermédiaire), renvoie signataires, chronologie chaînée et chain_valid. Fonctionne même après purge des documents. Scope envelopes:read. La recherche est inter-organisations : détenir le document suffit à en consulter la preuve, sans être celui qui l’a émis — c’est ce qui permet à un tiers (avocat, contrôleur, entreprise destinataire) de vérifier. En contrepartie : - la consultation est tracée (qui a vérifié quoi, quand) ; - la preuve d’un document d’une autre organisation coûte 1 crédit, débité une seule fois par empreinte (une seconde consultation de la même empreinte est gratuite) ; vos propres documents et les empreintes inconnues ne sont jamais facturés ; - un tiers reçoit une vue restreinte (scope: "third_party") : emails partiellement masqués, adresses IP non restituées. Astuce : n’envoyez que sha256. Le PDF n’a aucune raison de transiter — l’empreinte suffit, et se calcule chez vous (sha256sum, Get-FileHash).

●POST /verify
curl -X POST https://app.signatik.com/api/v1/verify \
  -H "Authorization: Bearer sk_test_…" \
  -H "Content-Type: application/json" \
  -d '{
  "pdf_base64": "JVBERi0…",
  "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
}'
●200 — exemple de réponse
{
  "known": true,
  "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "matches": "original_document",
  "document": {
    "id": "8f2c1d4e-0b7a-4c1e-9f0d-6a3b2c1d0e9f",
    "name": "Contrat de mission n°1234",
    "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
    "sealed_sha256": "…",
    "current_sha256": "…"
  },
  "envelope": {
    "id": "8f2c1d4e-0b7a-4c1e-9f0d-6a3b2c1d0e9f",
    "name": "Contrat de mission n°1234",
    "status": "…",
    "signature_level": "…",
    "pades_level": "…",
    "completed_at": "2026-09-02T14:33:07Z",
    "sealed_at": "2026-09-02T14:33:07Z",
    "documents_available": true,
    "proof_retained_until": "2026-09-02T14:33:07Z"
  },
  "scope": "owner",
  "billed_credits": 1,
  "signers": [
    {}
  ],
  "events": [
    {
      "type": "…",
      "actor": "…",
      "at": "…",
      "hash": "…",
      "prev_hash": "…"
    }
  ],
  "chain_valid": true,
  "proof": {}
}
Corps de la requête
ChampTypeDescription
pdf_base64string
sha256string
Réponses
200known: false si l’empreinte est inconnue de la plateforme (jamais facturé)
400Ni PDF ni empreinte, ou empreinte mal formée
401Clé absente, mal formée ou révoquée (unauthorized)
402Crédits insuffisants pour consulter la preuve d’un document tiers
403Scope manquant sur la clé (forbidden)
429Limitation de débit (rate_limited, en-tête Retry-After)
Réponse 200
ChampTypeDescription
knownrequisboolean
sha256requisstring
matches"original_document" | "sealed_document" | "signed_revision"
documentobject
idrequisuuid
namerequisstring
sha256requisstring
sealed_sha256requisstring | null
current_sha256requisstring | null
envelopeobject
idrequisuuid
namerequisstring
statusrequisstring
signature_levelrequisstring
pades_levelrequisstring | null
completed_atrequisdate-time | null
sealed_atrequisdate-time | null
documents_availablerequisboolean
proof_retained_untilrequisdate-time | nullÉchéance de conservation de la preuve : au-delà, l’empreinte redevient inconnue
scope"owner" | "third_party"owner : le document appartient à votre organisation, détail complet. third_party : emails masqués, adresses IP non restituées
billed_creditsrequisnumberCrédits débités par cet appel : 1 pour la première consultation de la preuve d’un document d’une autre organisation, 0 sinon
signersobject[]
eventsobject[]Chronologie chaînée par empreinte
typerequisstring
actorrequisstring
atrequisstring
hashrequisstring
prev_hashrequisstring | null
chain_validboolean
proofobjectSignature avancée : horodatages, mandat, chaîne de confiance