NueForm

API des sessions de signature

Créer, gérer et suivre des sessions de signature électronique pour les questions de contrat.

L'API des sessions de signature vous permet de créer et de gérer par programmation des sessions de signature pour les questions de contrat. Vous pouvez créer des sessions, suivre la progression des signatures, renvoyer des demandes, annuler des sessions et télécharger les documents signés.

Tous les corps de requête et de réponse utilisent des noms de champs en snake_case.

Créer une session

POST/api/v1/forms/:id/signing-sessions

Crée une nouvelle session de signature pour un formulaire contenant une ou plusieurs questions de contrat. Renvoie la session avec des liens de signature uniques pour chaque emplacement de signataire.

Paramètres de chemin

idstring

L'identifiant du formulaire

Corps de la requête

signersarray

Tableau de configurations de signataires, une par emplacement. Chaque objet peut inclure slot_number (entier), first_name (chaîne), last_name (chaîne) et email (chaîne). Tous les champs sauf slot_number sont facultatifs.

signing_orderstring

"sequential" ou "any". Par défaut, l'ordre de signature par défaut de la question.

expiry_daysinteger

Nombre de jours avant l'expiration de la session. Par défaut : 30.

passwordstring

Mot de passe pour protéger les liens de signature.

hide_other_signersboolean

Masquer les champs remplis par les autres signataires. Par défaut : false.

require_email_verificationboolean

Exiger une vérification d'e-mail avant la signature. Par défaut : false.

copy_modestring

"ask", "always" ou "disabled". Par défaut : "ask".

notify_emailsarray

Tableau d'adresses e-mail recevant les notifications de statut.

notify_eventsarray

Tableau de types d'événements : "each_signature", "all_complete", "decline", "expiry".

send_signing_emailsboolean

Envoyer les e-mails de demande de signature aux signataires disposant d'une adresse e-mail. Par défaut : false.

custom_email_bodystring

Modèle d'e-mail personnalisé. Prend en charge les variables : {slot_firstName}, {slot_lastName}, {slot_link}, {expiryDate}.

Réponse

json
{
  "id": "ses_abc123def456",
  "form_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "status": "active",
  "signing_order": "sequential",
  "total_slots": 2,
  "total_signed": 0,
  "expires_at": "2026-04-25T00:00:00.000Z",
  "hide_other_signers": false,
  "copy_mode": "ask",
  "signer_links": [
    {
      "slot_number": 1,
      "slot_label": "Buyer",
      "short_code": "xK9f2",
      "signing_url": "https://nue.fm/s/xK9f2",
      "first_name": "John",
      "last_name": "Smith",
      "email": "john@example.com",
      "status": "pending"
    },
    {
      "slot_number": 2,
      "slot_label": "Seller",
      "short_code": "mP3a7",
      "signing_url": "https://nue.fm/s/mP3a7",
      "first_name": null,
      "last_name": null,
      "email": null,
      "status": "pending"
    }
  ],
  "created_at": "2026-03-26T10:00:00.000Z"
}

Exemples de code

bash
curl -X POST "https://api.nueform.io/api/v1/forms/FORM_ID/signing-sessions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "signers": [
      {"slot_number": 1, "first_name": "John", "last_name": "Smith", "email": "john@example.com"},
      {"slot_number": 2, "first_name": "Jane", "last_name": "Doe"}
    ],
    "signing_order": "sequential",
    "expiry_days": 30,
    "send_signing_emails": true
  }'

Lister les sessions

GET/api/v1/forms/:id/signing-sessions

Renvoie toutes les sessions de signature d'un formulaire.

Paramètres de requête

statusstring

Filtrer par statut : "active", "fully_signed", "declined", "voided", "expired".

pageinteger

Numéro de page (par défaut : 1)

per_pageinteger

Résultats par page (par défaut : 20)

Réponse

json
{
  "sessions": [
    {
      "id": "ses_abc123def456",
      "status": "active",
      "total_slots": 2,
      "total_signed": 1,
      "signing_order": "sequential",
      "expires_at": "2026-04-25T00:00:00.000Z",
      "created_at": "2026-03-26T10:00:00.000Z"
    }
  ],
  "total": 5,
  "page": 1,
  "per_page": 20
}

Exemples de code

bash
curl -X GET "https://api.nueform.io/api/v1/forms/FORM_ID/signing-sessions?status=active" \
  -H "Authorization: Bearer YOUR_API_KEY"

Obtenir une session

GET/api/v1/signing-sessions/:sessionId

Renvoie une seule session de signature avec tous les détails, y compris les liens de signataires et leurs statuts.

Réponse

Renvoie le même objet de session que le point d'accès de création, avec les statuts et horodatages mis à jour pour chaque lien de signataire.

Exemples de code

bash
curl -X GET "https://api.nueform.io/api/v1/signing-sessions/ses_abc123def456" \
  -H "Authorization: Bearer YOUR_API_KEY"

Annuler une session

POST/api/v1/signing-sessions/:sessionId/void

Annule une session de signature active. Tous les liens de signature en attente sont invalidés. Les parties ayant déjà signé sont notifiées et les PDF reçoivent le filigrane « VOIDED ».

Corps de la requête

reasonstring

Motif de l'annulation de la session.

Réponse

json
{
  "id": "ses_abc123def456",
  "status": "voided",
  "voided_at": "2026-03-27T15:30:00.000Z",
  "void_reason": "Terms changed, new agreement required"
}

Exemples de code

bash
curl -X POST "https://api.nueform.io/api/v1/signing-sessions/ses_abc123def456/void" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason": "Terms changed, new agreement required"}'

Renvoyer une demande de signature

POST/api/v1/signing-sessions/:sessionId/resend/:slotNumber

Renvoie l'e-mail de demande de signature à un signataire précis. Le signataire doit avoir une adresse e-mail configurée.

Réponse

json
{
  "success": true,
  "sent_to": "john@example.com",
  "slot_number": 1
}

Exemples de code

bash
curl -X POST "https://api.nueform.io/api/v1/signing-sessions/ses_abc123def456/resend/1" \
  -H "Authorization: Bearer YOUR_API_KEY"

Lister les documents signés

GET/api/v1/signing-sessions/:sessionId/documents

Renvoie la liste des documents signés d'une session terminée. Chaque document correspond à une question de contrat du formulaire.

Réponse

json
{
  "documents": [
    {
      "id": "doc_xyz789",
      "question_id": "q_abc123",
      "question_title": "Service Agreement",
      "document_url": "https://storage.nueform.io/signed/doc_xyz789.pdf",
      "document_hash": "sha256:a1b2c3d4e5f6...",
      "generated_at": "2026-03-28T12:00:00.000Z"
    }
  ]
}

Exemples de code

bash
curl -X GET "https://api.nueform.io/api/v1/signing-sessions/ses_abc123def456/documents" \
  -H "Authorization: Bearer YOUR_API_KEY"

Obtenir un document signé

GET/api/v1/signing-sessions/:sessionId/documents/:docId

Télécharge un document signé précis sous forme de fichier PDF.

Réponse

Renvoie le fichier PDF avec Content-Type: application/pdf.

Exemples de code

bash
curl -X GET "https://api.nueform.io/api/v1/signing-sessions/ses_abc123/documents/doc_xyz789" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o signed-document.pdf

Obtenir la piste d'audit

GET/api/v1/signing-sessions/:sessionId/audit

Renvoie la piste d'audit complète d'une session de signature, y compris les événements de consultation, les signatures, les refus et les événements système.

Réponse

json
{
  "entries": [
    {
      "id": "aud_001",
      "action": "session_created",
      "timestamp": "2026-03-26T10:00:00.000Z",
      "actor_email": "owner@company.com",
      "ip_address": "192.168.1.1",
      "user_agent": "Chrome 120 / macOS"
    },
    {
      "id": "aud_002",
      "action": "document_viewed",
      "slot_number": 1,
      "actor_email": "john@example.com",
      "timestamp": "2026-03-26T15:44:00.000Z",
      "ip_address": "10.0.0.1",
      "user_agent": "Chrome 120 / macOS"
    },
    {
      "id": "aud_003",
      "action": "signed",
      "slot_number": 1,
      "actor_name": "John Smith",
      "actor_email": "john@example.com",
      "timestamp": "2026-03-26T15:45:00.000Z",
      "ip_address": "10.0.0.1",
      "user_agent": "Chrome 120 / macOS"
    }
  ]
}

Exemples de code

bash
curl -X GET "https://api.nueform.io/api/v1/signing-sessions/ses_abc123def456/audit" \
  -H "Authorization: Bearer YOUR_API_KEY"

Résoudre un code court

GET/api/v1/s/:shortCode

Point d'accès public (aucune authentification requise). Résout un code court de signature vers le contexte de formulaire et de session nécessaire pour afficher l'expérience de signature.

Réponse

json
{
  "form_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "session_id": "ses_abc123def456",
  "slot_number": 1,
  "slot_label": "Buyer",
  "status": "pending",
  "requires_password": true,
  "requires_email_verification": false,
  "signing_order": "sequential",
  "is_turn": true
}

Exemples de code

bash
curl -X GET "https://api.nueform.io/api/v1/s/xK9f2"

Vérifier le mot de passe

POST/api/v1/s/:shortCode/verify-password

Point d'accès public. Vérifie le mot de passe d'une session de signature protégée par mot de passe. Renvoie un jeton d'accès temporaire en cas de succès.

Corps de la requête

passwordstring

Le mot de passe de la session.

Réponse

json
{
  "success": true,
  "access_token": "tmp_abc123..."
}

Réponse d'erreur (401)

json
{
  "error": "Invalid password"
}

Exemples de code

bash
curl -X POST "https://api.nueform.io/api/v1/s/xK9f2/verify-password" \
  -H "Content-Type: application/json" \
  -d '{"password": "mySecretPass123"}'
Dernière mise à jour : 24 août 2026