Aller au contenu principal

Cas d’usage

Flow signature eIDAS EU-SES (création → polling → download)

Workflow complet de signature simple en 3 étapes

Le flow signature Scell.io suit 3 étapes : (1) `POST /api/v1/signatures` avec PDF + signataires + ui_config → retourne `signature_id` et `signing_urls[]`, (2) le signataire ouvre l'URL, signe via le tunnel d'OpenAPI.com, prestataire certifié eIDAS (typed/drawn/both), reçoit OTP SMS BulkGate, (3) côté serveur, écouter le webhook `signature.completed` ou poller `GET /api/v1/signatures/{id}` jusqu'au statut `completed`, puis télécharger le PDF signé via `GET /api/v1/signatures/{id}/download`. Le PDF signé inclut le certificat eIDAS EU-SES et la piste d'audit (audit trail PDF). Conservation 10 ans automatique.

À retenir

  • Étape 1 : POST avec PDF base64 + signers + ui_config
  • Étape 2 : signataire ouvre `signing_url`, OTP SMS via BulkGate
  • Étape 3 : webhook `signature.completed` ou polling status
  • Statuts : `pending` → `in_progress` → `completed` / `expired`
  • Audit trail PDF inclus dans le download (preuve eIDAS)
  • Expiration par défaut 30 jours, configurable

Exemple de code

import { ScellClient } from '@scell/sdk';
import { readFileSync } from 'node:fs';

const scell = new ScellClient({ apiKey: process.env.SCELL_SECRET_KEY! });

// 1. Créer la signature
const sig = await scell.signatures.create({
  document: { name: 'contrat.pdf', content_base64: readFileSync('contrat.pdf').toString('base64') },
  signers: [{ email: 'client@example.com', phone: '+33612345678', first_name: 'Jean', last_name: 'Dupont' }],
  signature_options: { signature_mode: 'both', timezone: 'Europe/Paris' },
  ui_config: { sidebar_color: '#4F46E5', button_color: '#4F46E5' },
});
console.log('Signing URL:', sig.signing_urls[0]);

// 2. Webhook recommandé, sinon polling
let status = sig.status;
while (status !== 'completed' && status !== 'expired') {
  await new Promise((r) => setTimeout(r, 10_000));
  status = (await scell.signatures.retrieve(sig.id)).status;
}

// 3. Télécharger le PDF signé
const signedPdf = await scell.signatures.download(sig.id);

Voir aussi

Vos préférences cookies

Nous utilisons des cookies pour améliorer votre expérience. Les cookies essentiels sont toujours actifs. Politique cookies.