Webhooks
Subscribe to events with signed HTTPS callbacks.
Latest
6 min
Updated 2026-07-09
Webhooks
Subscribe to events at Admin → Integrations → Webhooks.
Events
payment.succeededpayment.failedreport_card.issuedcertificate.issuedstudent.enrolled
Signature
Every webhook carries an X-EduWallet-Signature header computed as:
text
HMAC_SHA256(secret, timestamp + "." + raw_body)Verify with:
ts
import { createHmac, timingSafeEqual } from "crypto";
function verify(sig: string, ts: string, body: string, secret: string) {
const expected = createHmac("sha256", secret)
.update(ts + "." + body)
.digest("hex");
return timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
}Was this article helpful?