Faire signer les contrats RH dans votre SIRH

Promesses d’embauche, contrats, avenants : comment intégrer la signature PDF dans votre SIRH, avec ordre des signataires, webhooks et données RH protégées.

Publié le 3 oct. 2026 · 7 min de lecture

Pour faire signer les contrats RH dans votre SIRH, déclenchez une demande de signature depuis un événement du logiciel (candidat retenu, avenant validé, nouvelle politique), envoyez le PDF et les signataires dans l’ordre voulu, puis rangez le PDF signé dans le dossier salarié quand le webhook arrive. Le salarié signe sans quitter votre produit ni créer de compte ailleurs, et l’équipe RH suit tout depuis l’écran qu’elle connaît déjà.

Ce guide s’adresse aux éditeurs de SIRH et de logiciels de paie ou de gestion du personnel, et à leurs équipes produit. Il décrit le cycle de vie des documents RH, le découpage en appels d’API, la gestion des données personnelles et les vérifications juridiques à mener avec vos clients.

Les documents RH à faire signer

Un SIRH produit des documents à chaque étape de la vie d’un salarié. Tous ne demandent pas le même circuit : une promesse d’embauche se signe vite, un contrat engage plusieurs personnes, une note de politique interne concerne parfois des centaines de salariés en même temps.

DocumentMomentSignataires habituels
Promesse d’embauche ou offreFin du recrutementCandidat, puis responsable RH
Contrat de travailAvant la prise de posteSalarié, manager, directeur RH
Avenant (salaire, poste, temps de travail)Changement de situationSalarié, puis directeur RH
Accord de confidentialité (NDA)Arrivée ou accès à un projetSalarié, parfois le juriste
Accusé de lecture d’une politiqueNouvelle charte, règlement intérieurSalarié seul

Commencez par les deux ou trois documents qui pèsent le plus dans le quotidien de vos clients. Dans la plupart des SIRH, il s’agit du contrat et des avenants : ce sont eux qui bloquent une embauche ou une paie quand ils restent en attente.

Qui signe, et dans quel ordre

Dans l’API, chaque signataire porte une `reference` stable (par exemple employee, manager, hr_director) et un `order`. Le signataire d’ordre 1 reçoit le document en premier, celui d’ordre 2 ensuite, et ainsi de suite. Une demande accepte jusqu’à 10 signataires et 100 champs, ce qui couvre largement les circuits RH courants.

  1. Le salarié ou le candidat signe en premier : il confirme les conditions qui le concernent.
  2. Le manager valide ensuite, si votre client l’exige pour ce type de document.
  3. Le directeur RH ou le représentant légal signe en dernier pour l’employeur.

Certaines entreprises préfèrent l’ordre inverse, avec l’employeur qui signe d’abord. Laissez ce choix paramétrable par type de document dans votre produit plutôt que de le coder en dur. En cas de refus, l’événement `signature_request.declined` vous permet de remettre le dossier à l’étape précédente.

Modèles et détection des champs

Les contrats d’un même client suivent généralement la même mise en page. Préparez un modèle une fois dans la plateforme Khatm, avec les rôles et l’emplacement des champs, puis réutilisez-le en passant son `template_id` à la création de la demande. `GET /v1/templates` liste les modèles disponibles. Les références des signataires doivent correspondre aux rôles du modèle.

Pour un document dont la mise en page varie, comme un avenant rédigé à la main par un juriste, créez la demande sans champs, appelez `POST /signature-requests/{id}/detect-fields`, faites vérifier les suggestions par l’utilisateur RH, puis confirmez-les avec `PUT /signature-requests/{id}/fields`. La détection propose des emplacements ; c’est votre interface qui les fait valider.

Relier les événements du SIRH à l’API

L’intégration la plus simple part des événements que votre SIRH connaît déjà. Chaque événement correspond à un ou deux appels.

Événement dans le SIRHAppel KhatmEffet
Candidat retenu, offre généréePOST /v1/signature-requests puis POST …/activateLe candidat reçoit son lien de signature
Contrat validé par les RHPOST /v1/signature-requests avec template_id, puis …/activateCircuit salarié, manager, directeur RH
Relance demandée par un gestionnairePOST …/remindersNouveau lien envoyé au signataire en attente
Offre retirée ou contrat remplacéPOST …/cancelLes liens non signés sont invalidés
Ouverture de la fiche salariéGET /v1/signature-requests/{id}Statut à jour de chaque signataire
Webhook signature_request.completedGET …/artifacts/{type}PDF signé et preuves rangés dans le dossier

Utilisez un `client_reference` dérivé de vos propres identifiants, par exemple l’identifiant du salarié, le type de document et sa version. L’appel de création est idempotent sur cette valeur : si un job est rejoué ou si un utilisateur clique deux fois, aucune demande en double n’est créée.

curl -sS https://<khatm-host>/v1/signature-requests \
  -H "Authorization: Bearer $KHATM_API_KEY" \
  -F "document=@contrat-cdi-0042.pdf;type=application/pdf" \
  -F 'request={
    "client_reference": "hris-contract-emp-0042-v1",
    "template_id": "<template-id>",
    "signers": [
      {"reference": "employee", "name": "Salma B.", "email": "salma@example.com", "order": 1},
      {"reference": "manager", "name": "Karim A.", "email": "karim@example.com", "order": 2},
      {"reference": "hr_director", "name": "Nadia R.", "email": "nadia@example.com", "order": 3}
    ],
    "callback_url": "https://hris.example.com/webhooks/khatm"
  }'

Création d’une demande de signature pour un contrat, trois signataires dans l’ordre (sandbox)

Mettre à jour le dossier salarié

Quand le dernier signataire a signé, Khatm envoie `signature_request.completed` à votre `callback_url`. Le webhook est signé en HMAC-SHA256 avec votre secret `whsec_…` (en-tête `webhook-signature`) et contient le `client_reference`, ce qui vous permet de retrouver le salarié sans table de correspondance supplémentaire.

{
  "id": "evt_…",
  "type": "signature_request.completed",
  "data": {
    "signature_request_id": "<request-id>",
    "client_reference": "hris-contract-emp-0042-v1",
    "status": "completed"
  },
  "created_at": "2026-10-03T09:12:00Z"
}

Champs utiles d’un événement de fin de signature (forme simplifiée)

  • Vérifiez la signature du webhook sur le corps brut et ignorez les événements déjà traités.
  • Téléchargez le PDF signé, le rapport de preuve PDF et la preuve JSON, puis rangez-les dans le dossier salarié.
  • Passez le contrat au statut « signé » et débloquez les étapes suivantes : création du compte, préparation de la paie.
  • Traitez aussi `signature_request.declined` et `signature_request.cancelled` pour que le dossier ne reste jamais dans un état ambigu.

Protéger les données RH

Un contrat de travail contient un salaire, une adresse, parfois un numéro d’identité. Envoyez à Khatm uniquement ce dont la signature a besoin : le PDF, le nom et l’e-mail des signataires. Le reste du dossier salarié reste dans votre SIRH.

  • Les PDF sont chiffrés au repos (AES-GCM) et chaque document est associé à une empreinte SHA-256.
  • La preuve JSON ne contient ni adresse IP ni user-agent.
  • En sandbox et dans la démo, le contenu est supprimé 10 jours après l’envoi du PDF, y compris pour les demandes non terminées : rapatriez les fichiers signés avant ce délai.
  • En production, la durée de conservation est définie avec votre client, et votre SIRH reste le lieu d’archivage du dossier salarié.
  • Limitez l’accès aux documents signés selon les rôles de votre SIRH : un manager n’a pas toujours à voir le contrat de toute son équipe.

Arabe, français et anglais

Au Maroc et dans le Golfe, une même entreprise emploie souvent des salariés qui lisent l’arabe, le français ou l’anglais. Le parcours de signature Khatm est disponible nativement dans ces trois langues, avec une interface de droite à gauche en arabe. Le contrat lui-même reste le PDF que votre client produit : s’il est bilingue, la signature s’applique au document complet.

Pensez à conserver la langue préférée du salarié dans son dossier et à l’utiliser pour vos propres e-mails et notifications, afin que tout le parcours reste cohérent.

Points juridiques à vérifier par pays

  • Le droit local admet-il la forme électronique pour ce type de contrat, ou impose-t-il un original papier, un visa administratif ou un enregistrement ?
  • Les contrats de salariés étrangers suivent-ils un circuit particulier, par exemple un visa ou un enregistrement auprès d’une administration ?
  • Quel niveau d’identification du signataire est attendu, et quel certificat utiliser en production ?
  • Quelle durée de conservation s’applique au contrat et aux preuves ?

Au Maroc comme en Arabie saoudite, aux Émirats, au Qatar ou à Oman, ces réponses peuvent différer d’un document à l’autre. Khatm n’est pas un prestataire de services de confiance qualifié et n’émet pas de certificats ; aucune identité nationale comme Nafath ou UAE Pass n’est incluse par défaut. En production, l’identité du signataire et le certificat proviennent du fournisseur d’identité et de la PKI, du HSM ou du prestataire de confiance de votre client. Signature électronique au Maroc

Passer à la pratique avec Khatm

Signature PDF intégrée à votre logiciel, sous votre marque, en arabe, français et anglais. Testez en sandbox, nous vous accompagnons jusqu’à la production.

  1. Tester la démo : envoyez un contrat fictif, ajoutez un salarié et un directeur RH, récupérez le PDF signé en PAdES. L’avertissement « identité inconnue » du lecteur PDF est attendu, car la démo utilise un certificat de test auto-signé.
  2. Construire en sandbox : obtenez une clé sandbox (`khatm_test_…`), branchez un événement de votre SIRH sur la création de demande, puis traitez le webhook de fin de signature.
  3. Préparer la production avec Khatm : cadrage, adaptation du parcours à votre marque, connexion de l’identité des signataires et du certificat de votre client, horodatage RFC 3161 lorsque le prestataire le fournit, conservation définie avec vous.

Pour aller plus loin, consultez la documentation de l’API et la page dédiée à l’accompagnement. Tester la démo Documentation de l’API Accompagnement

Informations générales, sans valeur de conseil juridique. Vérifiez les exigences applicables à votre opération.

Le salarié doit-il créer un compte pour signer son contrat ?

Non. Chaque signataire reçoit un lien de signature personnel et signe dans un parcours en arabe, français ou anglais. Votre SIRH garde la relation avec le salarié.

Peut-on imposer que le salarié signe avant le directeur RH ?

Oui. Donnez au salarié `order: 1` et au directeur RH un ordre plus élevé. Le directeur RH ne reçoit le document qu’après les signataires précédents.

Comment éviter de créer deux demandes pour le même contrat ?

Utilisez un `client_reference` stable, construit à partir de l’identifiant du salarié, du type de document et de sa version. Une création répétée avec la même valeur renvoie la demande existante.

Combien de temps Khatm conserve-t-il les contrats ?

En sandbox et dans la démo, le contenu est supprimé 10 jours après l’envoi du PDF. En production, la conservation est définie avec votre client, et le dossier salarié reste archivé dans votre SIRH.

Un contrat de travail signé avec Khatm est-il valable au Maroc ou dans le Golfe ?

Cela dépend du pays, du type de contrat, de l’identification du signataire et du certificat utilisé. Khatm ne fournit pas d’avis juridique : faites valider chaque cas par un conseil local avant la mise en production.