Entwickler-API

Schluss mit Abfragen, wir sagen dir Bescheid

Registriere eine URL und wähle Ereignisse. Wir senden innerhalb von Sekunden nach jeder Änderung einen signierten POST und versuchen es bei Fehlern bis zu 24 Stunden lang erneut.

Ereignisse

rate.updatedEin Wechselkurs hat sich bei einer Bank geändert
rate.best_changedDer günstigste Verkauf oder der höchste Ankauf hat sich geändert
rate.threshold_crossedEin Kurs hat einen von dir gesetzten Schwellenwert überschritten
cbe.rate_changedDer Kurs der Zentralbank hat sich geändert
gold.updatedDie Goldpreise haben sich geändert
silver.updatedDie Silberpreise haben sich geändert
transfer.quotes_updatedDie Preise der Transferanbieter haben sich geändert
certificate.createdEine Bank hat ein neues Zertifikat eingeführt
certificate.rate_changedDie Rendite eines Zertifikats hat sich geändert
tbill.auction_resultEin Ergebnis einer Schatzwechselauktion
fund.price_updatedDer Anteilspreis eines Fonds wurde aktualisiert
status.incidentEine Störung des Dienstes hat begonnen oder ist beendet

Was wir senden

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 }
  }
}

Signatur prüfen

Jede Anfrage wird mit dem Geheimnis deines Endpunkts per HMAC SHA-256 signiert. Lehne alles ab, was älter als 5 Minuten ist.

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));
}

Zustellung und Wiederholungen

Zeitlimit
Antworte innerhalb von 10 Sekunden mit 2xx
Wiederholungen
8 Versuche über 24 Stunden mit jeweils größerem Abstand
Duplikate
Ein Ereignis kann doppelt ankommen, nutze also seine id, um Wiederholungen zu überspringen
Reihenfolge
Vergleiche created_at, denn die Reihenfolge ist nicht garantiert
Pausieren
Nach 3 Tagen mit Fehlern pausieren wir einen Endpunkt und schreiben dir eine E-Mail, und du kannst Verpasstes erneut abspielen

Deine Endpunkte

Webhooks sind unterwegsSobald Webhooks starten, kannst du hier Endpunkte hinzufügen. Sie sind ab Pro enthalten.
Demnächst