API dla programistów
Nie odpytuj, my damy znać
Zarejestruj URL i wybierz zdarzenia. Wysyłamy podpisany POST w ciągu kilku sekund od każdej zmiany i ponawiamy próby przez maksymalnie 24 godziny, jeśli się nie uda.
Zdarzenia
rate.updatedZmienił się kurs waluty w którymś bankurate.best_changedZmieniła się najtańsza sprzedaż lub najwyższe kupnorate.threshold_crossedKurs przekroczył ustawiony przez Ciebie prógcbe.rate_changedZmienił się kurs Banku Centralnegogold.updatedZmieniły się ceny złotasilver.updatedZmieniły się ceny srebratransfer.quotes_updatedZmieniły się ceny dostawców przelewówcertificate.createdBank wprowadził nowy certyfikatcertificate.rate_changedZmieniło się oprocentowanie certyfikatutbill.auction_resultWynik przetargu bonów skarbowychfund.price_updatedZaktualizowano cenę jednostki funduszustatus.incidentAwaria usługi zaczęła się lub zakończyłaCo wysyłamy
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 }
}
}Sprawdź podpis
Każde zapytanie jest podpisane sekretem Twojego endpointu za pomocą HMAC SHA-256. Odrzucaj wszystko starsze niż 5 minut.
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));
}Dostarczanie i ponowienia
- Limit czasu
- Odpowiedz kodem 2xx w ciągu 10 sekund
- Ponowienia
- 8 prób w ciągu 24 godzin, z coraz dłuższymi odstępami
- Duplikaty
- Zdarzenie może dotrzeć dwa razy, więc pomijaj powtórzenia na podstawie id
- Kolejność
- Porównuj created_at, bo kolejność nie jest gwarantowana
- Wstrzymanie
- Po 3 dniach błędów wstrzymujemy endpoint i wysyłamy Ci e-mail, a pominięte zdarzenia możesz wysłać ponownie
Twoje endpointy
Webhooki są w drodzeEndpointy dodasz tutaj, gdy webhooki ruszą. Są dostępne od planu Pro wzwyż.
Wkrótce