const webhook = paykit.webhooks
.setup({ webhookSecret: process.env.YOUR_WEBHOOK_SECRET! })
.on('customer.created', async event => {
// event.data is typed as Customer
})
.on('subscription.created', async event => {
// event.data is typed as Subscription
})
.on('payment.created', async event => {
// event.data is typed as Payment — payment initiated
})
.on('payment.succeeded', async event => {
// event.data is typed as Payment — payment completed successfully
})
.on('payment.failed', async event => {
// event.data is typed as Payment — payment failed or was canceled
})
.on('refund.created', async event => {
// event.data is typed as Refund
})
.on('invoice.generated', async event => {
// event.data is typed as Invoice
});
await webhook.handle({
body: rawBody,
headersAsObject: Object.fromEntries(request.headers),
fullUrl: request.url,
});