API de certification

Générez et vérifiez des certificats d’apport depuis votre plateforme.

Authentification : une clé par partenaire

La clé appartient à un MEMBRE de GLAYDZ et agit en son nom : elle ne donne accès qu’aux certificats dont ce membre est partie, jamais à ceux d’un autre. Envoyez-la en en-tête, au choix :

Authorization: Bearer glg_…
X-API-Key: glg_…

Quota quotidien par clé, et chaque appel est journalisé — vous pouvez relire vos appels via GET /v1/api/appels.

Les routes

POST/v1/api/certificatscertificat d'une mise en relation consentie
GET/v1/api/certificats/{id}lecture (parties seulement)
GET/v1/api/certificats/{id}/verifiervérification
POST/v1/api/webhooksdéclarer une URL de webhook
GET/v1/api/webhookslister, et voir les livraisons en souffrance
POST/v1/api/webhooks/livrerreprendre les livraisons en souffrance
GET/v1/api/appelsvos appels récents
POST/v1/api/partenairescréer une clé (exploitation seulement)

curl

curl -s https://glaydz.fr/v1/api/certificats/GLD-2026-000001/verifier \
  -H "Authorization: Bearer glg_VOTRE_CLE"

# émettre un certificat sur une mise en relation existante
curl -s https://glaydz.fr/v1/api/certificats \
  -H "Authorization: Bearer glg_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{"introduction_id":"…","objet":"Refonte du site","prime":"12 %"}'

Python

import httpx

CLE = "glg_VOTRE_CLE"
r = httpx.get("https://glaydz.fr/v1/api/certificats/GLD-2026-000001/verifier",
              headers={"Authorization": f"Bearer {CLE}"}, timeout=15)
print(r.json()["data"]["authentique"], r.json()["data"]["empreinte_intacte"])

# vérifier une signature de webhook
import hashlib, hmac
def signature_valide(corps: bytes, entete: str, secret: str) -> bool:
    attendu = "sha256=" + hmac.new(secret.encode(), corps, hashlib.sha256).hexdigest()
    return hmac.compare_digest(attendu, entete)

Node.js

const r = await fetch("https://glaydz.fr/v1/api/certificats/GLD-2026-000001/verifier", {
  headers: { Authorization: "Bearer glg_VOTRE_CLE" },
});
const { data } = await r.json();
console.log(data.authentique, data.empreinte_intacte);

// signature de webhook (Node >= 18)
import { createHmac, timingSafeEqual } from "node:crypto";
const attendu = "sha256=" + createHmac("sha256", secret).update(corps).digest("hex");
const ok = timingSafeEqual(Buffer.from(attendu), Buffer.from(enteteRecu));

Signature des webhooks

Chaque livraison porte X-GLAYDZ-Signature : sha256=<HMAC-SHA256 du corps, avec le secret du webhook>. Vérifiez-la avant de traiter l’événement. Les événements sont : certificat.cree, certificat.verifie, certificat.expire.

Livraisons en souffrance

Si votre serveur était injoignable, l’événement n’est PAS perdu : il reste en attente avec son contenu complet, et vous pouvez déclencher la reprise avec POST /v1/api/webhooks/livrer. La réponse dit ce qui a été livré.