143 lines
4.8 KiB
Markdown
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
|