API pour les développeurs
Fini les requêtes en boucle, on vous prévient
Enregistrez une URL et choisissez les événements. Nous envoyons une requête POST signée quelques secondes après chaque changement, et réessayons pendant 24 heures en cas d'échec.
Événements
rate.updatedLe cours d'une devise a changé dans une banquerate.best_changedLa vente la moins chère ou l'achat le plus élevé a changérate.threshold_crossedUn cours a franchi un seuil que vous avez définicbe.rate_changedLe cours de la Banque centrale a changégold.updatedLes prix de l'or ont changésilver.updatedLes prix de l'argent ont changétransfer.quotes_updatedLes prix des prestataires de transfert ont changécertificate.createdUne banque a lancé un nouveau certificatcertificate.rate_changedLe rendement d'un certificat a changétbill.auction_resultUn résultat d'adjudication de bons du Trésorfund.price_updatedLe prix de la part d'un fonds a été mis à jourstatus.incidentUn incident de service a commencé ou s'est terminéCe que nous envoyons
POST https://example.com/geneh
Geneh-Event: rate.best_changed
Geneh-Signature: t=1792118220,v1=5f2b9c1e7a
{
"id": "evt_01JB7Q2K",
"type": "rate.best_changed",
"created_at": "2026-10-16T00:37:00Z",
"data": {
"currency": "USD",
"side": "sell",
"previous": { "bank": "nbe", "rate": 53.52 },
"current": { "bank": "credit_agricole", "rate": 53.47 }
}
}Vérifier la signature
Chaque requête est signée avec le secret de votre endpoint en HMAC SHA-256. Rejetez tout ce qui date de plus de 5 minutes.
import crypto from "node:crypto";
function verify(rawBody, header, secret) {
const [t, v1] = header.split(",").map(p => p.split("=")[1]);
const mac = crypto.createHmac("sha256", secret)
.update(t + "." + rawBody).digest("hex");
const fresh = Math.abs(Date.now() / 1000 - t) < 300;
return fresh && crypto.timingSafeEqual(Buffer.from(mac), Buffer.from(v1));
}Livraison et nouvelles tentatives
- Délai d'attente
- Répondez avec un 2xx en moins de 10 secondes
- Nouvelles tentatives
- 8 tentatives sur 24 heures, de plus en plus espacées
- Doublons
- Un événement peut arriver deux fois, utilisez donc son id pour ignorer les répétitions
- Ordre
- Comparez created_at, car l'ordre n'est pas garanti
- Mise en pause
- Nous mettons un endpoint en pause après 3 jours d'échecs et vous prévenons par e-mail, et vous pouvez rejouer ce que vous avez manqué
Vos endpoints
Les webhooks arrivent bientôtVous ajouterez vos endpoints ici dès l'ouverture des webhooks. Ils sont inclus à partir de l'offre Pro.
Bientôt disponible