Centre de Documentation

Guides d'intégration et référence API pour les développeurs.

Intégrez la signature électronique ESIGNGO directement dans vos applications métiers, CRM ou sites web.

Introduction

L'API ESIGNGO est une API RESTful qui utilise le format JSON pour les requêtes et les réponses. Elle permet de créer des demandes de signature, de gérer des documents et de récupérer des preuves.

Base URL : https://esigngo.com/api/v1

Authentification

Toutes les requêtes API doivent être authentifiées à l'aide d'une clé API transmise dans l'en-tête Authorization.

Authorization: Bearer YOUR_API_KEY

Vous pouvez générer et gérer vos clés API depuis l'espace Développeurs.

Endpoints

Documents

POST /create_request

Crée une nouvelle demande de signature.

Structure d'un Signataire
{
    "name": "Jean Dupont",
    "email": "jean@example.com",
    "phone": "+33612345678",       // Requis si auth_mode = "otp"
    "auth_mode": "otp",              // "otp" (SMS) ou "email" (Lien simple)
    "signing_order": 1,              // Ordre de passage (1, 2...)
    "color": "#dbeafe",              // Couleur (Hex)
    "fields": [ ... ]                // Voir section Champs ci-dessous
}
Définition des Champs (Fields)

Chaque champ est positionné en pourcentage (0-100) par rapport à la page.

{
    "type": "signature",  // Voir types supportés
    "page": 1,            // Numéro de page
    "x": 50, "y": 80,     // Position %
    "width": 20,          // Largeur %
    "height": 5,          // Hauteur %
    "config": { ... }     // Config spécifique
}
Types de Champs Supportés
Type Description Configuration (JSON)
signature Zone de signature {"required": true}
initials Paraphe {"required": true}
date Date automatique {"format": "DD/MM/YYYY"}
text Champ texte libre {"text_content": "Label", "required": true}
checkbox Case à cocher {"required": true}
label Texte fixe (Lecture seule) {"text_content": "Texte", "font_size": 12, "color": "#000"}
attachment Upload de pièce jointe {"text_content": "Intitulé", "required": true}
Logique Conditionnelle (Champs)

Vous pouvez masquer/afficher des champs selon la valeur d'un autre champ "Maître".

// 1. Champ Maître (celui qui contrôle)
{
    "type": "checkbox",
    "config": { "uuid": "master_1" } // UUID unique requis
}

// 2. Champ Conditionnel (celui qui est masqué par défaut)
{
    "type": "text",
    "config": {
        "condition": {
            "enabled": true,
            "master_field_uuid": "master_1", // Référence le maître
            "operator": "checked",           // Opérateurs : "equals", "not_equals", "contains", "checked"
            "value": "true"                  // Valeur déclencheur
        }
    }
}
Options Avancées & Sécurité
  • KYC (Vérification d'identité) : Ajoutez "kyc_required": true à la racine de la requête pour forcer la vérification d'identité des signataires. (Inclus dans le plan Complète).
  • Tags (Workflows) : Ajoutez "tags": ["contrat", "hr"] pour déclencher automatiquement les workflows associés.
  • Webhooks : Ajoutez "webhook_url": "https://..." pour recevoir les événements de ce document spécifique.
Exemple Complet
curl -X POST https://esigngo.com/api/v1/create_request \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "filename": "contrat.pdf",
    "file_content": "JVBERi0x...",
    "kyc_required": true,
    "kyc_manual_verify": true, 
    "tags": ["urgent"],
    "signers": [
        {
            "name": "Client",
            "email": "client@email.com",
            "fields": [
                { "type": "signature", "page": 1, "x": 10, "y": 80 },
                { "type": "date", "page": 1, "x": 10, "y": 90 }
            ]
        }
    ]
}'

Workflows (Automatisations)

Gérez vos workflows pour automatiser les actions après signature (Archivage, Email, Webhook).

POST /workflow/create.php

Crée un nouveau workflow d'automatisation.

{
    "name": "Archivage Drive",
    "condition_tag": "archive_drive",  // Se déclenche si le document a ce tag
    "actions": [
        {
            "type": "send_email",
            "config": { "recipient": "archive@entreprise.com", "subject": "Nouveau contrat signé" }
        }
        // Autres types : "archive_s3", "webhook", "ftp_upload"...
    ]
}
POST /workflow/update.php

Met à jour un workflow existant (Remplace les actions).

{
    "id": 15,
    "name": "Archivage Drive V2",
    "condition_tag": "archive_drive_v2",
    "actions": [ ... ]
}
GET /workflow/list.php

Récupère la liste des workflows configurés.

POST /workflow/toggle.php

Active ou désactive un workflow.

{ "id": 10, "is_active": true }
POST /workflow/delete.php

Supprime un workflow.

{ "id": 10 }

Modèles

POST /use_template.php

Utilise un modèle pour créer une nouvelle demande.

{
    "id": 5,
    "signers": [ { "role": "Client", "name": "M. Smith", "email": "smith@test.com" } ]
}
POST /delete_template.php

Supprime un modèle existant.

{ "id": 5 }

Webhooks

Les webhooks vous permettent d'être notifié automatiquement lorsque des événements surviennent sur vos documents.

Vous pouvez configurer votre URL de webhook dans l'espace Développeurs.

Événements supportés
  • signer.signed : Déclenché lorsqu'un signataire a signé.
  • document.completed : Déclenché lorsque tous les signataires ont signé.
Format du Payload (POST)
{
    "event": "document.completed",
    "timestamp": 1634567890,
    "data": {
        "document_id": 123,
        "status": "completed",
        "download_url": "https://esigngo.com/download?id=123&type=final"
    }
}
Sécurité

Chaque requête webhook inclut un header X-Esigngo-Signature qui est un HMAC SHA256 du payload JSON signé avec votre clé secrète de webhook.