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" } }.
/api/v1/verifyVé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).
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"
}'{
"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": {}
}| Champ | Type | Description |
|---|---|---|
pdf_base64 | string | |
sha256 | string |
200 | known: false si l’empreinte est inconnue de la plateforme (jamais facturé) |
400 | Ni PDF ni empreinte, ou empreinte mal formée |
401 | Clé absente, mal formée ou révoquée (unauthorized) |
402 | Crédits insuffisants pour consulter la preuve d’un document tiers |
403 | Scope manquant sur la clé (forbidden) |
429 | Limitation de débit (rate_limited, en-tête Retry-After) |
| Champ | Type | Description |
|---|---|---|
knownrequis | boolean | |
sha256requis | string | |
matches | "original_document" | "sealed_document" | "signed_revision" | |
document | object | |
idrequis | uuid | |
namerequis | string | |
sha256requis | string | |
sealed_sha256requis | string | null | |
current_sha256requis | string | null | |
envelope | object | |
idrequis | uuid | |
namerequis | string | |
statusrequis | string | |
signature_levelrequis | string | |
pades_levelrequis | string | null | |
completed_atrequis | date-time | null | |
sealed_atrequis | date-time | null | |
documents_availablerequis | boolean | |
proof_retained_untilrequis | date-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_creditsrequis | number | Cré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 |
signers | object[] | |
events | object[] | Chronologie chaînée par empreinte |
typerequis | string | |
actorrequis | string | |
atrequis | string | |
hashrequis | string | |
prev_hashrequis | string | null | |
chain_valid | boolean | |
proof | object | Signature avancée : horodatages, mandat, chaîne de confiance |