Your Lovable or Bolt app does not react to payments
Apps built with tools like Lovable and Bolt often have a front end plus a few serverless functions. A webhook must point at a function. If it points at a page, the provider sees a happy reply and nothing runs.
What you might see
- The payment succeeds, but your app never updates the user.
- The provider shows 200 for the webhook, yet your database did not change.
- Or the provider shows 401, 404 or 307 errors.
Why it happens
Single-page apps often answer every path with the same HTML page and a 200 status. A webhook sent to such a path looks fine to the provider, but no code runs.
Other common causes: a login check in front of the function, a redirect, test mode and live mode set up separately, or an endpoint the provider turned off after many failures.
How to fix it
- Point the webhook at a function. Use the address of your serverless function, not a page route like /payment-success. Open it in a browser with a GET request. A page with your app's layout means you hit the front end.
- Turn off the login check for that function. If your platform checks for a login token, an outside provider will be refused. Turn that check off for the webhook function only, and verify the provider signature in code.
- Register the right mode. Add a webhook in test mode and another in live mode. Each has its own address entry and its own secret.
- Pick the events you need. Make sure the events your app waits for are selected, for example checkout completed or subscription created.
- Check the endpoint is still on. Providers can disable an endpoint after many failed deliveries. Re-enable it after you fix the cause.
Check your fix
Scan the exact webhook address with Tillping. A page-like HTML answer to a POST, a redirect or a login wall will show up as a finding.
Run the free check
Paste your webhook address and see what your endpoint answers. No account. No keys.
Check my webhook