Première signature en dix minutes
Une API REST, des clés de bac à sable gratuites, un webhook à la complétion. Pas de SDK obligatoire : du JSON et du base64.
La documentation complète
Référence par ressource générée depuis les schémas du serveur, guides pas à pas, catalogue des erreurs, spécification OpenAPI.
Créez un compte et une clé de bac à sable
Les clés sk_test_ ne consomment aucun crédit ; les emails partent avec la mention [TEST]. Les clés sk_live_ facturent à la complétion.
Envoyez une enveloppe
Un PDF en base64, un ou plusieurs signataires, send: true. La réponse contient l’URL de signature de chacun : laissez partir l’email, ou injectez l’URL dans votre produit (marque blanche).
curl -X POST https://preprod.signatik.com/api/v1/envelopes \
-H "Authorization: Bearer sk_test_…" \
-H "Content-Type: application/json" \
-d '{
"name": "Contrat de mission n°1234",
"send": true,
"signature_level": "simple",
"documents": [{ "name": "contrat.pdf", "pdf_base64": "JVBERi0…" }],
"signers": [{ "email": "jean.dupont@exemple.fr", "name": "Jean Dupont" }]
}'
# → 201 { "id": "env_…", "status": "sent",
# "signers": [{ "sign_url": "https://preprod.signatik.com/sign/…" }] }signature_level:simple(défaut),advanced(identité attestée requise),organization_seal(cachet sous mandat, signé en lot).signers[].order: 0 = parallèle ; 1, 2, 3… = séquentiel.fields[]: signature, texte, date, case à cocher — position en pourcentage de la page, origine en haut à gauche. Sans champ, la signature est placée automatiquement.retention_days: 1 à 90 jours après complétion, puis purge des PDF ; la preuve reste.
Recevez la complétion par webhook
Créez un endpoint depuis la console : le secret n’est affiché qu’une fois. Chaque livraison est signée en HMAC-SHA256 du corps brut ; 8 tentatives avec attente exponentielle tant que vous ne répondez pas 2xx.
// Vérification de la signature d'un webhook (Node)
const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const ok = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers['x-esign-signature']));Événements : envelope.completed (après scellement, avec liens de téléchargement), envelope.expired, mandate.activated, seal_batch.applied, attendance.session_closed.
Vérifiez un document, même des années plus tard
Par le PDF ou par son empreinte SHA-256. C’est l’endpoint que l’avocat de votre client utilisera.
curl -X POST https://preprod.signatik.com/api/v1/verify \
-H "Authorization: Bearer sk_test_…" -H "Content-Type: application/json" \
-d '{ "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" }'
# → enveloppe, signataires, chronologie chaînée, chain_valid — même après purgeFormat uniforme, codes stables
Toute erreur renvoie { "error": { "code": "…", "message": "…" } }.
| Code | Sens |
|---|---|
401 unauthorized | clé absente, mal formée ou révoquée |
403 forbidden | scope manquant sur la clé |
402 insufficient_credits | solde insuffisant : la réponse contient le solde, le coût requis et l’URL d’achat |
422 identity_required | signature avancée sans identité attestée — jamais contournable |
409 invalid_status | action impossible dans l’état courant (ex. envoi d’une enveloppe déjà envoyée) |
429 rate_limited | trop de requêtes ; en-tête Retry-After |
Serveur MCP : la signature depuis Claude, Cursor, n8n
Dix outils : créer une demande, attendre la signature, télécharger les documents scellés et la preuve, vérifier un PDF, créer une session d’émargement… En stdio ou en HTTP.
claude mcp add esign -e ESIGN_API_URL=https://preprod.signatik.com -e ESIGN_API_KEY=sk_test_… -- npx @esign/mcp
# n8n / Make : ESIGN_API_URL=… ESIGN_API_KEY=… npx @esign/mcp --http --port 3333 → http://localhost:3333/mcpRecommandation : une clé dédiée à l’agent, en bac à sable pendant le développement, et une validation humaine dans le client avant tout envoi réel. Le signataire reste une personne qui reçoit un lien et saisit un code.
Publiée, stable, à ne jamais casser
Certificats de l’autorité
https://preprod.signatik.com/pki/ca.crtRacine et émettrice : pour vérifier nos cachets et les certificats des signataires.
Liste de révocation
https://preprod.signatik.com/pki/crl.derRepubliée chaque jour, même vide : une liste périmée invaliderait la vérification de tous les documents.
Politique de signature
https://preprod.signatik.com/.well-known/signature-policy.jsonIdentifiée par un OID référencé dans chaque signature.