Développeurs

API REST.
Même logique que le back-office.

Intégrez la signature électronique dans vos applications, puis administrez vos clés, vos webhooks et vos parcours de validation directement depuis l’application.

REST API JSON
Sandbox Clés de test activables depuis l’espace client
Webhooks Configuration et activation dans l’application
= prix Même logique tarifaire que l’interface

Parcours d’intégration

1

Choisir votre mode d’authentification: HTTP Signatures Ed25519 ou clé API Bearer.

2

Configurer un ou plusieurs webhooks depuis /v1/webhooks ou depuis l’espace client pour recevoir les changements d’état en temps réel.

3

Créer vos enveloppes avec PDF encodé en base64, signataires, positions et durée d’archivage. Pour SeS et AeS, le lien part par email; l’OTP dépend du profil de sécurité retenu.

4

Ajuster un brouillon via /v1/envelopes/{id} tant qu’il n’est pas envoyé, sans recréer un nouveau dossier.

5

Envoyer les brouillons SeS ou AeS via /v1/envelopes/{id}/send puis suivre l’avancement via webhooks et console.

6

Exploiter ensuite /v1/envelopes/{id}, /v1/activity et /v1/envelopes/{id}/proof/manifest pour retrouver la timeline OTP exacte, la consommation débitée, le contexte enveloppe/utilisateur et les preuves par signataire.

Accès rapide

Base URL https://www.sigillio.com/v1
Comportement actuel

La version exposée couvre aussi bien les enveloppes que l’administration des clés signées, des webhooks et des tests de livraison.

Authentification
HTTP Signatures Signature-Input / Signature / Content-Digest
Bearer Authorization: Bearer <API_KEY>
JWKS serveur https://www.sigillio.com/.well-known/jwks.json
Pilotage dans l’app

Créez, régénérez, désactivez et supprimez vos clés Bearer, vos clés HTTP Signatures et vos webhooks depuis la section API & Webhooks ou entièrement via l’API versionnée.

Endpoints principaux

GET /v1/keys Lister les clés HTTP Signatures Ed25519 avec pagination, recherche et filtre d’état.
POST /v1/keys Enregistrer une nouvelle clé publique Ed25519 et recevoir son keyid serveur.
PATCH /v1/keys/{keyid} Renommer ou activer/désactiver une clé HTTP Signatures existante.
DELETE /v1/keys/{keyid} Révoquer une clé HTTP Signatures côté serveur.
GET /v1/webhooks Lister les webhooks configurés avec pagination, filtres, liens d’action et résumé des livraisons.
POST /v1/webhooks Créer un webhook avec secret, événements filtrés et activation immédiate.
GET /v1/webhooks/{id} Lire la configuration d’un webhook existant.
GET /v1/webhooks/{id}/deliveries Lister les livraisons d’un webhook avec pagination et filtres de succès ou d’événement.
PATCH /v1/webhooks/{id} Modifier l’URL, le secret, les événements ou l’état actif d’un webhook.
POST /v1/webhooks/{id}/test Déclencher un webhook.test et récupérer le statut HTTP de livraison.
DELETE /v1/webhooks/{id} Supprimer un webhook côté serveur.
GET /v1/invoices Lister les factures avec pagination, recherche et filtre de statut.
GET /v1/invoices/{id} Lire une facture précise avec ses liens utiles.
GET /v1/invoices/{id}/download Télécharger le PDF d’une facture quand il est disponible.
GET /v1/subscription Lire l’abonnement courant, son historique court et les métriques compte associées.
GET /v1/credits Lister les packs de crédits avec pagination, statut brut, filtre métier (active, expiring, expired, exhausted), solde, expirations proches et blocages récents de consommation.
GET /v1/credits/{id} Lire un pack de crédits précis avec son état métier, ses liens et ses derniers mouvements.
GET /v1/credits/blocked Lister les derniers blocages de consommation avec recherche et liens vers les dossiers concernés.
GET /v1/credits/transactions Lister l’historique des transactions de crédits avec pagination, recherche, filtre débit/crédit et liens vers dossier, activité et preuve.
GET /v1/credits/{id}/transactions Lister les mouvements d’un pack de crédits précis avec les mêmes filtres que l’historique global.
GET /v1/activity Lister le journal d’activité au format JSON avec pagination, recherche, filtre d’entité et contexte enveloppe/utilisateur.
GET /v1/audit/export Exporter le journal d’activité du compte et des enveloppes au format CSV enrichi (résumés métier, contexte enveloppe et utilisateur).
GET /v1/audit/export/json Exporter le journal d’activité du compte et des enveloppes au format JSON structuré.
GET /v1/envelopes Lister les enveloppes avec pagination, recherche et filtres de statut ou de niveau.
POST /v1/envelopes Créer une enveloppe avec niveau, signataires, options et positions de signature.
GET /v1/envelopes/{id} Lire l’état d’une enveloppe, ses signataires, ses documents, ses OTP journalisés et sa facturation.
PATCH /v1/envelopes/{id} Mettre à jour un brouillon existant, avec remplacement optionnel du PDF.
POST /v1/envelopes/{id}/send Envoyer une enveloppe SeS ou AeS en brouillon après validation du dossier.
POST /v1/envelopes/{id}/remind Relancer tous les signataires encore en attente sur une enveloppe SeS ou AeS envoyée.
POST /v1/envelopes/{id}/signers/{signerId}/remind Relancer un signataire précis sur une enveloppe SeS ou AeS envoyée.
GET /v1/envelopes/{id}/activity Lister le journal d’activité d’une enveloppe précise au format JSON avec pagination, recherche et résumés métier.
GET /v1/envelopes/{id}/activity/export Exporter le journal d’activité d’une enveloppe précise au format CSV enrichi.
GET /v1/envelopes/{id}/activity/export/json Exporter le journal d’activité d’une enveloppe précise au format JSON structuré.
GET /v1/envelopes/{id}/signers/{signerId}/receipt Télécharger le reçu individuel d’un signataire déjà signé.
GET /v1/envelopes/{id}/signers/{signerId}/evidence Télécharger l’empreinte de signature capturée pour un signataire déjà signé.
GET /v1/envelopes/{id}/download Télécharger le PDF original ou signé.
GET /v1/envelopes/{id}/proof Récupérer le dossier de preuve et d’archivage avec ses liens de rapport et de manifeste.
GET /v1/envelopes/{id}/proof/report Télécharger le dossier de preuve PDF via l’API REST.
GET /v1/envelopes/{id}/proof/manifest Télécharger le manifeste JSON du dossier de preuve via l’API REST.
DELETE /v1/envelopes/{id} Annuler ou supprimer une enveloppe selon son état.

Exemple d’appel

Créer une enveloppe avec positions de signature
curl -X POST https://www.sigillio.com/v1/envelopes \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Contrat de prestation - Durand SARL",
    "level": "ses",
    "ses_confirmation_mode": "email_code",
    "archiving_years": 10,
    "documents": [{
      "name": "contrat-prestation-2026.pdf",
      "file_b64": "JVBERi0xLjQKJcOk..."
    }],
    "signers": [{
      "first_name": "Marie",
      "last_name": "Durand",
      "email": "marie@durand-sarl.fr",
      "phone": "+33612345678",
      "signature_position": {
        "page": 4,
        "x": 350,
        "y": 120,
        "width": 200,
        "height": 60
      }
    }],
    "webhook_url": "https://monapp.fr/webhooks/sigillio",
    "webhook_secret": "sigillio_live_shared_secret",
    "webhook_events": ["envelope.completed", "signer.signed", "envelope.billed", "signer.otp_requested"]
  }'

Réponse type

201 Created
{
  "success": true,
  "data": {
    "id": "f7e3d3e0-2cf1-4f14-b0f7-4d4f20f8f2c1",
    "status": "draft",
    "level": "ses",
    "created_at": "2026-05-20T14:00:00Z",
    "signers": [{
      "id": "6f6a0af5-faf6-4a56-a24d-a03d720ab1bb",
      "status": "pending",
      "signing_url": "https://www.sigillio.com/sign?token=..."
    }],
    "price": {
      "total_ht": 0.49
    },
    "security": {
      "ses_confirmation_mode": "email_code"
    }
  }
}

Webhooks supportés

Les webhooks peuvent être créés, filtrés par événement, testés, activés, désactivés et supprimés depuis l’application ou via /v1/webhooks. Utilisez-les pour synchroniser vos états métier sans polling.

envelope.created
envelope.sent
envelope.reminded
signer.reminded
signer.opened
signer.signed
signer.declined
envelope.completed
envelope.cancelled

Exemple de payload webhook

POST /webhooks/sigillio
Content-Digest: sha-256=:BASE64_HASH=:
X-Sigillio-Delivery: wh_01abc...
X-Sigillio-Signature: sha256=HEX_HMAC
{
  "event": "envelope.completed",
  "occurred_at": "2026-05-20T14:08:12Z",
  "envelope": {
    "id": 42,
    "uuid": "f7e3d3e0-2cf1-4f14-b0f7-4d4f20f8f2c1",
    "status": "completed",
    "level": "ses"
  },
  "signers": [{
    "uuid": "6f6a0af5-faf6-4a56-a24d-a03d720ab1bb",
    "email": "marie@durand-sarl.fr",
    "status": "signed"
  }],
  "context": {
    "source": "rest_api"
  }
}

Les événements de test utilisent le type webhook.test. Vérifiez toujours l’origine côté intégrateur avant traitement métier et comparez la signature HMAC si un secret est configuré.

HTTP Signatures Ed25519

Sigillio accepte aussi des requêtes signées Ed25519 conformes à RFC 9421, avec Content-Digest RFC 9530, nonce anti-rejeu et signature de réponse liée à la requête via des composants ;req.

Bootstrap

Soit via une clé API Bearer existante, soit via l’espace client: enregistrez une publique Ed25519 sur POST /v1/keys, récupérez votre keyid, puis signez chaque requête.

Rotation

Ajoutez une nouvelle clé, basculez votre client sur le nouveau keyid, puis révoquez l’ancienne avec DELETE /v1/keys/{keyid}. Plusieurs clés actives peuvent coexister pendant la transition.

Vérification des réponses

Récupérez les clés serveur sur https://www.sigillio.com/.well-known/jwks.json. Chaque réponse JSON expose aussi Content-Digest, Signature-Input et Signature, avec @status et des composants de requête référencés via ;req.

Clé API Bearer

Usage

Mode simple pour les scripts, l’exploitation interne et les phases de bootstrap. La clé garde la même couverture API que HTTP Signatures.

Header

Authorization: Bearer <API_KEY>

Cycle de vie

Les clés sandbox et production se créent, se régénèrent, se désactivent et se suppriment depuis l’espace client ou l’API.

Exemple de headers signés

POST /v1/envelopes avec Ed25519
Content-Digest: sha-256=:BASE64_HASH=:
Signature-Input: sig1=("@method" "@target-uri" "content-digest" "@authority");created=1716200000;nonce="r4nd0m...";keyid="k_abc123";alg="ed25519"
Signature: sig1=:BASE64_SIGNATURE:

Signez la méthode HTTP telle qu’envoyée, par exemple GET ou POST. Le nonce doit être unique dans la fenêtre de validité. Toute réutilisation est rejetée côté API.

Les accès techniques se pilotent dans l’espace client.

Ouvrir API & Webhooks Bearer <API_KEY> Signature-Input / Signature
Solvegia

Édité et opéré par Solvegia, Paris, France