API pentru dezvoltatori
Nu mai interoga, te anunțăm noi
Înregistrează un URL și alege evenimentele. Trimitem un POST semnat în câteva secunde de la fiecare schimbare și reîncercăm până la 24 de ore dacă nu reușește.
Evenimente
rate.updatedUn curs valutar s-a schimbat la o bancărate.best_changedCea mai ieftină vânzare sau cea mai mare cumpărare s-a schimbatrate.threshold_crossedUn curs a depășit o limită setată de tinecbe.rate_changedCursul Băncii Centrale s-a schimbatgold.updatedPrețurile aurului s-au schimbatsilver.updatedPrețurile argintului s-au schimbattransfer.quotes_updatedPrețurile furnizorilor de transfer s-au schimbatcertificate.createdO bancă a lansat un certificat noucertificate.rate_changedRandamentul unui certificat s-a schimbattbill.auction_resultUn rezultat de licitație pentru bonuri de trezoreriefund.price_updatedPrețul unității unui fond a fost actualizatstatus.incidentUn incident de serviciu a început sau s-a încheiatCe trimitem
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 }
}
}Verifică semnătura
Fiecare cerere este semnată cu secretul endpointului tău folosind HMAC SHA-256. Respinge orice e mai vechi de 5 minute.
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));
}Livrare și reîncercări
- Timp limită
- Răspunde cu 2xx în 10 secunde
- Reîncercări
- 8 încercări în 24 de ore, tot mai rare
- Duplicate
- Un eveniment poate ajunge de două ori, așa că folosește id-ul pentru a sări peste repetări
- Ordine
- Compară created_at, pentru că ordinea nu este garantată
- Punere pe pauză
- Punem pe pauză un endpoint după 3 zile de erori și îți trimitem un e-mail, iar tu poți retrimite ce ai pierdut
Endpointurile tale
Webhookurile sunt pe drumVei adăuga endpointuri aici când se deschid webhookurile. Sunt incluse de la Pro în sus.
În curând