import crypto from "node:crypto";
app.post("/webhooks/robase", express.raw({ type: "*/*" }), (req, res) => {
const sig = req.headers["x-robase-signature"];
const expected = crypto
.createHmac("sha256", process.env.ROBASE_WEBHOOK_SECRET)
.update(req.body)
.digest("hex");
if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) {
return res.status(401).end();
}
const event = JSON.parse(req.body.toString());
// event.event is "otp.sent", "sms.delivered", ...
res.json({ received: true });
});