HoldClearRequest invoice

Paddle · Next.js · Vercel · one existing route

Make the webhook verifiable before it changes subscription state.

A reachable URL is not proof of a safe billing event. This fixed milestone identifies the current failure, repairs one bounded route, verifies agreed sandbox events, and leaves a traceable handoff without asking for secrets in chat.

Sandbox firstOne routeClient-owned environmentNo secrets in messages
REPRODUCEAUTHENTICATEPROTECT STATEPROVE

DELIVERY CONTROLS

Four gates between an incoming POST and trusted billing state.

01

Reproduce the actual failure

Separate a signature error, wrong route, method mismatch, timeout, server error, and a successful delivery that fails to update application state.

02

Verify before parsing

Read the unmodified request body, verify Paddle-Signature with the destination-specific secret, and keep that secret inside the client-owned Vercel environment.

03

Make delivery repeat-safe

Acknowledge quickly, deduplicate by event_id, and use occurred_at where the existing data model must protect against out-of-order events.

04

Prove the agreed events

Run selected sandbox subscription or transaction events through Paddle's simulator and return traceable deployment evidence and remaining risks.

THE $250 BOUNDARY

Small enough to start. Specific enough to accept.

The title of a support request cannot diagnose the defect. The fixed scope covers one route and one evidence loop; anything broader is quoted only after the failure and current billing model are visible.

INCLUDED01
  • One existing Next.js webhook route deployed on Vercel
  • Current-failure reproduction and route/runtime diagnosis
  • Raw-body and Paddle-Signature verification repair
  • event_id deduplication and occurred_at ordering where the current data model supports them
  • Agreed Paddle sandbox simulator events and an evidence handoff
  • Changed-file summary, configuration checklist, and remaining-risk list
NOT INCLUDED02
  • Tax, VAT, merchant-of-record, processor-selection, or legal advice
  • A rewrite of the product's subscription, entitlement, or billing architecture
  • Additional webhook destinations, providers, or unrelated application defects
  • Production-revenue, approval, conversion, or zero-downtime guarantees
  • Secrets pasted into Reddit, email, a ticket, or a shared document

ACCEPTANCE EVIDENCE

Not “it should work.” A result you can inspect.

FAILURE

The original symptom, reproduction path, and identified failure class.

AUTH

Raw-body handling, destination-secret location, and signature-verification result without exposing the secret.

STATE

Duplicate and ordering behavior for the agreed event types, limited to the current data model.

PROOF

Simulator evidence, deployed route, changed files, configuration checklist, and explicit remaining risks.

FIRST QUALIFICATION

App Router or Pages Router—and what fails now?

Send the failure class and event names first. Do not send source code, credentials, or a webhook secret in the first message.
Request the $250 crypto invoice →