← Retour à la marketplace
✍️

Signature Électronique

Signature électronique simple : envoi de documents à signer et traçabilité.

DocumentsComplexe~12 joursv1.1.0

Module de signature électronique avec workflow d'envoi, signature via interface web (dessin ou clic), piste d'audit horodatée, certificat de signature et archivage légal du document signé.

esignaturesignaturelegalcontractaudit-trail

Dépendances requises :

📋 Schéma Prisma

// === Module Signature Électronique ===

enum SignatureRequestStatus {
  DRAFT
  SENT
  PARTIAL
  COMPLETED
  EXPIRED
  CANCELLED
}

enum SignerStatus {
  PENDING
  VIEWED
  SIGNED
  DECLINED
}

model SignatureRequest {
  id          String                 @id @default(cuid())
  title       String
  documentId  String
  status      SignatureRequestStatus @default(DRAFT)
  expiresAt   DateTime?
  completedAt DateTime?
  createdAt   DateTime               @default(now())
  updatedAt   DateTime               @updatedAt
  signers     Signer[]
  auditEvents SignatureAuditEvent[]

  @@map("signature_requests")
}

model Signer {
  id                String           @id @default(cuid())
  requestId         String
  request           SignatureRequest  @relation(fields: [requestId], references: [id], onDelete: Cascade)
  email             String
  name              String
  order             Int              @default(0)
  status            SignerStatus      @default(PENDING)
  token             String           @unique
  signedAt          DateTime?
  signatureData     String?          // Base64 ou coordonnées
  ipAddress         String?

  @@map("signers")
}

model SignatureAuditEvent {
  id        String          @id @default(cuid())
  requestId String
  request   SignatureRequest @relation(fields: [requestId], references: [id])
  event     String
  actor     String
  ipAddress String?
  createdAt DateTime        @default(now())

  @@map("signature_audit_events")
}

🔌 Endpoints API

## API Signature

POST /api/signature/requests            # Créer une demande de signature
GET  /api/signature/requests            # Liste
GET  /api/signature/requests/:id        # Détail + piste d'audit
POST /api/signature/requests/:id/send   # Envoyer aux signataires
DELETE /api/signature/requests/:id      # Annuler

GET  /api/signature/sign/:token         # Page de signature (public)
POST /api/signature/sign/:token         # Soumettre la signature (public)
GET  /api/signature/requests/:id/certificate # Télécharger le certificat

🛠️ Guide d'implémentation

## Implémentation Signature Électronique

### Étape 1 — Workflow de signature
Ordre séquentiel ou parallèle selon la configuration.
Envoi automatique au signataire suivant après signature.

### Étape 2 — Interface de signature (page publique)
Page non authentifiée /sign/:token :
- Affichage du document (PDF.js)
- Capture de la signature (canvas HTML5)
- Confirmation avec checkbox consentement

### Étape 3 — Piste d'audit
Enregistrer tous les événements : envoi, consultation, signature, refus.
Inclure horodatage + IP pour chaque événement.

### Étape 4 — Document final
Fusionner la signature dans le PDF et archiver (immuable).

### Note légale
Pour un usage professionnel avec valeur légale maximale, intégrer un prestataire qualifié eIDAS.

Prêt à installer ce module ?

Ajoutez-le à un projet existant depuis la page modules du projet.

Voir les projets →