> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API de signature électronique : signer des documents après le KYC

> Faites signer des documents PDF et Word via Didit lors de la vérification, aux niveaux simple ou avancé (AES).

La Signature électronique permet à une personne de signer vos documents au sein du même parcours. Elle consulte chaque document, y ajoute sa signature, ses initiales ainsi que toutes les données que vous demandez et, au niveau Avancé (AES), confirme au moyen d'un code à usage unique envoyé à l'e-mail ou au numéro de téléphone vérifié précédemment. Didit renvoie chaque document signé, accompagné d'un PDF de preuve qui consigne l'identité du signataire et les modalités de signature.La Signature électronique comprend trois niveaux. Le niveau **Simple** est le niveau par défaut et ne requiert aucune vérification d'identité, ni e-mail ou téléphone. Le niveau **Avancé (AES)** exige une vérification d'identité approuvée ainsi qu'un e-mail ou un téléphone vérifié, et associe la signature à l'identité vérifiée. Le niveau **Qualifié (QES)** est une option supplémentaire qui n'est pas encore disponible. Consultez [Niveaux de signature](#niveaux-de-signature).Elle fonctionne pour la Vérification des utilisateurs (KYC), où la personne vérifiée signe elle-même, ainsi que pour la Vérification d'entreprise (KYB), où les représentants légaux ou les personnes clés de l'entreprise signent en son nom.

Prompt d'intégration de la Signature électronique
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`Goal:
Add Didit E-signature to a verification workflow: the verified person (KYC) or a company's representatives (KYB) sign PDF or Word documents inside the Didit flow, and your backend receives the signed PDFs and the evidence.

Delivery mode:
E-signature is a workflow step (feature SIGNATURE). There is no standalone signing API: the signer signs inside the hosted Didit flow, the Web SDK or a native SDK.

Prerequisites in the workflow (Advanced (AES) level only; the default Simple level needs no earlier step and no code):
\- KYC: an ID Verification step before the signature step (the signer's identity must be Approved), plus Email Verification (email codes, the default) or Phone Verification (SMS codes) so the code goes to a verified contact. If the workflow has Liveness, it must be Approved too.
\- KYB: a Key People step whose people complete their own KYC with the same prerequisites. signature_signer "legal_representative" picks the key people with the role representative or authorized_signatory; "key_people" picks every eligible key person (1 to 20 signers). For these KYB signers always set signature_level to "aes": "simple" is refused with signature_simple_requires_verified_person, so the workflow cannot be saved.

Steps:
1\. Add the E-signature step to the workflow in the Business Console (or POST /v3/workflows/ with {"feature": "SIGNATURE", "config": {...}}). Upload the documents in the console, or set signature_documents_source to "session" (or "both") to send them per session.
2\. Optional: place fields on each document: signature, initials, full_name, date_signed, text, checkbox, email and read-only data. Workflow documents get their fields in the console's template editor. Session documents carry them in sign.documents[].fields, placed by page and position or by anchor text. Every field has a key; a field with prefill "api.<key>" takes its value from sign.field_values.
3\. Create a session. For per-session documents, send sign.documents with base64 content:

curl -X POST 'https://verification.didit.me/v3/session/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"workflow_id": "YOUR_WORKFLOW_ID",
"vendor_data": "user-1234",
"sign": {
  "documents": [
    \{
      "title": "Account agreement",
      "file_name": "agreement.pdf",
      "content_base64": "<base64 of the PDF>",
      "fields": [
        \{ "key": "signature", "type": "signature", "page": 3, "x": 0.09, "y": 0.62, "width": 0.36, "height": 0.085 },
        \{ "key": "credit_limit", "type": "data", "page": 1, "x": 0.34, "y": 0.31, "width": 0.3, "height": 0.03, "prefill": "api.credit_limit" }
      ]
    }
  ],
  "field_values": { "credit_limit": "3,000 EUR" }
}
}'

4\. Send the user to session.url (or open it with the Web or native SDK). Documents with fields need a native SDK release that supports fields; the hosted page and the Web SDK always do.
5\. Wait for the status.updated webhook, then GET /v3/session/{session_id}/decision/.

Decision surface:
signatures[] (one item per signer and signature step). Read:
\- status: the signing stage (intro, review, code, signing, signed, declined).
\- verdict: Not Finished | Approved | In Review | Declined.
\- level ("simple" or "aes"), format ("pdf" for simple, "pades" for aes), profile ("PAdES-B-LT" once an aes step is signed, otherwise null).
\- signer, identity_used, confirmation, certificate, timestamp, adopted_signature, electronic_signature_consent_at.
\- documents[]: mode ("fields" or "read_and_agree"), sha256_original, sha256_signed, status, signed_file (download path), source_format, conversion, fields[] (key, type, value, display_value, value_source, filled_at, image_url).
\- evidence_file (download path), warnings[] ({code, node_id}).

Downloads (x-api-key works):
\- GET /v3/session/{session_id}/signatures/{node_id}/documents/{document_id}/file/ -> signed PDF
\- GET /v3/session/{session_id}/signatures/{node_id}/evidence/?signature_id={id} -> evidence PDF
\- GET /v3/session/{session_id}/signatures/{node_id}/fields/{field_id}/image/ -> applied signature or initials (PNG); use the image_url of the field
\- POST /v3/session/{session_id}/signatures/{node_id}/validate/ -> re-checks the stored signatures

Warnings:
SIGNATURE_DECLINED (default REVIEW), SIGNATURE_OTP_FAILED, SIGNATURE_NAME_MISMATCH, SIGNATURE_IDENTITY_NOT_VERIFIED, SIGNATURE_DOCUMENT_CHANGED (default DECLINE). Each maps to a signature_*_action setting.

Rules:
\- Level: "simple" (default) or "aes". "qes" is an add-on that is not available yet and saving it returns 400 qes_not_available. While signature_availability.aes is false on the workflow, saving a new "aes" step returns 400 aes_not_available.
\- PDF: up to 20 MB and 100 pages each, no password, scripts or attachments. Up to 20 documents and 50 MB per signer.
\- Word: .docx only (.doc, .docm, .odt and .rtf are refused with unsupported_type), up to 20 MB, converted to PDF while the upload or create-session request runs. Fields refer to the converted pages. Macros, tracked changes, external links and embedded objects are refused with signature_document_not_supported; a file that can't be converted returns signature_document_conversion_failed. Both carry a reason.
\- Fields: key matches ^[a-z][a-z0-9_]{0,63}$ and is unique in its document; role defaults to the step's signer; up to 200 fields per document and 500 per signer. Every role with fields on a document needs a signature or initials field. There is no date picker type: use text.
\- Never show success until status is "signed". That is the check at every level. For an aes signature a null certificate, timestamp or signed_file also means "not signed"; a signed simple signature has a signed_file but a null certificate and timestamp.

See also:
\- /core-technology/electronic-signature/report-electronic-signature
\- /core-technology/electronic-signature/warnings-electronic-signature
\- /management-api/workflows/feature-configs#e-signature`

\</pre>



      
      

Coller dans

## Niveaux de signature| Niveau | Exigences | Description |
| - | - | - |
| **Simple** | Par défaut. Aucune vérification d'identité, aucun e-mail ou téléphone requis | La personne signe via le lien de la session sans vérification d'identité, e-mail, téléphone ni code. Si la session contient déjà un nom vérifié, celui-ci est utilisé ; dans le cas contraire, elle saisit son nom, et la signature ainsi que le rapport indiquent que le nom a été saisi et non vérifié. Toute personne disposant du lien de session peut signer : privilégiez donc le niveau Simple pour les accords à faible risque ; les contrats réglementés ou à forte valeur doivent utiliser le niveau Avancé (AES). Le fichier signé est un PDF accompagné d'une page de preuve et ne comporte aucune signature numérique, aucun cachet ni horodatage. Didit conserve le SHA-256 de l'enregistrement et de chaque fichier signé, de sorte que toute modification ultérieure est détectable. |
| **Avancé (AES)**, signature électronique avancée | Une vérification d'identité approuvée et un e-mail ou un téléphone vérifié dans la même session | Chaque document est signé au format PAdES, le format de signature PDF, avec un profil de validation à long terme (`PAdES-B-LT`) : la signature intègre un horodatage RFC 3161 émis par Didit ainsi que les données de révocation nécessaires pour la valider ultérieurement. Elle est liée de manière unique au signataire grâce à son identité vérifiée et au code à usage unique qu'il a confirmé, et toute modification apportée au document après la signature l'invalide. |
| **Qualifié (QES)**, signature électronique qualifiée | Option supplémentaire, pas encore disponible | Serait signée avec un certificat qualifié délivré au signataire. La console affiche cette option sous la mention **Prochainement**, et l'enregistrement de `signature_level: "qes"` via l'API renvoie une erreur `400` avec `qes_not_available`. Elle n'est jamais remplacée silencieusement par AES. |Le niveau Avancé (AES) applique uniquement la signature en PAdES. Les valeurs de `signature_format` `xades` et `cades` sont refusées pour AES avec `signature_format_not_supported`. Vérifiez `signature_availability` sur le workflow avant d'enregistrer une étape AES : tant que `aes` est à `false`, l'enregistrement d'une nouvelle étape renvoie `400` avec `aes_not_available`.## Fonctionnement**1. Pour le niveau Avancé (AES), le workflow vérifie d'abord le signataire**Au niveau Avancé (AES), l'étape de signature s'exécute après les étapes qui établissent l'identité du signataire : la Vérification d'identité, et la Vérification de l'e-mail ou la Vérification du téléphone pour le point de contact auquel le code est envoyé. Consultez [Avant de commencer](#avant-de-commencer). Le niveau Simple ne requiert aucune étape préalable.**2. Didit prépare les documents**Lorsque le signataire atteint l'étape, Didit copie les documents et leurs champs dans la session et enregistre le SHA-256 de chaque document. Les modifications ultérieures apportées au workflow ne peuvent pas modifier ce que voit ce signataire.**3. Le signataire consulte chaque document**Pour un document comportant des champs, le signataire est guidé de champ en champ. Il définit sa signature une seule fois, puis elle est appliquée à chaque champ de signature et d'initiales, et il remplit les champs de texte et les cases à cocher. Les valeurs que Didit extrait de l'identité vérifiée, de la session ou de votre système sont déjà renseignées sur la page. Pour un document sans champs, il le lit et l'approuve.**4. Pour le niveau Avancé (AES), le signataire confirme avec un code**Lorsqu'un document comporte des champs, le signataire accepte d'abord de signer les documents par voie électronique. Au niveau Avancé (AES), Didit envoie ensuite un code à six chiffres à l'e-mail ou au téléphone vérifié plus tôt dans la session, et sa saisie autorise la signature sur chaque document de l'étape. Au niveau Simple, il n'y a pas de code : c'est l'acceptation qui autorise la signature.**5. Didit signe et scelle**Didit renseigne la date de signature, appose la valeur de chaque champ sur chaque PDF et ajoute la page de preuve. Au niveau Avancé (AES), Didit applique ensuite la signature PAdES et l'horodatage, de sorte que la signature couvre l'ensemble des éléments de la page. Au niveau Simple, le fichier est un PDF accompagné de la page de preuve, sans signature numérique, cachet ni horodatage.**6. Vous recevez les résultats**La décision et les webhooks de session contiennent `signatures[]` avec le signataire, la confirmation, le certificat, l'horodatage, les hachages de chaque document et la valeur de chaque champ. Vous téléchargez les PDF signés ainsi que le PDF de preuve, et Didit peut envoyer une copie par e-mail au signataire.## Avant de commencerAu niveau Avancé (AES), le signataire doit être vérifié avant de pouvoir signer. Didit extrait son nom et ses coordonnées directement des enregistrements vérifiés de la session, jamais de ce que vous ou le signataire saisissez. Le niveau Simple ne nécessite rien de tout cela : il ne comporte aucune vérification d'identité, d'e-mail ou de téléphone, ni aucun code, et il est refusé pour les signataires KYB.**Pour la Vérification des utilisateurs (KYC)**, placez ces étapes avant la Signature électronique dans le workflow :- **Vérification d'identité**, approuvée, avec un nom lisible. Sans cela, l'étape enregistre `SIGNATURE_IDENTITY_NOT_VERIFIED`.
- **Vérification de l'e-mail** lorsque le code est envoyé par e-mail (par défaut), ou **Vérification du téléphone** lorsqu'il est envoyé par SMS. Le code est uniquement envoyé à un contact vérifié au sein de la même session.
- Si le workflow comporte également la **Détection du vivant**, celle-ci doit être approuvée.Pour envoyer par e-mail une copie des documents signés au signataire, la session doit également disposer d'un e-mail vérifié, même lorsque le code est envoyé par SMS.**Pour la Vérification d'entreprise (KYB)**, les signataires sont les personnes clés de l'entreprise, chacune disposant de son propre KYC approuvé :| `signature_signer` | Qui signe |
| - | - |
| `legal_representative` | Chaque personne clé ayant le rôle `representative` ou `authorized_signatory` |
| `key_people` | Chaque personne clé qui est une personne physique et dispose d'une session KYC |Une étape KYB compte entre 1 et 20 signataires, et chacun doit avoir un KYC approuvé au moment de signer. Chacun signe son propre exemplaire des documents et confirme avec un code envoyé au contact vérifié dans sa propre session KYC. Le nom déclaré pour la personne clé doit correspondre à son nom vérifié, sans tenir compte de la casse ni des espaces, faute de quoi l'étape enregistre `SIGNATURE_NAME_MISMATCH`. L'étape se termine une fois que chaque signataire a signé ou refusé.## Documents### D'où proviennent les documents`signature_documents_source` définit où une étape obtient ses documents :| Valeur | Documents |
| - | - |
| `workflow` (par défaut) | Les documents que vous avez importés dans le workflow dans la console. Chaque session signe les mêmes. |
| `session` | Les documents que vous envoyez dans `sign.documents` lorsque vous [créez la session](https://docs.didit.me/fr/sessions-api/create-session.md#documents-de-signature-électronique). Chaque session signe les siens. |
| `both` | Les documents du workflow d'abord, puis ceux de la session. |Les documents par session permettent de faire signer à une personne un contrat dont le nom, le montant ou les conditions ont déjà été renseignés par votre système.### Fichiers pris en charge| | Limite |
| - | - |
| PDF | Jusqu'à 20 Mo et 100 pages chacun. Aucun mot de passe, script ou fichier joint. |
| Word (`.docx`) | Jusqu'à 20 Mo. Converti en PDF lors de son importation ou de la création de la session, et le PDF converti est soumis aux mêmes limites qu'un PDF. Les fichiers `.doc`, `.docm`, `.odt` et `.rtf` sont refusés avec `unsupported_type`. |
| Par signataire | Jusqu'à 20 documents et 50 Mo au total. |Lorsque vous importez un document Word, Didit le convertit en PDF pendant l'importation, en 60 secondes au maximum. Les pages converties correspondent à ce que le signataire voit et signe, vérifiez-les donc avant de positionner des champs : les sauts de ligne peuvent différer légèrement de Word. Le fichier Word et son PDF appartiennent au même document et sont supprimés avec lui. Le PDF de preuve enregistre la conversion et le SHA-256 des deux fichiers.Didit refuse un fichier Word avec `signature_document_not_supported` et un motif `reason` lorsque ce qui serait signé est ambigu : il contient des macros (`macros`), des révisions non acceptées (`tracked_changes`), des liens vers du contenu externe (`external_links`) ou des objets incorporés (`embedded_objects`). Acceptez ou rejetez les révisions avant l'importation, afin que le PDF présente le texte sur lequel vous vous êtes accordés.Un fichier qui ne peut pas être converti est refusé avec `signature_document_conversion_failed` et l'un de ces motifs :| `reason` | Problème rencontré |
| - | - |
| `docx_password_protected` | Le fichier est protégé par un mot de passe. Supprimez-le et réimportez le fichier. |
| `docx_unreadable` | Le fichier n'est pas un document Word lisible. |
| `docx_too_many_pages` | Le PDF converti contient plus de 100 pages. |
| `docx_too_large` | Le fichier est trop volumineux pour être converti. |
| `conversion_timeout` | La conversion a pris trop de temps. Réessayez ou importez le document au format PDF. |### Champs sur le documentLes champs transforment un document en modèle que le signataire remplit, de la même manière que vous prépareriez une enveloppe dans un outil de signature bureautique. Un document sans champs conserve le parcours le plus simple : le signataire le lit et l'approuve.| Type | Action du signataire | Valeur |
| - | - | - |
| `signature` | Appuie dessus pour apposer sa signature adoptée. Le premier champ de signature ou de paraphe ouvre l'étape au cours de laquelle il l'adopte. | `true` une fois apposée |
| `initials` | Appuie dessus pour apposer son paraphe adopté. | `true` une fois apposé |
| `text` | Saisit une valeur, vérifiée par rapport à la [validation](#validation) du champ. Il peut être prérempli. | Chaîne de caractères |
| `checkbox` | La coche ou la décoche. Une case à cocher obligatoire doit être cochée. | Booléen |
| `email` | Rien lorsque la session dispose d'un e-mail vérifié, qui le remplit en lecture seule. Sinon, le saisit. | Chaîne de caractères |
| `full_name` | Rien : Didit renseigne le nom complet vérifié, en lecture seule. | Chaîne de caractères |
| `date_signed` | Rien : Didit renseigne la date de signature des documents. | Chaîne de caractères |
| `data` | Rien : Didit renseigne une valeur issue de l'identité vérifiée, de la session ou de votre système, en lecture seule. Définissez sa provenance dans `prefill`. | Chaîne de caractères |Il n'y a pas de sélecteur de date dans cette version. Utilisez un champ `text` pour une date saisie par le signataire.Un champ possède ces propriétés :| Propriété | Règles |
| - | - |
| `id` | Défini par Didit. |
| `key` | Nomme le champ dans les résultats et dans `sign.field_values`. Lettres minuscules, chiffres et traits de soulignement, commençant par une lettre, jusqu'à 64 caractères (`^[a-z][a-z0-9_]{0,63}$`), et unique au sein du document. |
| `type` | L'un des types ci-dessus. |
| `role` | Qui le remplit, avec les valeurs de `signature_signer` : `verified_person`, `legal_representative` ou `key_people`. Sur un document de session, sa valeur par défaut est le signataire de l'étape. |
| `page` | De 1 au nombre total de pages du document. Pour un document Word, une page du PDF converti. |
| `x`, `y`, `width`, `height` | Fractions de la page telle qu'elle est affichée (de `0` à `1`), mesurées depuis le coin supérieur gauche et arrondies à 4 décimales. Le champ doit s'insérer dans la page. Il mesure au moins `0.02` de large et `0.012` de haut, et une signature au moins `0.12` de large sur `0.035` de haut. |
| `required` | `signature` et `initials` sont obligatoires sauf si vous définissez `false`. `full_name`, `date_signed` et `data` sont toujours obligatoires. |
| `label` | 1 à 80 caractères, affiché au signataire et dans les résultats. |
| `placeholder` | `text` et `email` uniquement. Jusqu'à 80 caractères. |
| `position` | L'ordre dans lequel le signataire est guidé, à partir de `0`. Didit le définit en fonction de l'emplacement du champ : par page, puis de haut en bas, puis de gauche à droite. |
| `validation` | `text` uniquement. Voir [Validation](#validation). |
| `prefill` | D'où provient la valeur. Voir [Valeurs préremplies](#valeurs-pré-remplies). |
| `editable_when_prefilled` | `text` et `email` uniquement : le signataire peut modifier une valeur préremplie. Par défaut `false`. |
| `checked_by_default` | `checkbox` uniquement : la case est cochée au départ. |
| `date_format` | `date_signed` uniquement : `DD/MM/YYYY` (par défaut), `MM/DD/YYYY`, `YYYY-MM-DD` ou `D MMMM YYYY`. |```json theme={null}
{
  "id": "6a2f1c0e-4d8b-4f5e-9a51-0c7b2e9d3f10",
  "key": "occupation",
  "type": "text",
  "role": "verified_person",
  "page": 1,
  "x": 0.34,
  "y": 0.4618,
  "width": 0.57,
  "height": 0.0325,
  "required": true,
  "label": "Occupation",
  "placeholder": "For example, nurse",
  "position": 5,
  "validation": { "kind": "any", "min_length": 0, "max_length": 80, "pattern": null, "message": null },
  "prefill": null,
  "editable_when_prefilled": false,
  "checked_by_default": false,
  "date_format": null
}
```Un document accepte jusqu'à 200 champs, et un signataire jusqu'à 500 sur l'ensemble de ses documents.Une étape ne remplit et n'appose que les champs de son propre signataire. Un document ne peut comporter des champs pour plusieurs rôles que lorsque plusieurs étapes Signature du workflow l'utilisent : chaque étape remplit les champs de son propre rôle et laisse les autres vides sur son exemplaire. Un champ associé à un rôle qu'aucune étape Signature du workflow n'utilise est refusé avec `role_not_used`. Chaque rôle possédant des champs sur un document doit comporter au moins un champ `signature` ou `initials` sur celui-ci, sans quoi la version du workflow ne peut pas être publiée (`signature_field_missing`).#### Validation`validation` s'applique aux champs `text` :```json theme={null}
{ "kind": "any", "min_length": 0, "max_length": 80, "pattern": null, "message": null }
```- `kind` : `any` ; `letters` (lettres dans n'importe quel système d'écriture, espaces, traits d'union et apostrophes) ; `number` (chiffres avec un séparateur décimal facultatif) ; `email` ; ou `pattern`.
- `min_length` : de `0` jusqu'à `max_length`.
- `max_length` : de `1` à `500`. Valeur par défaut `120`.
- `pattern` : obligatoire avec `kind: "pattern"`. Une expression régulière de 200 caractères maximum à laquelle la valeur entière doit correspondre. Les lookarounds et les backreferences ne sont pas pris en charge.
- `message` : jusqu'à 120 caractères, affiché à la place de l'erreur par défaut.L'aperçu dans la console, le flux de signature et l'API appliquent les mêmes règles.#### Valeurs pré-remplies`prefill` indique la source de la valeur d'un champ :| `prefill` | Valeur |
| - | - |
| `identity.full_name`, `identity.first_name`, `identity.last_name` | Le nom tel qu'il figure sur la pièce d'identité vérifiée du signataire. |
| `identity.date_of_birth` | Issu de la pièce d'identité vérifiée, au format `DD/MM/YYYY`. |
| `identity.nationality`, `identity.document_number`, `identity.document_type`, `identity.issuing_country` | Issu de la pièce d'identité vérifiée. |
| `identity.address` | L'adresse formatée issue de la pièce d'identité vérifiée, ou d'un justificatif de domicile dans la même session. |
| `contact.email`, `contact.phone` | L'e-mail ou le téléphone vérifié du signataire. |
| `company.name`, `company.registration_number`, `company.address`, `company.country` | L'entreprise vérifiée, pour le KYB. |
| `session.vendor_data` | Le `vendor_data` de la session. |
| `metadata.<key>` | La valeur de `<key>` dans les `metadata` de la session, sous forme de chaîne de caractères. |
| `api.<key>` | La valeur de `<key>` dans `sign.field_values`, envoyée lorsque vous [créez la session](https://docs.didit.me/fr/sessions-api/create-session.md#valeurs-des-champs). |Un champ `data` doit comporter un `prefill`. Un champ `full_name` utilise toujours `identity.full_name` et un champ `email` utilise `contact.email`, et un champ `text` peut également en comporter un. Les valeurs des champs `data`, `full_name` et `email` vérifiés sont figées lorsque le signataire commence à signer : les modifications ultérieures apportées à la session ne les modifient pas. Un champ `text` ou `email` pré-rempli est en lecture seule, sauf si vous définissez `editable_when_prefilled`.Lorsque la source d'un champ obligatoire n'a pas de valeur à ce moment-là, par exemple dans une session sans adresse, le champ reste vide et le signataire peut tout de même signer. Aucun avertissement n'est émis, et `value_unavailable_reason` dans le [rapport](https://docs.didit.me/fr/core-technology/electronic-signature/report-electronic-signature.md) en indique la raison.## Configuration dans la console1) Accédez à **Workflows**, ouvrez un workflow et ajoutez l'étape **Signature électronique** après les étapes qui vérifient le signataire.
2) Dans **Documents**, sélectionnez **Téléverser** pour ajouter des fichiers PDF ou Word, puis faites-les glisser dans l'ordre dans lequel le signataire les verra. Les fichiers Word sont convertis en PDF : vérifiez les pages converties avant de placer des champs. **Remplacer** remplace le fichier d'un document et conserve ses champs, à l'exception de ceux situés sur des pages que le nouveau fichier ne contient plus.
3) Sous **Placez les champs sur les documents**, sélectionnez **Ouvrir l'éditeur**. Faites glisser un champ depuis la palette sur la page, ou sélectionnez-le et cliquez à l'endroit voulu, puis déplacez-le et redimensionnez-le. Pour chaque champ, définissez **Qui le remplit**, son libellé, s'il est **Obligatoire**, ce qu'il accepte, d'où provient sa valeur et sa **Clé API** (le `key` du champ). **Aperçu côté signataire** affiche le document tel que le signataire le voit sur mobile ou ordinateur. L'éditeur enregistre automatiquement vos modifications (**Enregistré dans le brouillon**) et liste les éléments à corriger avant de sélectionner **Terminé**.
4) Toujours dans **Documents**, choisissez la provenance des documents : **Ce workflow**, **Chaque session** ou **Les deux**. Pour les documents sans champs, choisissez si le signataire doit **Lire jusqu'à la fin avant de signer** et donner **Un consentement par document**.
5) Dans **Signature**, choisissez le **Signataire**, le **Niveau** (**Simple**, par défaut, ou **Avancé (AES)** ; **Qualifié (QES)** s'affiche comme **Prochainement**), le **Format** et le canal de réception du code (**Code à usage unique par**).
6) Dans **Règles**, définissez l'impact de chaque [avertissement](https://docs.didit.me/fr/core-technology/electronic-signature/warnings-electronic-signature.md) sur le verdict.
7) Dans **Avancé**, choisissez si vous souhaitez **Envoyer la copie signée par e-mail** et **Ajouter une page de preuves**, ainsi que le nombre de jours pendant lesquels le lien de signature reste valide. Vous pouvez également ajouter des règles de statut personnalisées.
8) Enregistrez le workflow.Pour configurer la même étape via l'API, consultez [Configurations des fonctionnalités de workflow](https://docs.didit.me/fr/management-api/workflows/feature-configs.md#signature-électronique). Les documents de workflow et leurs champs sont gérés dans la console ; via l'API, envoyez les documents et les champs par session.## L'expérience de signatureL'étape de signature s'exécute sur la page de vérification hébergée, dans le [Web SDK](https://docs.didit.me/fr/integration/web-sdks/overview.md) et dans les [SDK natifs](https://docs.didit.me/fr/integration/native-sdks/overview.md), sur ordinateur comme sur mobile. Vous n'avez aucune interface utilisateur de signature à développer.1) **Introduction.** Le signataire consulte les documents qu'il s'apprête à signer.
2) **Chaque document, dans l'ordre.** Pour un document comportant des champs, le signataire est guidé à travers ses champs dans l'ordre de `position`. Le premier champ de signature ou de paraphe ouvre un volet dans lequel il [adopte une signature](#adopter-une-signature). Les champs facultatifs portent la mention **Facultatif**. Les valeurs préremplies par Didit s'affichent sur la page accompagnées d'un cadenas et ne constituent pas des étapes. Appuyer sur un champ sur la page permet d'y accéder directement. Sur mobile, les champs s'affichent un par un dans un volet maintenu au-dessus du clavier. Sur un écran d'au moins 1200 px de large, la page s'affiche à côté de la liste des champs. Terminer un document alors qu'un champ obligatoire est encore vide indique le nombre de champs restants et renvoie au premier. Un document sans champ est lu et accepté selon votre configuration.
3) **Examen.** Le signataire consulte à nouveau les documents et, si l'un d'eux comporte des champs, accepte de les signer électroniquement.
4) **Code (Advanced (AES) uniquement).** Le signataire demande son code. Il est valable pendant 5 minutes, un nouveau code peut être envoyé après 60 secondes, et le signataire a droit à un maximum de 5 codes et 3 tentatives erronées. Lorsque l'une de ces limites est atteinte, `SIGNATURE_OTP_FAILED` est enregistré. Au niveau Simple, il n'y a pas de code : le signataire passe directement de l'examen à la signature.
5) **Signé.** Après la signature, le signataire peut télécharger ses documents signés. Si vous avez activé cette option, Didit lui envoie également une copie par e-mail.
6) **Refus.** Le signataire peut refuser au lieu de signer. Cela enregistre `SIGNATURE_DECLINED`. Un refus peut être rouvert tant que le lien de signature est valide, permettant ainsi au signataire de signer s'il change d'avis.Le flux informe le signataire lorsque son code a expiré, qu'un document a été modifié, que la signature a échoué ou que le lien de signature a expiré.Le lien de signature reste valide pendant `signature_link_validity_days` (de 1 à 30, par défaut 7), à compter de la création de la session. La session reste ouverte au moins pendant cette durée.> [!NOTE]
>
> Les SDK natifs affichent l'étape de signature à partir de la version qui l'intègre, répertoriée dans la [vue d'ensemble des SDK natifs](https://docs.didit.me/fr/integration/native-sdks/overview.md) dès sa disponibilité. Les documents avec des champs nécessitent une version prenant en charge les champs : une version antérieure ne peut pas les afficher et l'étape présente une erreur à la place. Les documents sans champs fonctionnent avec toutes les versions incluant l'étape de signature. Tant que votre application n'exécute pas une version prenant en charge ce que votre workflow utilise, redirigez les utilisateurs vers la page hébergée ou le Web SDK.### Adopter une signatureLe signataire adopte sa signature et ses initiales une seule fois, dans un volet unique, la première fois qu'un document requiert l'une ou l'autre :- **Saisie** : son nom vérifié dans un style manuscrit de son choix, marqué **Depuis votre pièce d'identité**. Il ne peut pas saisir un autre nom. Les initiales saisies correspondent aux premières lettres de ce nom.
- **Tracée** : la signature et les initiales sont tracées avec le doigt ou la souris.Chaque champ de signature ou d'initiales ultérieur s'applique en un clic ou appui, et cliquer ou appuyer sur un champ déjà appliqué permet de le retirer.## RésultatsLe résultat de chaque signataire est un élément de `signatures[]` dans la [décision de la session](https://docs.didit.me/fr/sessions-api/retrieve-session.md) et dans la `decision` des [webhooks de session](https://docs.didit.me/fr/integration/webhooks.md). Il n'existe pas de webhook de signature distinct : l'événement `status.updated` de la session vous indique quand récupérer la décision.Vous obtenez le PDF signé de chaque document, un PDF de preuve pour chaque signataire, ainsi que le SHA-256 de chaque fichier original et signé, afin de pouvoir prouver ultérieurement que rien n'a été modifié. Pour les documents comportant des champs, vous recevez également la valeur de chaque champ, sa provenance et l'heure à laquelle il a été renseigné, en plus de la signature adoptée et du moment où le signataire a accepté de signer électroniquement. Consultez le [Rapport de signature électronique](https://docs.didit.me/fr/core-technology/electronic-signature/report-electronic-signature.md) pour découvrir chaque champ, les téléchargements et la procédure pour revalider une signature.Dans la console, l'onglet **Signature** de la session affiche les documents, puis un bloc **Champs** avec un aperçu de chaque page, la signature et les initiales adoptées, ainsi que la valeur, l'horodatage et la source de chaque champ. Le [rapport PDF](https://docs.didit.me/fr/sessions-api/generate-pdf.md) comprend une section de signature, ainsi qu'une page **Signature électronique · champs** lorsque les documents contiennent des champs.## TarifsLa signature électronique coûte \$0.10 par session signée, inclus dans votre crédit gratuit, quel que soit le nombre de documents lors d'une signature et quel que soit le niveau, Simple ou Advanced (AES). Une signature qui est refusée, échoue ou expire n'est pas facturée. Qualifiée (QES) est une option complémentaire qui n'est pas encore disponible et n'a pas de tarif fixé.## Suppression des données de signatureLorsque vous [supprimez une session](https://docs.didit.me/fr/sessions-api/delete-session.md), ses données de signature sont supprimées avec elle : les documents envoyés avec la session et leurs fichiers Word d'origine, les copies préparées pour chaque signataire, les PDF signés, les PDF de preuve, les images de la signature et des initiales adoptées, ainsi que la valeur de chaque champ. Leurs liens de téléchargement cessent de fonctionner. Il en va de même lorsqu'une session est supprimée au terme de votre durée de conservation des données. La suppression est irréversible ; téléchargez donc au préalable tout ce que vous devez conserver.- Les documents signés d'une Vérification d'entreprise (KYB) appartiennent à la session de l'entreprise. La suppression de cette session entraîne leur suppression.
- Retirer un document d'un workflow le supprime, avec ses champs et son fichier Word d'origine. Un signataire ayant déjà commencé à signer conserve la copie qui lui a été présentée, dans le cadre de sa session, jusqu'à ce que vous supprimiez cette session. Ne retirez des documents que des workflows sans sessions en attente de signature.
- Une copie que Didit a déjà envoyée par e-mail au signataire se trouve dans sa boîte de réception et n'est pas affectée.## Voir aussi- [Rapport de signature électronique](https://docs.didit.me/fr/core-technology/electronic-signature/report-electronic-signature.md) : `signatures[]`, le PDF signé, le PDF de preuve et les téléchargements.
- [Avertissements de signature électronique](https://docs.didit.me/fr/core-technology/electronic-signature/warnings-electronic-signature.md) : chaque avertissement et la règle qui le contrôle.
- [Créer une session](https://docs.didit.me/fr/sessions-api/create-session.md#documents-de-signature-électronique) : envoyer des documents, des champs et des valeurs de champs par session.
- [Configurations des fonctionnalités de workflow](https://docs.didit.me/fr/management-api/workflows/feature-configs.md#signature-électronique) : chaque paramètre de l'étape.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.