Signlift

Démarrage rapide

De zéro à une signature finalisée en 5 minutes, avec curl uniquement.

1. Récupérez une clé API sandbox

Depuis votre organisation Signlift, ouvrez la section Applications externes, créez une application avec l'environnement sandbox, et copiez la clé API et le webhook_secret affichés à l'écran. La clé est une chaîne hexadécimale de 64 caractères, sans préfixe — elle n'est affichée qu'une fois (Signlift ne stocke que son hash SHA-256).

export SIGNLIFT_API_KEY="a3f9b1c8...d4e2"

2. Uploadez un document PDF

curl https://app.signlift.eu/api/v1/documents \
  -H "X-Api-Key: $SIGNLIFT_API_KEY" \
  -F "file=@contract.pdf"

Réponse :

{
  "id": 42,
  "content_type": "pdf",
  "sha256_hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "file_size": 154823,
  "status": "ready",
  "created_at": "2026-05-17T15:00:00Z"
}

3. Créez une signature request

curl https://app.signlift.eu/api/v1/signature_requests \
  -H "X-Api-Key: $SIGNLIFT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "signature_request": {
      "mode": "sequential",
      "validity_days": 30,
      "send_email": true,
      "identity_declaration_accepted": true,
      "signers": [
        {
          "ref": "jeanne",
          "first_name": "Jeanne",
          "last_name": "Dupont",
          "email": "jeanne@example.com",
          "order": 1
        }
      ],
      "documents": [
        {
          "id": 42,
          "signers": [
            {
              "signer_ref": "jeanne",
              "stamp": { "type": "magic_field", "value": { "tag": "[SIG_JEANNE]" } }
            }
          ]
        }
      ]
    }
  }'

Extrait de la réponse 201 :

{
  "id": 42,
  "status": "pending",
  "mode": "sequential",
  "expires_at": "2026-06-16T15:00:00Z",
  "signers": [
    {
      "id": 1768,
      "first_name": "Jeanne",
      "last_name": "Dupont",
      "email": "jeanne@example.com",
      "status": "pending",
      "signing_url": "https://app.signlift.eu/sign/eyJhbGciOiJIUzI1NiJ9..."
    }
  ]
}

Le statut du signataire est pending au retour synchrone du POST. Il passe à notified une fois l'e-mail effectivement envoyé (job asynchrone). Pour la liste complète des champs retournés, voir Référence — Signature Requests.

Transmettez le signing_url à Jeanne (e-mail, redirect HTTP, iframe) — c'est une URL absolue prête à l'emploi. Voir Intégration iframe.

4. Recevez le webhook de complétion

Lorsque tous les signataires ont signé et que les PDF signés sont finalisés, Signlift POSTe sur l'URL de webhook configurée pour votre application externe :

POST /webhooks/signlift HTTP/1.1
Content-Type: application/json
X-Signlift-Event: request.completed
X-Signlift-Delivery: 12345
X-Signlift-Signature: sha256=a3f9b1c8...

{
  "event": "request.completed",
  "occurred_at": "2026-05-17T15:12:43Z",
  "signature_request": {
    "id": 42,
    "status": "completed",
    "mode": "sequential"
  },
  "certificate_url": "https://signlift-production.s3.eu-west-3.amazonaws.com/...",
  "certificate_expires_in": 900,
  "documents": [
    {
      "document_id": 7,
      "signed_url": "https://signlift-production.s3.eu-west-3.amazonaws.com/...",
      "expires_in": 900
    }
  ]
}

Vérifiez la signature HMAC-SHA256 avant de traiter le payload — voir Webhooks pour le snippet de vérification dans votre langage.

Téléchargez les PDF signés directement depuis le tableau documents (une entrée par document, avec son signed_url) et le certificat de signature — unique pour toute la demande — via certificate_url à la racine du payload. Les URLs S3 présignées sont valables 15 minutes. Si vous traitez le webhook plus tard, GET /api/v1/signature_requests/42 renvoie des URLs équivalentes, régénérées à la demande, dans le tableau download_urls.

Et maintenant ?

On this page