Documents
Un document est un ou plusieurs PDF envoyés à des personnes pour signature ou pour en recevoir une copie. Il passe de brouillon à envoyé puis à terminé, ou finit refusé, annulé ou expiré.
Points de terminaison · 13
- POST Créer un document à partir d'un téléversement
- POST Créer un document à partir d'une URL
- POST Créer un document à partir d’un modèle
- GET Récupérer un document
- GET Lister les documents
- PATCH Modifier un document
- POST Envoyer un document
- POST Annuler un document
- DELETE Supprimer un brouillon
- GET Télécharger le PDF signé
- GET Télécharger le certificat
- GET Télécharger le dossier de preuves
- POST Imposer ou lever une conservation pour litige
L'objet
| Champ | Saisir | Description |
|---|---|---|
id | string | Identifiant unique, commençant par doc_. |
object | string | Toujours "document". |
status | enum | draft, awaiting_approval, scheduled, sent, finalizing, completed, declined, voided ou expired. |
title | string | Montré aux destinataires et dans la boîte de réception. Par défaut, le nom du premier fichier. |
message | string | Votre message dans le courriel aux destinataires. |
signing_order | enum | sequential (un groupe signing_order après l'autre) ou parallel (tout le monde en même temps). |
files | array | Les PDF, dans l'ordre, chacun avec id (file_…), name, content_type, size et page_count. |
page_count | integer | Pages de tous les fichiers. |
recipients | array | Objets destinataires. Voir Destinataires. |
template_id | string ou null | Le modèle d'où vient ce document. |
folder_id | string ou null | Le classeur où il se trouve. |
labels | array de chaînes | Vos étiquettes, pour filtrer. |
expires_at | timestamp ou null | Après ce moment, personne ne peut signer et le statut devient expired. |
send_at | timestamp ou null | Moment où un document planifié sera envoyé. |
sent_at | timestamp ou null | Quand il est parti. |
completed_at | timestamp ou null | Quand le dernier signataire a signé. |
voided_at | timestamp ou null | Quand il a été annulé. |
void_reason | string ou null | La raison donnée à l'annulation. |
sha256 | string ou null | Empreinte SHA-256 du PDF scellé, une fois terminé. Vérifiez-la avec POST /verify. |
legal_hold | boolean | true tant qu'une conservation légale empêche la politique de conservation de supprimer le dossier. |
reminder_every_days | integer ou null | Rappels automatiques tous les tant de jours, ou null pour aucun. |
owner_id | string | L'utilisateur qui l'a envoyé (usr_…). |
workspace_id | string | Son espace de travail (wsp_…). |
metadata | object | Jusqu'à 20 paires clé-valeur à vous. Clés jusqu'à 40 caractères, valeurs jusqu'à 500. Jamais montrées aux destinataires. |
created_at, updated_at | timestamp | ISO 8601 en UTC. |
/documentsCréer un document à partir d'un téléversement
Téléversez jusqu'à 20 PDF (50 Mo chacun) en multipart/form-data, avec les autres paramètres en JSON dans une partie nommée data. Ajoutez des destinataires et des champs, et envoyez, dans le même appel. Les fichiers sont analysés contre les virus.
| Paramètre | Saisir | Description | |
|---|---|---|---|
Idempotency-Key | en-tête | obligatoire | Une valeur unique pour cette action, de 8 à 200 caractères. Voyez Idempotence. |
file | file | obligatoire | Un PDF. Répétez la partie pour d'autres fichiers; leur ordre est conservé. |
data.title | string | facultatif | Jusqu'à 200 caractères. |
data.message | string | facultatif | Jusqu'à 2 000 caractères. |
data.message_locale | enum | facultatif | en ou fr : la langue des courriels et de la page de signature pour les destinataires sans langue propre. |
data.signing_order | enum | facultatif | sequential (par défaut) ou parallel. |
data.recipients | array | facultatif | Jusqu'à 50. Chacun a name, email, role (signer ou cc, signer par défaut) et, au besoin, key (pour y faire référence dans les champs), signing_order, locale et access_code (un code que vous donnez vous-même au signataire, de 4 à 40 caractères). |
data.fields | array | facultatif | Jusqu'à 500. Mêmes paramètres que Ajouter des champs; recipient peut être la key d'un destinataire ou un courriel. |
data.expires_in_days | integer | facultatif | De 1 à 365. Par défaut, le réglage de l'espace de travail. |
data.reminder_every_days | integer ou null | facultatif | De 1 à 30, ou null pour aucun rappel. Par défaut, le réglage de l'espace de travail. |
data.folder_id | string | facultatif | Un identifiant de classeur. |
data.labels | array | facultatif | Jusqu'à 20 étiquettes, de 40 caractères chacune. |
data.metadata | object | facultatif | Vos propres données clé-valeur. |
data.send | boolean | facultatif | true envoie tout de suite. Par défaut false (un brouillon). |
data.send_at | timestamp | facultatif | Envoyer plus tard, à ce moment. Implique send. |
curl -X POST "https://api.esorasign.com/v1/documents" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F "file=@service-agreement.pdf;type=application/pdf" \
-F 'data={
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"recipients": [
{ "key": "client", "name": "Maya Chen", "email": "maya.chen@example.com" },
{ "name": "Jordan Okafor", "email": "jordan.okafor@example.com", "role": "cc" }
],
"fields": [
{ "recipient": "client", "type": "signature", "page": 6, "x": 0.12, "y": 0.71, "width": 0.3, "height": 0.06 },
{ "recipient": "client", "type": "date_signed", "page": 6, "x": 0.55, "y": 0.73, "width": 0.2, "height": 0.04 }
],
"labels": ["sales"],
"metadata": { "crm_deal_id": "D-10442" },
"send": true
}'
{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "sent",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "sent",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": null,
"voided_at": null,
"void_reason": null,
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}/documentsCréer un document à partir d'une URL
Envoyez du JSON avec file_url (ou files) au lieu de téléverser; nous téléchargeons chaque fichier en HTTPS. Tous les paramètres ci-dessus s'utilisent au premier niveau du JSON.
| Paramètre | Saisir | Description | |
|---|---|---|---|
Idempotency-Key | en-tête | obligatoire | Une valeur unique pour cette action, de 8 à 200 caractères. Voyez Idempotence. |
file_url | string | facultatif | L'URL HTTPS publique d'un PDF. Elle doit répondre en moins de 30 secondes. |
files | array | facultatif | Jusqu'à 20 objets avec file_url, dans l'ordre. |
curl -X POST "https://api.esorasign.com/v1/documents" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"file_url": "https://example.com/files/service-agreement.pdf",
"title": "Service agreement - Northwind",
"recipients": [ { "key": "client", "name": "Maya Chen", "email": "maya.chen@example.com" } ],
"fields": [ { "recipient": "client", "type": "signature", "page": 6, "x": 0.12, "y": 0.71, "width": 0.3, "height": 0.06 } ]
}'{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "draft",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": null,
"send_at": null,
"sent_at": null,
"completed_at": null,
"voided_at": null,
"void_reason": null,
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}/documentsCréer un document à partir d’un modèle
Passez template_id et une personne pour chaque rôle du modèle. Les fichiers, les champs, l'ordre de signature et le message viennent du modèle.
| Paramètre | Saisir | Description | |
|---|---|---|---|
Idempotency-Key | en-tête | obligatoire | Une valeur unique pour cette action, de 8 à 200 caractères. Voyez Idempotence. |
template_id | string | obligatoire | Un identifiant de modèle (tpl_…). |
recipients | array | obligatoire | Un par rôle : template_role, name, email et, au besoin, locale. |
title | string | facultatif | Par défaut, le nom du modèle. |
message | string | facultatif | Par défaut, le message du modèle. |
send | boolean | facultatif | true envoie immédiatement. |
folder_id, labels, metadata, reminder_every_days, send_at | facultatif | Comme ci-dessus. |
curl -X POST "https://api.esorasign.com/v1/documents" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"template_id": "tpl_2zg4mZaouqKLiMcVbpT4r5",
"recipients": [ { "template_role": "Client", "name": "Maya Chen", "email": "maya.chen@example.com" } ],
"send": true
}'{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "sent",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "sent",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": null,
"voided_at": null,
"void_reason": null,
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}/documents/{id}Récupérer un document
Renvoie le document avec ses fichiers et ses destinataires.
Requêtecurl "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "sent",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "sent",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": null,
"voided_at": null,
"void_reason": null,
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}/documentsLister les documents
Les plus récents d'abord. Les filtres peuvent être combinés.
| Paramètre | Saisir | Description | |
|---|---|---|---|
limit | integer | facultatif | Nombre d'objets à renvoyer, de 1 à 100. Par défaut 20. |
starting_after | string | facultatif | Le next_cursor de la page précédente. Omettez-le pour la première page. |
status | string | facultatif | Un statut, ou répétez le paramètre pour plusieurs. |
q | string | facultatif | Recherche dans les titres, et les noms et courriels des destinataires. |
recipient_email | string | facultatif | Documents envoyés à cette adresse. |
label | string | facultatif | Documents portant cette étiquette. |
folder_id | string | facultatif | Documents dans ce dossier. |
template_id | string | facultatif | Documents créés à partir de ce modèle. |
created_after, created_before | timestamp | facultatif | Période de création. |
metadata[key] | string | facultatif | Documents dont la clé de métadonnées est égale à cette valeur. |
curl "https://api.esorasign.com/v1/documents?status=sent&metadata[crm_deal_id]=D-10442" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"object": "list",
"data": [
{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "sent",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "sent",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": null,
"voided_at": null,
"void_reason": null,
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}
],
"has_more": false,
"next_cursor": null
}/documents/{id}Modifier un document
Le titre, le message, l'ordre de signature et l'expiration peuvent changer tant que c'est un brouillon. Le classeur, les étiquettes et les métadonnées peuvent changer en tout temps.
| Paramètre | Saisir | Description | |
|---|---|---|---|
title | string | facultatif | Brouillons seulement. |
message | string | facultatif | Brouillons seulement. |
signing_order | enum | facultatif | Brouillons seulement. |
expires_in_days | integer | facultatif | Brouillons seulement. De 1 à 365. |
folder_id | string ou null | facultatif | null le sort de son classeur. |
labels | array | facultatif | Remplace les étiquettes. |
metadata | object | facultatif | Remplace les métadonnées. |
curl -X PATCH "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "labels": ["sales", "renewal"] }'{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "sent",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "sent",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": null,
"voided_at": null,
"void_reason": null,
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}/documents/{id}/sendEnvoyer un document
Envoie un brouillon, ou le planifie avec send_at. Il doit avoir au moins un signataire, et chaque signataire a besoin d'un champ de signature. Si une règle d'approbation s'applique, le statut devient awaiting_approval et le document part une fois approuvé.
| Paramètre | Saisir | Description | |
|---|---|---|---|
Idempotency-Key | en-tête | obligatoire | Une valeur unique pour cette action, de 8 à 200 caractères. Voyez Idempotence. |
send_at | timestamp | facultatif | Envoyer plus tard, à ce moment. |
curl -X POST "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F/send" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{}'{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "sent",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "sent",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": null,
"voided_at": null,
"void_reason": null,
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}/documents/{id}/voidAnnuler un document
Annule un document en cours de signature. Les liens de signature cessent de fonctionner. Un dossier terminé ne peut pas être annulé.
| Paramètre | Saisir | Description | |
|---|---|---|---|
Idempotency-Key | en-tête | obligatoire | Une valeur unique pour cette action, de 8 à 200 caractères. Voyez Idempotence. |
reason | string | obligatoire | De 3 à 500 caractères. Conservé dans la piste d'audit et renvoyé dans void_reason. |
curl -X POST "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F/void" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "reason": "The pricing changed. A new version is on its way." }'{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "voided",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "voided",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": null,
"voided_at": "2026-11-02T16:20:00.000Z",
"void_reason": "The pricing changed. A new version is on its way.",
"sha256": null,
"legal_hold": false,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}/documents/{id}Supprimer un brouillon
Seuls les brouillons peuvent être supprimés. Les documents envoyés sont des dossiers : annulez-les plutôt.
Requêtecurl -X DELETE "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F" \
-H "Authorization: Bearer $ESORA_API_KEY"{ "id": "doc_3y9Pf34qY6Nb3wWD25RQ4F", "object": "document", "deleted": true }/documents/{id}/downloadTélécharger le PDF signé
Le PDF scellé d'un document terminé (application/pdf). 409 not_completed tant qu'il n'est pas prêt.
Requêtecurl "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F/download" \
-H "Authorization: Bearer $ESORA_API_KEY" -o signed.pdfThe PDF file./documents/{id}/certificateTélécharger le certificat
Le certificat d'achèvement (application/pdf) : qui a signé, quand, comment chaque personne a été vérifiée, et les empreintes.
Requêtecurl "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F/certificate" \
-H "Authorization: Bearer $ESORA_API_KEY" -o certificate.pdfThe PDF file./documents/{id}/evidence-packTélécharger le dossier de preuves
Le manifeste de preuves signé (application/json) : chaque étape, avec les heures, les adresses et les empreintes. Il est conservé même après la suppression des fichiers selon la politique de conservation.
Requêtecurl "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F/evidence-pack" \
-H "Authorization: Bearer $ESORA_API_KEY"The manifest JSON file./documents/{id}/legal-holdImposer ou lever une conservation pour litige
Pendant la conservation légale, la politique de conservation ne supprime pas le dossier.
| Paramètre | Saisir | Description | |
|---|---|---|---|
hold | boolean | obligatoire | true pour placer, false pour lever. |
reason | string | facultatif | Jusqu'à 500 caractères. |
curl -X POST "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F/legal-hold" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "hold": true, "reason": "Contract dispute, matter 2026-118" }'{
"id": "doc_3y9Pf34qY6Nb3wWD25RQ4F",
"object": "document",
"status": "completed",
"title": "Service agreement - Northwind",
"message": "Please review and sign by Friday.",
"signing_order": "sequential",
"files": [
{ "id": "file_5aJXVuLkSIc47WQAmL9xVQ", "name": "Service agreement.pdf", "content_type": "application/pdf", "size": 184211, "page_count": 6 }
],
"page_count": 6,
"recipients": [
{
"id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"object": "recipient",
"name": "Maya Chen",
"email": "maya.chen@example.com",
"role": "signer",
"signing_order": 1,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "signed",
"sent_at": "2026-11-02T14:05:11.000Z",
"viewed_at": null,
"signed_at": "2026-11-03T09:41:27.000Z",
"declined_at": null,
"decline_reason": null
},
{
"id": "rcp_1IQ9Y7aJZqhB6baeCN6Zj4",
"object": "recipient",
"name": "Jordan Okafor",
"email": "jordan.okafor@example.com",
"role": "cc",
"signing_order": 2,
"locale": "en",
"template_role": null,
"access_code": false,
"status": "pending",
"sent_at": null,
"viewed_at": null,
"signed_at": null,
"declined_at": null,
"decline_reason": null
}
],
"template_id": null,
"folder_id": null,
"labels": ["sales"],
"expires_at": "2026-12-02T14:05:11.000Z",
"send_at": null,
"sent_at": "2026-11-02T14:05:11.000Z",
"completed_at": "2026-11-03T09:41:27.000Z",
"voided_at": null,
"void_reason": null,
"sha256": "9f2c4e1b7a03d5f86c2e9b14a7d0f3c58e61b2a49d7c0e3f15a8b6d2c4e9f701",
"legal_hold": true,
"reminder_every_days": 3,
"owner_id": "usr_4tDdO9eGzMcNU77sVTUUJ5",
"workspace_id": "wsp_16lLlGUriAX1DyyXN9iYw1",
"metadata": { "crm_deal_id": "D-10442" },
"created_at": "2026-11-02T14:04:58.000Z",
"updated_at": "2026-11-02T14:05:11.000Z"
}