Setting up Stripe webhook
Make sure you already have: - Stripe enabled in Booknetic SaaS - your Stripe Publishable key and Secret key added in Booknetic SaaS settings - access to your...
Make sure you already have: - Stripe enabled in Booknetic SaaS - your Stripe Publishable key and Secret key added in Booknetic SaaS settings - access to your...
Stripe Checkout confirms the first payment when a tenant subscribes to a plan. But subscription billing does not stop after the first payment.
A Stripe webhook lets Stripe notify your Booknetic SaaS site when important subscription events happen later, such as:
Without a working webhook, Stripe may have the correct subscription status, but Booknetic SaaS may not update in real time. For example, a tenant may pay a renewal in Stripe, but the subscription period in Booknetic SaaS may not extend until the webhook is configured correctly.
In short: Stripe is where the subscription payment happens; the webhook is how Booknetic SaaS hears about the result.
Make sure you already have:
Your Stripe API version should be compatible with Booknetic SaaS. The current Booknetic SaaS Stripe integration sets the Stripe API version to:
2025-07-30.basil
If you use a very old Stripe account/API configuration and webhook events arrive but subscription renewals are still not updating in Booknetic SaaS, contact support for review.
Your webhook URL uses your own website domain plus this Booknetic SaaS webhook action:
https://your-domain.com/?booknetic_saas_action=stripe_webhook
Replace https://your-domain.com with your real SaaS platform domain.
For example:
https://example.com/?booknetic_saas_action=stripe_webhook
Important: Use
?booknetic_saas_action=stripe_webhook. Do not use older or different-looking webhook URLs such as?bkntcsaas_stripe_webhook=1.
For all Stripe Dashboard steps below, refer to Stripe's official documentation for current UI screenshots: https://docs.stripe.com/webhooks.
In your Stripe Dashboard:
https://your-domain.com/?booknetic_saas_action=stripe_webhook
Booknetic SaaS billing webhook
Booknetic SaaS listens for these Stripe webhook events:
| Stripe event | What it updates in Booknetic SaaS |
|---|---|
invoice.paid |
Confirms paid renewals and extends the tenant subscription period |
customer.subscription.deleted |
Marks the subscription as cancelled/unsubscribed in Booknetic SaaS |
Add both events to the endpoint:
invoice.paid
customer.subscription.deleted
Other Stripe events are not required for the current Booknetic SaaS subscription sync.
After you create the endpoint, open it in Stripe and reveal the Signing secret.
It usually starts with:
whsec_
Copy this value. You will paste it into Booknetic SaaS in the next step.
Keep this secret private. Do not send it in public chat, screenshots, or emails.
In your WordPress admin area:
whsec_... signing secret from Stripe.Booknetic SaaS uses this secret to check that webhook requests really came from Stripe. If the secret is missing or wrong, the webhook request is rejected.
After saving the endpoint and webhook secret, test the setup from Stripe.
In Stripe:
invoice.paid.A successful delivery should return an HTTP 200 response.
A Stripe test event is useful for checking that Stripe can reach your site and that the signing secret is accepted. To confirm the full subscription sync, also run a real test subscription flow in Stripe test mode and confirm that the tenant subscription updates in Booknetic SaaS.
After setup, you can verify the webhook in two places:
Stripe Dashboard → Webhooks
Booknetic SaaS tenant billing/subscription state
A 400 response usually means Booknetic SaaS could not verify the webhook request.
Most common causes:
whsec_... secret was pastedFix:
This usually means Booknetic SaaS did not receive or accept the customer.subscription.deleted webhook event.
Check:
customer.subscription.deletedRenewals are updated through the invoice.paid webhook event.
Check:
invoice.paidIf Stripe shows the event was delivered successfully but Booknetic SaaS still did not update, contact support with the Stripe event ID and the affected tenant.
When you create a new endpoint, Stripe generates a new signing secret. Copy the new whsec_... value into Booknetic SaaS and save settings again.
Booknetic SaaS does not currently include a Stripe Customer Portal button for tenants to update their card themselves.
Recommended options:
Do not tell tenants that they can update their card from a Booknetic SaaS Stripe Customer Portal link, because that self-service portal is not currently wired into Booknetic SaaS.
This page intentionally does not embed Stripe Dashboard screenshots. Stripe regularly updates its Dashboard UI, and stale screenshots create more confusion than they prevent.
For current, official screenshots of the Webhooks endpoint setup screens, see Stripe's own documentation: https://docs.stripe.com/webhooks.