Signlift

Signature Requests

Création et récupération des requêtes de signature électronique.

POST /api/v1/signature_requests

Crée une requête et déclenche l'envoi des invitations aux signataires.

Body (JSON)

ChampTypeRequisDescription
modestring"sequential" ou "parallel".
validity_daysint1 à 90. Au-delà → signature_request.expired.
initials_requiredboolParaphes par page (plans Pro/Enterprise). Défaut false.
notify_signers_on_completionboolEmail récapitulatif envoyé à tous les signataires. Défaut false.
signersarray1 à 10 signataires (cf. ci-dessous).
documentsarray1 à 5 documents (référencés par document_id).
webhook_urlstringHTTPS uniquement. Override le webhook global.
redirect_urlstringHTTPS. Page d'atterrissage après signature.

Schéma d'un signer

{
  "first_name": "Jeanne",
  "last_name": "Dupont",
  "email": "jeanne@example.com",
  "phone": "+33612345678",
  "initials": "JD",
  "order": 1
}
  • phone : E.164 (+CCXXXXXXXXX). Requis pour OTP par SMS.
  • initials : 1 à 4 caractères, auto-générées depuis le nom si vide.
  • order : ordre de signature en mode sequential.

Exemple complet

Allez sur le playground pour générer un payload sur mesure.

curl https://api.signlift.io/api/v1/signature_requests \
  -H "X-Api-Key: $SIGNLIFT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "mode": "sequential",
    "validity_days": 30,
    "initials_required": true,
    "notify_signers_on_completion": true,
    "signers": [
      { "first_name": "Jeanne", "last_name": "Dupont", "email": "jeanne@example.com", "order": 1 },
      { "first_name": "Alex", "last_name": "Bernard", "email": "alex@example.com", "order": 2 }
    ],
    "documents": [{ "document_id": "doc_01HZQK..." }],
    "webhook_url": "https://yourapp.com/webhooks/signlift",
    "redirect_url": "https://yourapp.com/success"
  }'

Réponse 201

{
  "id": "sr_01HZQM...",
  "status": "pending",
  "mode": "sequential",
  "expires_at": "2026-06-15T15:00:00Z",
  "signers": [
    {
      "id": "sgn_...",
      "first_name": "Jeanne",
      "last_name": "Dupont",
      "email": "jeanne@example.com",
      "status": "notified",
      "sign_url": "https://app.signlift.io/sign/eyJ..."
    }
  ],
  "documents": [
    { "id": "doc_01HZQK...", "filename": "contract.pdf" }
  ],
  "created_at": "2026-05-16T15:00:00Z"
}

GET /api/v1/signature_requests/{id}

Récupère l'état d'une requête.

Statuts possibles

StatusSignification
pendingCréée mais aucun signataire notifié.
notifiedInvitations envoyées.
partially_signedAu moins un signataire a signé.
completedTous ont signé. Le PDF signé est disponible.
expiredvalidity_days dépassé sans complétion.

Réponse 200

{
  "id": "sr_01HZQM...",
  "status": "completed",
  "signed_at": "2026-05-16T15:12:43Z",
  "signers": [...],
  "documents": [{ "id": "doc_01HZQK...", "signed_pdf_url": "https://..." }]
}

On this page