Ir ao contido principal
Certyneo
API REST — eIDAS

L'API de signature électronique pour les développeurs

Intégrez la signature électronique eIDAS dans votre application en quelques heures. REST, webhooks fiables, SDK Node/Python/Ruby, sandbox gratuit illimité.

Sandbox gratuit · 99,95 % uptime · Hébergement souverain UE

REST + OpenAPI 3.1

Endpoints prévisibles, JSON propre, codes HTTP standard. Spec OpenAPI 3.1 téléchargeable pour générer vos propres clients.

Webhooks fiables

Retry automatique avec backoff exponentiel, signature HMAC SHA-256, journal d'événements consultable. Pas de polling à coder.

Conformité eIDAS native

Signatures AES, AES-Q et QES disponibles via flag API. Piste d'audit qualifiée incluse, certificats TSP qualifiés UE.

Latence < 200 ms

API hébergée à Strasbourg (UE), p95 < 200 ms depuis l'Europe. SLA 99,95 % uptime, statut public temps réel.

Démarrage en 5 minutes

Créez votre première enveloppe avec une seule requête HTTP.

cURL — Création d'une enveloppe
curl https://api.certyneo.com/v1/envelopes \
  -H "Authorization: Bearer $CERTYNEO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Contrat de prestation",
    "documents": [{"file_url": "https://your.app/contract.pdf"}],
    "recipients": [{"email": "client@example.com", "name": "Jane Doe"}],
    "webhook_url": "https://your.app/webhooks/sign"
  }'

Une requête POST suffit pour créer une enveloppe, ajouter un document, un signataire et l'URL de webhook. L'API renvoie un sign_url prêt à partager.

SDK Node.js officiel
import Certyneo from '@certyneo/sdk';

const client = new Certyneo({ apiKey: process.env.CERTYNEO_API_KEY });

const envelope = await client.envelopes.create({
  title: 'Contrat de prestation',
  documents: [{ file_url: 'https://your.app/contract.pdf' }],
  recipients: [{ email: 'client@example.com', name: 'Jane Doe' }],
});

console.log(envelope.sign_url); // ready to share with the signer

Le SDK Node TypeScript fournit le typage complet, la gestion automatique des erreurs avec retry, et un constructeur d'enveloppe fluide. Disponible aussi en Python et Ruby.

Webhooks — réagissez en temps réel

Six événements (envelope.sent, viewed, signed, completed, declined, expired) avec signature HMAC vérifiable et retry automatique.

envelope.completed
{
  "event": "envelope.completed",
  "envelope_id": "env_3a2f...",
  "signed_at": "2026-05-25T14:32:18Z",
  "evidence_url": "https://api.certyneo.com/v1/envelopes/env_3a2f.../audit-trail.pdf",
  "signers": [
    { "email": "client@example.com", "signed": true, "ip": "82.x.x.x" }
  ]
}
  • Signature HMAC SHA-256 de chaque payload — vérifiez l'authenticité côté serveur.
  • Retry automatique en cas d'échec : 5 tentatives sur 24 heures avec backoff exponentiel.
  • Journal d'événements consultable depuis le dashboard : voyez chaque tentative, le statut HTTP retourné, le body.
  • URL de webhook configurable par enveloppe (override) ou globale dans le projet.

Pourquoi une API dédiée à la signature électronique ?

Intégrer la signature électronique dans votre produit n'est pas anodin. Vous avez besoin de garanties sur la conformité légale (eIDAS), la fiabilité technique (webhooks qui arrivent vraiment), et la souveraineté des données (hébergement européen pour éviter le Cloud Act). L'API Certyneo couvre les trois.

Conçue par et pour des développeurs, elle suit les conventions REST modernes : pagination cursor-based, idempotency keys, versioning par URL, OpenAPI 3.1 pour générer vos clients automatiquement. Pas de SOAP, pas de XML, pas de surprises.

Conformité eIDAS expliquée pour les développeurs

Le règlement eIDAS définit trois niveaux de signature : simple (SES), avancée (AES) et qualifiée (QES). L'API Certyneo permet de choisir le niveau par enveloppe via un champ `signature_level`. La valeur par défaut est AES (suffisant pour 95 % des cas B2B). La QES est disponible pour les actes nécessitant une équivalence légale stricte avec la signature manuscrite manuelle (actes notariés, marchés publics).

Côté technique, AES exige une authentification forte du signataire (OTP par SMS par défaut, KYC vidéo en option) et une piste d'audit horodatée. La QES ajoute un certificat qualifié émis par un TSP qualifié UE. Tout cela est géré par l'API — vous appelez l'endpoint, on s'occupe du reste.

Architecture d'intégration recommandée

Le pattern d'intégration le plus courant suit ce flux :

  • Votre backend appelle POST /v1/envelopes pour créer l'enveloppe et reçoit un sign_url à présenter à l'utilisateur.
  • Vous redirigez l'utilisateur vers le sign_url ou l'embedez en iframe (avec votre branding via le plan Pro).
  • Une fois la signature complétée, Certyneo appelle votre webhook avec l'événement envelope.completed.
  • Vous mettez à jour votre base de données et notifiez l'utilisateur (e-mail, in-app, etc.).

Sandbox gratuit illimité

L'environnement sandbox est gratuit et illimité. Toutes les fonctionnalités de production sont disponibles, sauf que les signatures n'ont pas de valeur légale (le PDF est marqué SANDBOX). Pratique pour les tests automatisés, les démos client, le développement local. Les clés sandbox sont distinctes des clés prod, isolement total entre les deux.

Migrer depuis DocuSign ou Yousign

Si vous avez déjà une intégration DocuSign ou Yousign, le mapping API est direct : envelopes → envelopes, recipients → recipients, status webhooks → status webhooks. Notre guide de migration documente les équivalences endpoint par endpoint. Comptez 1 à 3 jours pour une migration complète, beaucoup moins si vous utilisez un wrapper interne.

Foire aux questions — API

Quel est le rate limit de l'API ?

1 000 requêtes par minute par défaut, augmentable sur demande pour les usages élevés (factories, plateformes multi-tenant). Le header X-RateLimit-Remaining sur chaque réponse indique le quota restant. En cas de dépassement, l'API renvoie 429 avec un Retry-After.

Combien coûte l'API ?

Le sandbox est gratuit et illimité. La production fonctionne en paiement à la signature (à partir de 0,40 € la signature AES avec dégressivité au volume), sans abonnement minimum. Le plan Enterprise inclut un SLA renforcé, un IP whitelisting et un compte technique dédié.

Y a-t-il un SLA ?

99,95 % uptime sur les plans Business et Enterprise (downtime maximum de 4 heures par an). Page de statut publique avec historique des incidents : status.certyneo.com. Le plan Enterprise inclut un crédit automatique en cas de non-respect du SLA.

Quelle authentification utilisez-vous ?

Bearer token (clé API) dans l'en-tête Authorization. Les clés sont rotables depuis le dashboard, avec révocation immédiate. Pour les intégrations OAuth (plateforme multi-tenant), nous proposons un OAuth 2.0 Client Credentials sur le plan Enterprise.

Comment vérifier la signature HMAC d'un webhook ?

Chaque webhook inclut un en-tête X-Certyneo-Signature contenant un HMAC SHA-256 du payload, signé avec votre webhook secret. Côté serveur, recalculez le HMAC et comparez en temps constant (timing-safe comparison). Le SDK officiel fait ça automatiquement via webhook.verify(payload, signature, secret).

Les SDK sont-ils open source ?

Oui. Les SDK Node, Python et Ruby sont sur GitHub sous licence MIT. Vous pouvez forker, contribuer ou simplement les auditer. Les binaries sont publiés sur npm, PyPI et RubyGems sous le namespace @certyneo / certyneo.

Puis-je tester sans inscription ?

Oui, via les exemples interactifs de la documentation API : /developers/playground. Les requêtes y tournent contre une instance sandbox partagée, sans clé requise. Pour un usage sérieux, créez un compte développeur gratuit (sandbox illimité).

Prêt à intégrer la signature électronique ?

Sandbox gratuit illimité, documentation complète, SDK officiels. Démarrez maintenant.