> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.goodflag.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.goodflag.com/_mcp/server.

# Pages de consentement

> Rôle, niveau de signature, sélection, personnalisation

# Pages de consentement

## 'est-ce qu'une page de consentement ?

La **page de consentement** est l'écran qui guide un destinataire à travers son parcours de signature. Elle porte la **politique de sécurité juridique** appliquée à l'étape : le **niveau de signature**, conséquence d'un **cachet** ou d'une **signature**, associé à une méthode d'**authentification**, qui permet au signataire de prouver qu'elle est bien la personne qu'elle prétend être. On précise à cette occasion qu'un cachet électronique est effectué à l'aide d'un certificat de personne morale, alors qu'une signature électronique est effectuée à l'aide d'un certificat de personne physique.

Il existe néanmoins une page de consentement singulière qui est utilisée pour la validation
d'un parapheur. Cette validation ne requiert pas d'authentification particulière autre que
celle de la connaissance du lien d'invitation à valider le parapheur en question.

Dans un parapheur, **chaque destinataire est associé à une page de consentement** par son
identifiant (`consentPageId`) — c'est ce qui détermine *à quel niveau* et *comment* la
personne s'authentifie et signe.

## Fournies par Goodflag, sélectionnées par vous

Les pages de consentement de votre tenant sont **mises en place par Goodflag**, selon vos
besoins de signature : leur raccordement technique repose sur des paramètres réservés
(l'Evidence Manager qui sert la page et une passphrase partagée, jamais renvoyée en clair).
Votre application ne les crée pas : elle **choisit** la page appropriée à chaque étape
(section [*Sélectionner la bonne page*](#selectionner-la-bonne-page)) et peut la **personnaliser** (section [*Personnalisation (marque)*](#personnalisation-marque)).

## Le niveau de signature (porté par la page)

Le niveau de signature **n'est pas un champ isolé** : il est déterminé par la configuration
d'ensemble de la page. Chaque page fournie correspond à un **niveau de signature** (cachet ou
signature) et à une méthode d'authentification ; vous sélectionnez celle qui convient en
fonction des exigences juridiques de votre application.

| Niveau        | Cachet ou Signature                                                                                                                                                                                                                                   | Authentification & prérequis sur le destinataire                                                                                                                                                                                                                                          |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Simple**    | Un **Cachet** effectué avec le certificat de Goodflag — **pas de certificat au nom du signataire**.                                                                                                                                                   | OTP mail, ou SMS → le destinataire doit avoir un **`phoneNumber` à jour**.                                                                                                                                                                                                                |
| **Avancée**   | Une **Signature** effectuée à l'aide d'un **certificat au nom du signataire** délivré "à la volée" par Goodflag.                                                                                                                                      | OTP mail, ou SMS → le destinataire doit avoir un **`phoneNumber` à jour**. Il est aussi possible de prévoir une authentification par **FranceConnect**.                                                                                                                                   |
| **Qualifiée** | Une **Signature** effectuée à l'aide d'un **certificat qualifié au nom du signataire**. Le certificat peut être soit délivré "à la volée" par Goodflag ou être déjà en possession du signataire sur un support cryptographique physique de type QSCD. | Lorsque le certificat est émis par Goodflag, un moyen d'identification de niveau élevé est exigé, tel que **l'Identité Numérique La Poste** ou **France Identité** ou encore **FranceConnect+**. Dans tous les cas, l'**identité** et le **pays de naissance** du signataire sont requis. |

**À propos du champ `country` du destinataire.** Il n'a pas un sens unique : selon le
niveau, il désigne le pays de **résidence**, de **nationalité** ou de **naissance**. Pour
une **signature qualifiée France Identité**, `country` correspond au **pays de naissance**.
C'est à l'intégrateur de renseigner la bonne valeur selon la page utilisée.

> **Conséquence pratique.** Choisissez la page selon le niveau requis, puis assurez-vous
> que la fiche du destinataire (fondation [*Provisionnement des utilisateurs*](/wm/api-reference/concepts/provisionnement-des-utilisateurs)) porte les informations exigées : le
> **téléphone** pour une page à OTP SMS, le **pays de naissance** pour une page qualifiée.
> Pour une signature qualifiée, l'identité fournie doit rester **cohérente** avec l'identité
> vérifiée, sous peine d'interruption de la signature.

## Ce que décrit une page

| Champ                      | Signification                                                                              |
| -------------------------- | ------------------------------------------------------------------------------------------ |
| `stepType`                 | Type d'étape compatible : `signature` ou `approval`.                                       |
| `authenticateUser`         | Authentifier le destinataire auprès du fournisseur d'identité avant l'accès aux documents. |
| `verifyEmail`              | Vérifier l'adresse e-mail par un code à usage unique (OTP e-mail) avant de signer.         |
| `verifyPhoneNumber`        | Vérifier le numéro de téléphone par un code à usage unique (**OTP SMS**) avant de signer.  |
| `isCountryRequired`        | Le pays du destinataire est-il exigé.                                                      |
| `allowOrganization`        | Autoriser la signature en tant que représentant légal d'une organisation.                  |
| `signingMode`              | Mode de signature : `server` ou `local`.                                                   |
| `strictCertificateControl` | En signature locale, le certificat doit correspondre aux informations de l'utilisateur.    |
| `keystoreTypes`            | En signature locale, types de magasins de clés (`PKCS11`, `OS`).                           |

## Sélectionner la bonne page

```http
GET /api/consentPages?items.stepType=signature&itemsPerPage=50
```

La recherche accepte notamment `text`, `items.stepType`, `items.name`, `items.clientId`,
`items.isDisabled`, `items.isDefault`, `sortBy`, `sortOrder`, `itemsPerPage` (**max 50**),
`pageIndex`. Repérez la page voulue (par son `name` et son `stepType`), puis conservez son
`id` (`cop_…`) : c'est le `consentPageId` que vous placerez sur le destinataire au moment
de créer le parapheur (voir les cas d'usage).

* `GET /api/consentPages/{id}` récupère une page précise.
* Une page peut être marquée **par défaut** (`isDefault`) pour son type.

## Personnalisation (marque)

Vous pouvez adapter l'écran vu par vos signataires aux couleurs de votre marque, via
`PATCH /api/consentPages/{id}` (concurrence optimiste `If-Match`, fondation [*Structure > Concurrence : l'en-tête conditionnel `If-Match`*](/wm/api-reference/structure#concurrence-len-tete-conditionnel-if-match)) :

| Champ                       | Effet                                                                                                                                                                                                  |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `logo` (→ `logoResourceId`) | Logo affiché sur la page (image en *data URI*) : vous y placez celui de votre entreprise.                                                                                                              |
| `primaryColor`              | Couleur principale (format hexadécimal, ex. `#208cdf`). Elle habille les fonds de boutons et de cadres, les libellés, etc. Là aussi, associez-y une couleur caractéristique de votre charte graphique. |
| `hideDownloads`             | Masquer les boutons de téléchargement.                                                                                                                                                                 |
| `hideMobileQrCode`          | Masquer le QR code de signature mobile.                                                                                                                                                                |

Erreurs utiles à la personnalisation : `InvalidHexColor` (couleur non hexadécimale),
`InvalidImageFormat` (format d'image non pris en charge), `InvalidRequestField`.

> Le raccordement technique de la page (Evidence Manager, passphrase partagée, serveur
> d'horodatage) relève de Goodflag ; la passphrase n'est jamais renvoyée en clair par
> l'API (valeur masquée).