Stripe
ts
import { Hibiki } from "@hibiki-js/core"
import { stripe } from "@hibiki-js/stripe"
const app = new Hibiki().use(stripe({
secret: process.env.STRIPE_WEBHOOK_SECRET!,
tolerance: 300,
}))Signature verification uses Web Crypto HMAC-SHA256 and does not depend on the Stripe SDK. Other Stripe events return 200 by default (or 400 with strictEvents: true).
Supported events
Checkout
checkout.session.completedcheckout.session.expiredcheckout.session.async_payment_succeededcheckout.session.async_payment_failed
PaymentIntent
payment_intent.succeededpayment_intent.payment_failedpayment_intent.canceledpayment_intent.requires_action
Invoice
invoice.paidinvoice.payment_failedinvoice.payment_action_requiredinvoice.finalizedinvoice.upcominginvoice.created
Customer / Subscription
customer.createdcustomer.updatedcustomer.deletedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedcustomer.subscription.pausedcustomer.subscription.resumedcustomer.subscription.trial_will_end
Charge / Dispute / Refund / PaymentMethod
charge.succeededcharge.failedcharge.refundedcharge.dispute.createdcharge.dispute.updatedcharge.dispute.closedrefund.createdrefund.updatedpayment_method.attachedpayment_method.detached
SetupIntent
setup_intent.succeeded
Handlers are registered with the stripe. prefix:
ts
app.on("stripe.payment_intent.succeeded", async ({ event }) => {
console.log(event.data.object.id)
})See the API reference for options and exported types.
