Skip to main content


The stripe webhook allows you to get real-time updates about various stripe events.


Stripe validates the authenticity of its webhook events by including a signature in each event's header.

Rowy automatically handles the complexity of the signature verification process, you just need to have a secret key named stripe in the Google Secret Manager created.


The sample parser provided increments profile credits when the Stripe checkout.session.completed event is triggered.

const stripeParser: Parser = async ({ req, db, ref, logging }) => {
const { FieldValue } = await import('@google-cloud/firestore');

try {
const event = req.body;
// For event types:
switch (event.type) {
case "checkout.session.completed":
logging.log("Checkout completed");

// Get the user id from the metadata
// For more info:
const { uid } =;

const profile = await db
.where("userId", "==", uid)

if (!profile.empty) {
const profileData =[0];
await db
.update({ 'package.limit': FieldValue.increment(100) });

case "payment_intent.payment_failed":
// Handle failed payment here
logging.error("Payment failed");
} catch (error) {