Stripe webhook recovery for Next.js

Stripe says payment succeeded.
Your order doesn't exist.

HookRelay captures and replays failed Stripe webhooks so you can recover revenue and prove what actually happened.

No credit card required
5 minutes to integrate

Never Miss a
Stripe Payment Again

One wrapper around your Stripe webhook handler. Full visibility into what actually happened.

Before: Silent Failures
// Stripe webhook handler
export async function POST(req) {
  const event = await stripe.webhooks.constructEvent(...);

  // Vercel times out at 10s
  // Stripe marks it "delivered"
  // Customer charged, order missing

  await provisionAccess(event);

  return new Response('OK');
}
After: Recoverable
import { withHookRelay } from '@hookrelay/next';

export const POST = withHookRelay(async (event) => {
  // ✓ See which payments failed
  // ✓ Replay missed events safely
  // ✓ Know customer + amount affected

  await provisionAccess(event);
});

When a payment webhook fails, you'll know exactly which customer, which amount, and can replay it instantly.

See full integration guide

Stop losing revenue to
failed webhooks

Built for teams who can't afford to miss Stripe payments

See Which Payments Failed

See which Stripe events never reached your app. No more guessing why a customer was charged but never got access.

Replay Missed Payments Safely

One click to replay a missed payment webhook. Your handler runs exactly once—no double charges, no duplicate orders.

Prove What Happened

Prove whether Stripe or your infrastructure failed. When customers complain, you have the evidence.

Know Customer and Amount

Know exactly which customer and amount was affected. Stop digging through Stripe logs to reconcile missing orders.

5-Minute Integration

One wrapper around your existing Stripe handler. Works with Next.js, Vercel, and anywhere you handle webhooks.

No More Support Tickets

Stop manually fixing "I paid but didn't get access" issues. Catch and recover failed payments before customers notice.

How It Works

Three steps from missed payments to recovered revenue

1

Stripe Sends Payment Webhook

Point your Stripe webhook URL to HookRelay. We receive and persist every payment event before forwarding.

2

We Track What Actually Happened

Did your handler succeed? Time out? Throw an error? We know—and show you exactly which customer was affected.

3

Replay and Recover

Missed a payment? One click to replay. Your handler runs exactly once—customer gets access, you keep the revenue.

Start Recovering Revenue

Free tier · No credit card · 5 minute setup

Frequently Asked Questions

Everything you need to know about HookRelay

Why do Stripe webhooks fail silently?

Stripe marks a webhook as "delivered" when your server returns 200—even if your code didn't finish running. Vercel has a 10-second timeout. Database connections drop. Deploys happen mid-request. Stripe thinks the payment webhook succeeded, but your customer never got access. HookRelay tracks what actually happened.

Do I need to change my existing code?

Minimal changes. Wrap your existing webhook handler with withHookRelay() and update your webhook URL in Stripe's dashboard to point to HookRelay. Your handler logic stays the same.

What happens if HookRelay goes down?

Stripe automatically retries failed webhook deliveries for up to 3 days. If HookRelay experiences downtime, Stripe will retry and we'll process events once we're back online. You can also replay missed events from the dashboard.

Can't I just check Stripe's dashboard?

Stripe shows you webhook delivery attempts and their HTTP status codes. It doesn't show you whether your code actually ran to completion. A 200 response doesn't mean the order was created or access was provisioned. HookRelay tracks actual execution outcomes—so you know the difference between "delivered" and "processed."

How much revenue am I actually losing?

Most teams don't know until they look. A 0.1% webhook failure rate at $100 average order value across 10,000 orders is $1,000/month in lost revenue—plus support costs and angry customers. HookRelay's free tier handles 2,500 events/month. Start there and see what you find.

Simple, Transparent Pricing

Start free, scale as you grow. No hidden fees.

Free

Try webhook recovery

$0 /month
Get started
1 webhook endpoint
2,500 events/month
14-day event retention
5 replays/month
Automatic retries
Recommended

Pro

Unlimited replay for peace of mind

$19 /month
Start 14-day free trial
Unlimited endpoints
50,000 events/month
30-day event retention
Unlimited replay
Email support

Need more? Contact us for custom plans with higher limits.