WakaSign Docs
Toutes les guides

API native WakaSign

Workflow complet : créer un token, créer une enveloppe, l'envoyer, puis recevoir les événements du Workflow via webhook.

Pré-requis communs

Tous les tutoriels partagent le même mécanisme d'authentification.

Chaque appel HTTP doit porter un header Authorization: Bearer <token> <token> est un token dk_… généré dans l'app WakaSign (menu Clés API & Webhooks). Le token est lié à un workspace (team) — toutes les opérations s'effectuent dans son périmètre.

Base URL : https://app.wakasign.com/api

Envoyer des documents avec l'API native

1

Récupérer le teamId du workspace cible

L'endpoint d'envoi accepte un teamId numérique. Récupère-le via GET /api/proxy/teams côté UI, ou via la base directement.

2

Créer une enveloppe (DRAFT)

bash
curl -X POST 'https://app.wakasign.com/api/envelopes/team/<TEAM_ID>' \
  -H 'Authorization: Bearer dk_xxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Contrat de prestation",
    "message": "Bonjour, merci de signer ce document.",
    "signers": [
      { "email": "client@example.com", "name": "Jean Dupont", "role": "SIGNER" }
    ]
  }'

La réponse contient un id d'enveloppe (état DRAFT) — c'est cet identifiant qu'on utilise pour les étapes suivantes.

3

Uploader le fichier PDF

bash
curl -X POST 'https://app.wakasign.com/api/envelopes/team/<TEAM_ID>/<ENVELOPE_ID>/upload' \
  -H 'Authorization: Bearer dk_xxx' \
  -F 'file=@contrat.pdf'
4

Envoyer aux signataires

bash
curl -X POST 'https://app.wakasign.com/api/envelopes/team/<TEAM_ID>/<ENVELOPE_ID>/send' \
  -H 'Authorization: Bearer dk_xxx'

Chaque signataire reçoit un email contenant le lien de signature. L'enveloppe passe à l'état SENT.

5

Suivre l'avancement via webhooks

Plutôt que de poller GET /api/envelopes/team/<TEAM_ID>/<ID>, branche un webhook qui sera appelé à chaque transition d'état du Workflow.

Webhooks — événements du Workflow

WakaSign POST chaque événement sur l'URL configurée pour le workspace.

Événements disponibles

DOCUMENT_CREATEDUne enveloppe vient d'être créée à l'état DRAFT.
DOCUMENT_SENTUne enveloppe a été envoyée à ses signataires.
DOCUMENT_OPENEDLe premier signataire a ouvert le lien d'invitation.
DOCUMENT_SIGNEDUn signataire individuel vient de signer (déclenché à chaque signature).
DOCUMENT_COMPLETEDTous les signataires ont signé — le document est finalisé.
DOCUMENT_REJECTEDUn signataire a refusé de signer.
DOCUMENT_CANCELLEDL'enveloppe a été annulée par l'émetteur.

Forme du payload reçu

json
{
  "event": "DOCUMENT_COMPLETED",
  "timestamp": "2026-05-15T10:42:18.523Z",
  "data": {
    "envelopeId": "env_abc123",
    "teamId": 42,
    "status": "COMPLETED",
    "signers": [
      { "email": "client@example.com", "status": "SIGNED", "signedAt": "..." }
    ]
  }
}

Vérifier la signature HMAC

WakaSign ajoute le header X-Webhook-Secret à chaque appel. Compare-le au secret retourné à la création du webhook.

javascript
app.post('/webhooks/wakasign', (req, res) => {
  const received = req.header('X-Webhook-Secret');
  if (received !== process.env.WAKASIGN_WEBHOOK_SECRET) {
    return res.status(401).send('invalid signature');
  }
  const { event, data } = req.body;
  // … traite l'événement ici
  res.status(200).send('ok');
});