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 schimbat
rate.threshold_crossedUn curs a depășit o limită setată de tine
cbe.rate_changedCursul Băncii Centrale s-a schimbat
gold.updatedPrețurile aurului s-au schimbat
silver.updatedPrețurile argintului s-au schimbat
transfer.quotes_updatedPrețurile furnizorilor de transfer s-au schimbat
certificate.createdO bancă a lansat un certificat nou
certificate.rate_changedRandamentul unui certificat s-a schimbat
tbill.auction_resultUn rezultat de licitație pentru bonuri de trezorerie
fund.price_updatedPrețul unității unui fond a fost actualizat
status.incidentUn incident de serviciu a început sau s-a încheiat

Ce 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