Certifier et vérifier des documents par API
L'API Lumiere permet à votre système (scolarité, RH, plateforme d'inscription…) d'ancrer l'empreinte
d'un document sur la blockchain Lumiere au moment où il est délivré, puis à n'importe qui de vérifier
son authenticité par la suite. Une intégration tient en deux appels : signer,
puis vérifier.
| URL de base | https://lumiere.bj/api/v1 |
|---|---|
| Format | multipart/form-data en entrée, application/json en sortie |
| Authentification | en-tête X-Api-Key |
Authentification
Chaque requête doit porter une clé API valide dans l'en-tête X-Api-Key. Il n'y a ni OAuth
ni jeton à renouveler : la clé est un secret statique, à traiter comme un mot de passe.
- Compte certificateur — une fois votre compte validé, générez votre clé depuis Mon compte → Clé API.
- Application tierce — l'équipe Lumiere peut émettre une clé dédiée depuis le tableau de bord d'administration.
La clé n'est affichée qu'une seule fois, à sa création. Si vous la perdez, révoquez-la et générez-en une nouvelle.
X-Api-Key: votre_cle_secrete
Démarrage rapide
# 1. Certifier le diplôme au moment de sa délivrance curl -X POST https://lumiere.bj/api/v1/documents/sign \ -H "X-Api-Key: votre_cle_secrete" \ -F "file=@diplome_koffi_2026.pdf" \ -F "delivre_a=Koffi Adjovi" \ -F "type_document=Diplôme de Licence" # 2. Plus tard, n'importe qui vérifie avec le hash reçu — sans clé API curl https://lumiere.bj/api/v1/documents/verify/2f7de70655779b5bedabdee7bf485be72c51f253bec56052c3be542a381259f
Exemples complets à exécuter
Un script autonome par langage — copiez-le tel quel dans un fichier, remplacez la clé API et le chemin du document, et lancez-le. Chacun certifie un fichier puis vérifie immédiatement son empreinte.
certifier.sh — bash certifier.sh fichier.pdf "Nom du bénéficiaire" #!/bin/bash API_KEY="votre_cle_secrete" FICHIER="$1" BENEFICIAIRE="$2" REPONSE=$(curl -s -X POST https://lumiere.bj/api/v1/documents/sign \ -H "X-Api-Key: $API_KEY" \ -F "file=@$FICHIER" \ -F "delivre_a=$BENEFICIAIRE") echo "Certifié : $REPONSE" HASH=$(echo "$REPONSE" | grep -o '"hash":"[a-f0-9]*"' | cut -d'"' -f4) echo "Vérification :" curl -s https://lumiere.bj/api/v1/documents/verify/$HASH
Ancre un document sur la blockchain Lumiere. Envoyez le fichier tel quel — Lumiere calcule lui-même
l'empreinte SHA-256. L'appel est idempotent : renvoyer un fichier déjà certifié
renvoie la certification existante (200) plutôt que d'en créer une seconde.
| Champ | Description | |
|---|---|---|
| file | requis | Le document original. 10 Mo max. |
| delivre_a | requis | Nom du bénéficiaire. |
| nom_document | optionnel | Par défaut, le nom du fichier envoyé. |
| type_document | optionnel | Ex : « Diplôme », « Relevé de notes ». |
| verifie_par | optionnel | Entité certificatrice. Par défaut, le nom associé à votre clé. |
| date_delivrance | optionnel | Si différente d'aujourd'hui. |
| remplace_hash | optionnel | Voir Remplacer un document. |
| motif_remplacement | requis avec remplace_hash | 5 caractères min. |
{
"success": true,
"hash": "2f7de70655779b5bedabdee7bf485be72c51f253bec56052c3be542a381259f",
"blockchain_status": "confirmed",
"document": { "…" },
"remplace": null,
"conseil": "Conservez cette empreinte pour un futur remplacement."
}
Vérification, à partir du fichier lui-même — champ file, requis, 10 Mo max.
curl -X POST https://lumiere.bj/api/v1/documents/verify \
-F "file=@diplome_koffi_2026.pdf"
Le hash est calculé sur le contenu binaire exact. Une simple réexportation du PDF peut changer l'empreinte et faire échouer la vérification d'un document pourtant authentique.
Remplacer un document
Un document certifié n'est jamais modifié ni supprimé. Pour corriger ou mettre à jour un document déjà
émis, certifiez la nouvelle version normalement, en ajoutant le hash de l'ancienne dans remplace_hash
et un motif dans motif_remplacement.
- Conservez le hash reçu à chaque certification (le champ
conseilvous le rappelle). - Le jour d'une correction, certifiez le nouveau fichier avec
remplace_hash+motif_remplacement(obligatoire, 5 caractères min.). - Lumiere vérifie que vous êtes bien propriétaire du document référencé — impossible de remplacer le document de quelqu'un d'autre.
- L'ancienne version reste consultable, mais toute vérification affichera qu'elle a été remplacée, avec un lien vers la version actuelle.
Ce n'est jamais automatique : Lumiere ne rapproche pas deux documents entre eux tout seul, même s'ils semblent similaires — c'est à vous de le déclarer explicitement.
curl -X POST https://lumiere.bj/api/v1/documents/sign \ -H "X-Api-Key: votre_cle_secrete" \ -F "file=@diplome_koffi_2026_corrige.pdf" \ -F "delivre_a=Koffi Adjovi" \ -F "remplace_hash=2f7de70655779b5bedabdee7bf485be72c51f253bec56052c3be542a381259f" \ -F "motif_remplacement=Correction de l'orthographe du nom"
Codes d'erreur
| Code | Signification |
|---|---|
| 401 | Clé API absente, invalide ou révoquée. |
| 404 | Aucun document ne correspond à ce hash. |
| 422 | Champ requis manquant/invalide, ou document à remplacer introuvable / ne vous appartenant pas. |
| 429 | Trop de requêtes — limitez la fréquence d'appel. |
Bonnes pratiques
- Certifiez à la source — au moment exact où le document est généré ; la date est horodatée automatiquement.
- Stockez le hash, pas seulement le fichier, pour une vérification ou un remplacement ultérieur sans re-télécharger le fichier.
- Un même fichier, un seul enregistrement — recertifier ne crée pas de doublon.
- La vérification est publique — orientez vos utilisateurs finaux vers lumiere.bj/verifier plutôt que de leur demander une clé API.
- Ne recertifiez pas un document corrigé comme s'il était neuf — utilisez
remplace_hashpour lier les deux versions.
Besoin d'une clé API ?
Créez un compte certificateur, puis générez votre clé depuis votre espace client une fois validé.