import express from 'express';
import { verifyWebhook } from '@prudra/webhooks';
const app = express();
app.post(
'/webhooks/prudra',
express.raw({ type: '*/*' }),
async (req, res) => {
res.sendStatus(200);
const isValid = verifyWebhook({
payload: req.body as Buffer,
signature: req.headers['x-prudra-signature'] as string,
timestamp: req.headers['x-prudra-timestamp'] as string,
secret: process.env.PRUDRA_WEBHOOK_SECRET!,
});
if (!isValid) {
console.warn('[Webhook] Invalid signature');
return;
}
const event = JSON.parse((req.body as Buffer).toString());
console.log(`[Webhook] ${event.type} (${event.eventId})`);
switch (event.type) {
case 'payment.received':
console.log(' Amount:', event.payload.amount);
break;
case 'vault.sealed':
console.log(' Summary:', event.payload.summary);
break;
}
}
);
app.use(express.json());
app.listen(4005);