Référence API · v1
Documentation API
L'API REST SSF permet à votre site ou application d'envoyer un document en signature, de suivre son statut et d'en vérifier l'intégrité. Toutes les réponses sont au format JSON, en UTF-8.
https://votre-domaine/api/v1Introduction
Le cycle est simple : votre système crée un document avec le PDF et les informations du signataire, la plateforme renvoie un lien de signature sécurisé. Le signataire l'ouvre, consent explicitement et dessine sa signature. Le document est alors scellé et un webhook notifie votre système.
Chaque document reçoit un identifiant de la forme SSF-2026-000154 (préfixe, année, numéro séquentiel).
Sécurité
Authentification
Toutes les requêtes vers /api/v1/* exigent une clé API dans l'en-tête Authorization. Générez vos clés depuis l'onglet Clés APIde l'administration. Une clé n'est affichée qu'une seule fois et stockée hachée côté serveur.
Authorization: Bearer ssf_a1b2c3d4e5f6…
Une clé manquante ou invalide renvoie une réponse 401 Unauthorized.
POST
Créer un document
/api/v1/documentsCorps en multipart/form-data. Crée une demande de signature et renvoie le lien à transmettre au signataire (ou envoyé automatiquement par email si le SMTP est configuré).
| Paramètre | Type | Description |
|---|---|---|
| filerequis | fichier (PDF) | Le document PDF à signer (max 15 Mo). |
| signer_namerequis | string | Nom complet du signataire. |
| signer_emailrequis | string | Email du signataire. |
| titleoption | string | Titre affiché du document. |
| callback_urloption | string (URL) | Webhook POST appelé à la signature. |
| expires_in_daysoption | number | Durée de validité du lien, en jours. |
| sig_pageoption | number | Page où apposer la signature (défaut : dernière). |
| sig_x, sig_yoption | number | Position de la signature en points PDF. |
curl -X POST https://votre-domaine/api/v1/documents \ -H "Authorization: Bearer ssf_…" \ -F "file=@contrat.pdf;type=application/pdf" \ -F "signer_name=Jean Dupont" \ -F "signer_email=jean@exemple.com" \ -F "title=Contrat de prestation" \ -F "expires_in_days=7" \ -F "callback_url=https://mon-site.com/webhooks/ssf"
{
"id": "SSF-2026-000154",
"status": "pending",
"signing_url": "https://votre-domaine/sign/<token>",
"verify_url": "https://votre-domaine/verify/SSF-2026-000154",
"sha256_original": "8e292f…",
"email_sent": false
}GET
Consulter un document
/api/v1/documents/{id}Renvoie le statut et les métadonnées d'audit. Une fois le document signé, le bloc certificate reprend exactement les champs du certificat joint au PDF.
{
"id": "SSF-2026-000154",
"status": "signed",
"signer": { "name": "Jean Dupont", "email_verified": true },
"signed_at": "2026-07-03T11:42:00.000Z",
"modified_after_signature": false,
"certificate": {
"Document ID": "SSF-2026-000154",
"Signataire": "Jean Dupont",
"Email vérifié": "Oui",
"Date de signature": "03/07/2026 à 11:42",
"Méthode": "lien sécurisé envoyé par email",
"Empreinte SHA-256": "94f6a2…",
"Adresse IP": "enregistrée",
"Consentement explicite": "Oui",
"Document modifié après signature": "Non"
}
}GET
Télécharger le PDF
/api/v1/documents/{id}/downloadRenvoie le fichier PDF (application/pdf) — le document signé avec sa page de certificat, ou l'original si la signature est encore en attente.
POST
Annuler une demande
/api/v1/documents/{id}/cancelAnnule une demande en attente. Un document déjà signé ne peut pas être annulé (réponse 409 Conflict).
GET
Vérifier l'intégrité
/api/v1/documents/{id}/verifyRecalcule l'empreinte SHA-256 du fichier archivé et la compare à celle enregistrée à la signature. Le champ modified_after_signature vaut false si le document est intact.
{
"id": "SSF-2026-000154",
"status": "signed",
"modified_after_signature": false,
"Document modifié après signature": "Non"
}Notifications
Webhooks
Si vous fournissez callback_url à la création, la plateforme envoie une requête POSTà la signature du document (avec une nouvelle tentative après 5 secondes en cas d'échec).
{
"event": "document.signed",
"document": { /* mêmes champs que GET /documents/{id} */ }
}Cryptographie
Empreintes SHA-256
Trois empreintes accompagnent chaque document, chacune avec un rôle précis :
| Paramètre | Type | Description |
|---|---|---|
| sha256_originaloption | hex | Le PDF reçu de votre système, avant signature. |
| sha256_signedoption | hex | Le document signé, avant l'ajout de la page de certificat. C'est l'empreinte imprimée sur le certificat. |
| sha256_finaloption | hex | Le fichier PDF complet distribué (certificat inclus). Recalculable par tous : shasum -a 256 fichier.pdf. |
Référence
Codes d'erreur
Les erreurs renvoient un objet { "error": "...", "message": "..." } avec le statut HTTP correspondant.
| Paramètre | Type | Description |
|---|---|---|
| 400option | bad_request | Champ manquant, PDF invalide, ou corps mal formé. |
| 401option | unauthorized | Clé API manquante ou invalide. |
| 404option | not_found | Document introuvable. |
| 409option | invalid_status | Action impossible dans le statut actuel du document. |
Besoin d'aide pour l'intégration ?
Notre équipe accompagne la mise en place côté client.
Contacter le support