Aller au contenu principal
Certyneo
API publique v1

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.

cURLbash
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>" }
    ]
  }'
JavaScript / Nodets
// 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);
Pythonpython
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.

MethodPathDescription
GET/api/v1/envelopesList envelopes
POST/api/v1/envelopesCreate + send
GET/api/v1/envelopes/{id}Fetch state
DELETE/api/v1/envelopes/{id}Void
POST/api/v1/envelopes/{id}/sendRe-trigger send
GET/api/v1/documentsList documents
GET/api/v1/webhooksList webhooks
POST/api/v1/webhooksRegister webhook
DELETE/api/v1/webhooks/{id}Unregister
GET/api/v1/keysList API keys
POST/api/v1/keysCreate 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