Brancher vos outils : clés d’API et webhooks
Donner à un logiciel une clé qui agit avec une partie de vos droits, lire le contrat de l’API, et recevoir chez lui, signés, les évènements de votre entreprise.
Deux gestes du dirigeant, dans Paramètres › API et webhooks : donner à un logiciel une clé pour qu’il appelle INN, et abonner une adresse pour qu’INN le prévienne quand quelque chose se passe. La fonction s’ouvre entreprise par entreprise, à la demande : tant qu’elle est fermée, l’onglet n’existe pas.
Une clé : ce qu’un logiciel peut faire à votre place
Créer une clé demande trois choses :
- le nom de l’outil qui va s’en servir — vous le retrouverez dans la liste ;
- ses droits, cochés parmi les vôtres. La liste ne propose que ce que vous détenez vous-même ;
- une expiration, facultative. Sans date, la clé vit jusqu’à ce que vous la révoquiez.
La clé s’affiche une seule fois, juste après sa création, avec un bouton Copier. INN n’en garde qu’une empreinte : perdue, elle se remplace, elle ne se relit pas. Le logiciel la présente à chaque appel :
Authorization: Bearer inn_cle_…ou, si son réglage le préfère, X-API-Key: inn_cle_….
Ce qu’une clé garantit :
| La clé… | parce que… |
|---|---|
| ne voit que votre entreprise — ni une voisine, ni une filiale | elle agit sous un compte technique rattaché à elle seule |
| n’a jamais plus que vos droits | ils sont revérifiés à chaque appel : un droit qu’on vous retire, elle le perd aussi |
| ne passe pas une fonction que votre entreprise n’a pas | la même porte que pour un écran : l’API répond 402 |
| ne gère ni les comptes, ni les clés, ni les abonnements, et ne parle pas à INNIA | ces droits ne se confient pas à un outil |
| ne valide pas un versement de paie | celui qui prépare les montants ne les valide pas seul |
Révoquer une clé est définitif : l’outil est refusé dès son appel suivant. Une clé dont l’auteur quitte l’entreprise cesse aussi.
Le contrat : ce que la clé peut appeler
L’API publie sa description à l’adresse /openapi.json (format OpenAPI
3.1). Elle liste uniquement les routes qu’une clé peut atteindre, et pour
chacune :
x-inn-permissions— les droits qui l’ouvrent ; un seul suffit ;x-inn-module— la fonction de votre offre qui la porte.
Les corps des requêtes et des réponses n’y sont pas encore décrits. Ce que disent les refus :
| Réponse | Ce qu’elle veut dire |
|---|---|
401 | clé absente, inconnue, révoquée ou expirée — le champ code le précise (key_revoked, key_expired…) |
402 | la fonction de cette route n’est pas dans l’offre de votre entreprise |
403 | la clé n’a aucun des droits de la route, ou la route n’est pas ouverte aux clés |
404 | introuvable — ou dans une autre entreprise, ce qui se lit pareil |
Les webhooks : être prévenu, chez soi
Abonner une adresse demande un nom, une adresse en https:// — jamais une
adresse d’un réseau privé ou local — et les évènements à recevoir. Le secret
de signature s’affiche une seule fois, comme une clé.
Les évènements sont ceux des automatisations, avec les mêmes champs, et seulement ceux des fonctions de votre offre :
| Évènement | Champs envoyés |
|---|---|
| Un congé est validé · refusé | salarié, début, fin, nombre de jours, décidé par |
| Un salarié arrive | salarié, poste, département, arrivée |
| Un salarié quitte l’équipe | salarié, poste, département |
| Un pointage manque | salarié, jour, pointage |
| Un bon est signé | document, signataire, qualité |
| Une commande fournisseur est reçue | commande, fournisseur, jour |
| Une facture client est échue | facture, client, échéance, identifiant de la facture |
| Un article passe sous son seuil | article, quantité, seuil, identifiant de l’article |
| Une livraison est faite | affaire, article, quantité livrée, reste à livrer, jour |
| Un devis est accepté | devis, client, identifiant du devis |
Jamais un montant, jamais le type ni le motif d’un congé. Un envoi ressemble à ceci :
POST /votre-adresse
Content-Type: application/json
X-INN-Envoi: 5f0c…
X-INN-Evenement: salarie_arrive
X-INN-Horodatage: 1792310400
X-INN-Signature: sha256=9a1f…
{"id":"5f0c…","evenement":"salarie_arrive","survenu_le":"2026-10-12T08:00:00.000Z",
"donnees":{"salarie":"Awa Ndiaye","poste":"Comptable","departement":"Finances","arrivee":"2026-10-12"}}Vérifier la signature
La signature prouve que l’envoi vient d’INN et qu’il n’a pas été retouché. Elle se calcule ainsi :
- la clé est l’empreinte SHA-256 de votre secret, écrite en hexadécimal minuscule (64 caractères) ;
- le message est l’en-tête
X-INN-Horodatage, un point, puis le corps reçu tel quel, octet pour octet ; X-INN-Signaturevautsha256=suivi du HMAC-SHA256 du message, en hexadécimal.
Refusez un envoi dont l’horodatage est à plus de cinq minutes de votre horloge : un envoi capté ne se rejoue pas le lendemain. Par exemple, avec Node.js :
import { createHash, createHmac, timingSafeEqual } from "node:crypto";
function venuDInn(secret, horodatage, signature, corpsBrut) {
if (Math.abs(Date.now() / 1000 - Number(horodatage)) > 300) return false;
const cle = createHash("sha256").update(secret).digest("hex");
const attendue = createHmac("sha256", cle).update(`${horodatage}.`).update(corpsBrut).digest("hex");
const recue = signature.replace(/^sha256=/, "");
return recue.length === attendue.length && timingSafeEqual(Buffer.from(recue), Buffer.from(attendue));
}C’est la même recette que celle d’un appel entrant vers une automatisation : une seule à apprendre.
Quand votre adresse ne répond pas
Un envoi qui ne reçoit pas une réponse 2xx en dix secondes est rejoué
après 1 minute, 5 minutes, 30 minutes, 2 heures puis 6 heures — six
tentatives au plus —, puis abandonné. Un rejeu porte le même identifiant
(X-INN-Envoi) : votre logiciel reconnaît un doublon. Le journal de chaque
abonnement dit, envoi par envoi, ce qui est parti, quand, et ce que l’adresse a
répondu ; il se garde trente jours.
Mettre en pause un abonnement arrête les envois sans rien perdre ; supprimer efface aussi son journal. Ce qui part vers votre adresse est envoyé par votre entreprise, à sa demande — voir la politique de confidentialité.
Signer : le stylet, et l'accord du porteur
Faire signer un bénéficiaire à la tablette XP-Pen, et empêcher qu'un collègue appose votre signature enregistrée sans votre accord validé sur votre téléphone.
Par où commencer
Ce que fait INN Poste sur l'ordinateur de vos salariés, ce qui est actif sans réglage, et les quatre modèles à adapter avant de l'utiliser : notice d'information, analyse d'impact, consultation des représentants, registre des traitements.