API per sviluppatori

Basta controllare, ti avvisiamo noi

Registra un URL e scegli gli eventi. Inviamo una POST firmata pochi secondi dopo ogni variazione e riproviamo fino a 24 ore se non va a buon fine.

Eventi

rate.updatedUn cambio è variato in una banca
rate.best_changedLa vendita più conveniente o l'acquisto più alto è cambiato
rate.threshold_crossedUn cambio ha superato una soglia che hai impostato
cbe.rate_changedIl cambio della Banca Centrale è variato
gold.updatedI prezzi dell'oro sono variati
silver.updatedI prezzi dell'argento sono variati
transfer.quotes_updatedI prezzi degli operatori di trasferimento sono variati
certificate.createdUna banca ha lanciato un nuovo certificato
certificate.rate_changedIl rendimento di un certificato è cambiato
tbill.auction_resultIl risultato di un'asta di buoni del Tesoro
fund.price_updatedIl prezzo della quota di un fondo è stato aggiornato
status.incidentUn problema del servizio è iniziato o terminato

Cosa inviamo

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

Verifica la firma

Ogni richiesta è firmata con il segreto del tuo endpoint tramite HMAC SHA-256. Rifiuta tutto ciò che ha più di 5 minuti.

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

Consegna e tentativi

Tempo limite
Rispondi con 2xx entro 10 secondi
Tentativi
8 tentativi in 24 ore, sempre più distanziati
Duplicati
Un evento può arrivare due volte, quindi usa il suo id per ignorare le ripetizioni
Ordine
Confronta created_at, perché l'ordine non è garantito
Pausa
Mettiamo in pausa un endpoint dopo 3 giorni di errori e ti scriviamo un'email, così puoi recuperare ciò che hai perso

I tuoi endpoint

I webhook stanno arrivandoPotrai aggiungere endpoint qui quando i webhook saranno attivi. Sono inclusi dal piano Pro in su.
In arrivo

I cambi mostrati sono solo indicativi, e il cambio applicato in filiale o al pagamento può essere diverso. Verificalo con la banca o il fornitore prima di comprare, vendere o inviare denaro. Geneh non vende valuta né oro e non fornisce consulenza sugli investimenti.

Disponibile su Google PlayScarica su App Store
© 2026 GenehCreato e gestito da