API για προγραμματιστές
Μην ρωτάτε συνέχεια, σας ενημερώνουμε εμείς
Καταχωρίστε ένα URL και επιλέξτε συμβάντα. Στέλνουμε ένα υπογεγραμμένο POST μέσα σε δευτερόλεπτα από κάθε αλλαγή και ξαναπροσπαθούμε για έως και 24 ώρες αν αποτύχει.
Συμβάντα
rate.updatedΜια ισοτιμία άλλαξε σε κάποια τράπεζαrate.best_changedΆλλαξε η φθηνότερη πώληση ή η υψηλότερη αγοράrate.threshold_crossedΜια ισοτιμία ξεπέρασε ένα όριο που ορίσατεcbe.rate_changedΆλλαξε η ισοτιμία της Κεντρικής Τράπεζαςgold.updatedΆλλαξαν οι τιμές του χρυσούsilver.updatedΆλλαξαν οι τιμές του ασημιούtransfer.quotes_updatedΆλλαξαν οι τιμές των παρόχων εμβασμάτωνcertificate.createdΜια τράπεζα έβγαλε νέο πιστοποιητικόcertificate.rate_changedΆλλαξε η απόδοση ενός πιστοποιητικούtbill.auction_resultΑποτέλεσμα δημοπρασίας εντόκων γραμματίωνfund.price_updatedΕνημερώθηκε η τιμή μεριδίου ενός αμοιβαίου κεφαλαίουstatus.incidentΈνα πρόβλημα της υπηρεσίας ξεκίνησε ή έληξεΤι στέλνουμε
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 }
}
}Ελέγξτε την υπογραφή
Κάθε αίτημα υπογράφεται με το μυστικό του endpoint σας μέσω HMAC SHA-256. Απορρίψτε οτιδήποτε είναι παλαιότερο από 5 λεπτά.
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));
}Παράδοση και επαναλήψεις
- Χρονικό όριο
- Απαντήστε με 2xx μέσα σε 10 δευτερόλεπτα
- Επαναλήψεις
- 8 προσπάθειες μέσα σε 24 ώρες, με όλο και μεγαλύτερο διάστημα
- Διπλότυπα
- Ένα συμβάν μπορεί να φτάσει δύο φορές, οπότε χρησιμοποιήστε το id του για να παραλείπετε τις επαναλήψεις
- Σειρά
- Συγκρίνετε το created_at, γιατί η σειρά δεν είναι εγγυημένη
- Παύση
- Θέτουμε ένα endpoint σε παύση μετά από 3 ημέρες αποτυχιών και σας στέλνουμε email, και μπορείτε να ξαναστείλετε ό,τι χάσατε
Τα endpoints σας
Τα webhooks έρχονταιΘα προσθέτετε endpoints εδώ μόλις ανοίξουν τα webhooks. Περιλαμβάνονται από το πακέτο Pro και πάνω.
Σύντομα