Intégrez la signature électronique dans votre stack
Envoyez des enveloppes, suivez les signatures, recevez des webhooks. API REST simple, OpenAPI 3.0, exemples curl/Node/Python — tout pour brancher Certyneo sur votre HRIS, CRM ou logiciel métier en quelques heures.
Démarrage rapide
Trois étapes : créez une clé API depuis les paramètres, encodez votre PDF en base64, envoyez. La réponse contient le `signUrl` que vous pouvez partager directement avec le destinataire.
curl -X POST https://certyneo.com/api/v1/envelopes \
-H "Authorization: Bearer ck_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"subject": "Contrat de prestation",
"signers": [
{ "email": "[email protected]", "name": "Marie Dubois" }
],
"documents": [
{ "name": "contrat.pdf", "base64Pdf": "<base64>" }
]
}'// npm install @certyneo/sdk (or call fetch directly)
const r = await fetch("https://certyneo.com/api/v1/envelopes", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CERTYNEO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
subject: "Contrat de prestation",
signers: [{ email: "[email protected]", name: "Marie Dubois" }],
documents: [{ name: "contrat.pdf", base64Pdf }],
}),
});
const envelope = await r.json();
console.log(envelope.id, envelope.signers[0].signUrl);import requests, base64, os
with open("contrat.pdf", "rb") as f:
base64_pdf = base64.b64encode(f.read()).decode()
r = requests.post(
"https://certyneo.com/api/v1/envelopes",
headers={"Authorization": f"Bearer {os.environ['CERTYNEO_API_KEY']}"},
json={
"subject": "Contrat de prestation",
"signers": [{"email": "[email protected]", "name": "Marie Dubois"}],
"documents": [{"name": "contrat.pdf", "base64Pdf": base64_pdf}],
},
)
envelope = r.json()
print(envelope["id"], envelope["signers"][0]["signUrl"])Enveloppes
Création, envoi, suivi d'état, annulation. Une enveloppe peut contenir plusieurs documents et plusieurs signataires (parallèle ou séquentiel).
Webhooks
Recevez `envelope.created`, `envelope.completed`, `envelope.declined` sur l'URL de votre choix. HMAC SHA-256 sur chaque payload pour vérifier l'origine.
Authentification simple
Bearer token. Une clé par environnement (test / prod). Révocable instantanément. Limite 100 req/min/clé, burst de 200, 429 propre avec en-tête Retry-After.
Endpoints disponibles
12 routes couvrant le cycle complet : envelopes, documents, webhooks, clés API. Toutes les routes acceptent un Bearer token et renvoient JSON.
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/envelopes | List envelopes |
| POST | /api/v1/envelopes | Create + send |
| GET | /api/v1/envelopes/{id} | Fetch state |
| DELETE | /api/v1/envelopes/{id} | Void |
| POST | /api/v1/envelopes/{id}/send | Re-trigger send |
| GET | /api/v1/documents | List documents |
| GET | /api/v1/webhooks | List webhooks |
| POST | /api/v1/webhooks | Register webhook |
| DELETE | /api/v1/webhooks/{id} | Unregister |
| GET | /api/v1/keys | List API keys |
| POST | /api/v1/keys | Create API key |
| DELETE | /api/v1/keys/{id} | Revoke key |
Limites de débit
Les limites garantissent une qualité de service stable pour tous les clients. Si vous avez besoin de plus, contactez-nous.
- • 100 requêtes par minute par clé API
- • Burst toléré jusqu'à 200 requêtes en moins de 10s
- • Réponse 429 avec en-tête Retry-After indiquant le délai en secondes