espace-paie-odentas/DOCUSEAL_SIGNATURE_CONFIG.md

143 lines
4.8 KiB
Markdown

# Configuration des Signatures Électroniques DocuSeal
## Date: 14 octobre 2025 (Mise à jour)
## Fonctionnalités
### 1. Restriction des méthodes de signature
L'API DocuSeal a été configurée pour **désactiver la saisie de signature au clavier**.
Selon la documentation DocuSeal :
- `data-allow-typed-signature`: Set `false` to disallow users to type their signature (Default: true)
Les méthodes disponibles sont :
-**Dessin de signature** (activé par défaut)
-**Chargement de photo** (activé par défaut)
-**Saisie au clavier** (`data-allow-typed-signature=false`)
**⚠️ Important** : Le paramètre `data-allow-typed-signature` doit être passé dans l'URL de l'embed DocuSeal, pas dans l'API de création de soumission.
### 2. Mémorisation des signatures
La mémorisation des signatures est **activée par défaut** dans DocuSeal.
Les utilisateurs peuvent réutiliser automatiquement leur signature lors de signatures ultérieures.
### 3. Pré-remplissage de la signature employeur (✨ NOUVEAU)
La signature de l'employeur peut être **pré-remplie automatiquement** depuis la base de données :
- Signature stockée en base64 dans `organization_details.signature_b64`
- Pré-remplissage automatique via le paramètre `data-signature` dans l'URL
- L'employeur peut valider directement ou remplacer la signature
📖 **Voir documentation complète** : [DOCUSEAL_SIGNATURE_PREFILL.md](./DOCUSEAL_SIGNATURE_PREFILL.md)
## Fichiers modifiés
### `/app/api/docuseal-signature/route.ts`
**1. Configuration des submitters avec metadata** pour désactiver la saisie au clavier :
```typescript
submitters: [
{
role: 'Employeur',
email: employerEmail,
metadata: {
'allow-typed-signature': false, // Désactiver signature par saisie
// Pré-remplir la signature si disponible (depuis organization_details)
...(employerSignatureB64 && {
'signature': employerSignatureB64
})
}
},
{
role: 'Salarié',
email: employeeEmail,
metadata: {
'allow-typed-signature': false // Désactiver signature par saisie
}
}
]
```
**2. Récupération de la signature depuis la base de données** :
```typescript
// Récupérer la signature base64 de l'organisation si disponible
let employerSignatureB64 = null;
if (orgId) {
const { data: orgDetails } = await supabase
.from('organization_details')
.select('signature_b64')
.eq('org_id', orgId)
.maybeSingle();
if (orgDetails?.signature_b64) {
employerSignatureB64 = orgDetails.signature_b64;
}
}
```
Ces préférences sont appliquées :
- Au niveau global de la soumission
- Au niveau de chaque signataire (Employeur et Salarié)
## Points d'application
Les configurations s'appliquent automatiquement à :
1. **Signature individuelle depuis la page de détail d'un contrat**
- Route: `/staff/contrats/[id]`
- Composant: `ContractEditor.tsx`
- API: Appelle `/api/docuseal-signature`
2. **Signature groupée depuis la liste des contrats**
- Route: `/staff/contrats`
- Composant: `ContractsGrid.tsx`
- API: Appelle `/api/staff/contracts/bulk-esign` → qui appelle `/api/docuseal-signature`
## Comportement utilisateur
### Pour l'employeur et le salarié :
1. **Lors de la première signature** :
- Options disponibles : Dessiner ou Charger une image
- Option indisponible : Saisir au clavier
- La signature est automatiquement sauvegardée
2. **Lors des signatures suivantes** :
- L'utilisateur peut réutiliser sa signature mémorisée
- Ou créer une nouvelle signature (dessin/upload)
- Pas besoin de redessiner à chaque fois
## Avantages
**Sécurité renforcée** : Évite les signatures trop simplistes par saisie au clavier
**Expérience utilisateur** : Dessin et upload disponibles par défaut
**Conformité légale** : Signatures plus authentiques (dessin/scan)
**Mémorisation native** : DocuSeal sauvegarde automatiquement les signatures
**Configuration correcte** : Utilisation des bons paramètres API selon la documentation
## Test
Pour tester les modifications :
1. Créer un nouveau contrat et générer le PDF
2. Lancer la signature électronique
3. Vérifier dans l'interface DocuSeal que :
- ❌ L'option "Saisir" n'est pas disponible
- ✅ Les options "Dessiner" et "Charger" sont disponibles
4. Signer le document avec l'une des méthodes autorisées
5. Pour un deuxième contrat, vérifier que la signature précédente est proposée
## Références API DocuSeal
- Documentation des préférences de signature : https://docs.docuseal.co/api
- Paramètre utilisé : `metadata` dans les submitters
- Options configurées :
- `allow-typed-signature: false` - Désactive la saisie au clavier (Default: true)
- Options par défaut (pas besoin de les configurer) :
- Signature par dessin : activée
- Upload de signature : activé
- Mémorisation : activée