- Product Types
- Prices Types
- Adding Products
- One Time Pricing
- Subscription Pricing
- Subscription Trials Setup
- Installment Pricing
- Donation / Pay What You Want
- Inventory Management
- Product Variants
- Variant Images
- Digital Downloads
- Change Product Availability
- Product Collections
- First-Time Payment Discounts
- Manage Product Access
- Create Product With Free Trials
- Charge Set Up Fee on Trials
- Product List
- Product Pages
- Product Content
- Custom Buy Links
- Product SEO
- Change Permalinks
- Custom Fields
- Related Products
- Price Boost
- Product Bundle
- Product Reviews
- Product review shortcodes
- Test Mode/Payments
- Edit & Customize Form
- Change Form Template
- Delete SureCart Forms
- Add Checkout Form
- Checkout Form With Gutenberg
- Checkout Form in Elementor
- Custom Thank You Page
- Create Donation Form
- Customize Confirmation Popup
- Include Coupons in URLs
- Pre-Fill Checkout Fields
- Change Checkout Texts
- Password Field in Checkout
- Default Country Code
- Add Terms to Checkout
- Conditional Block Checkouts
- Remove Coupon Field
- Hide Quantity Option
- Disable Quantity Editing
- Disable Item Removal
- Country Specific Purchases
- Update Store Details
- Dark Mode
- Orders & Receipts
- Manage Slide-out Cart
- Customers Section Overview
- Create Customer
- Delete Customer
- Update Customer Details
- Edit Invoice Details
- Create Shipping Profiles
- Manage Shipping
- Disable Payment Processor
- Manage Store Notifications
- Manage PayPal Branding
- Transfer Store
- How to Download SureCart Purchase Invoice
- Vault – Redeem & Manage Your SureCart Pro Plan
- Enhance Performance Settings
- Invite Team Members
- Enable Spam Protection
- Sync WP Users
- User Roles & Permissions
- Export Data
- Clear Test Data
- Manage Email Notifications
- Remove User Roles
- Remove Plugin Data
- Delete Store
- Delete Business & User Account
- Guest checkout
- Switching Store Currency
- Fix View Order Button
- Fix Express Payment Buttons
- How To Stop Sending WooCommerce Notifications via SureCart?
- Fix PayPal Test Connection
- Fix Sign-In Loop
- Fix Order Confirmation Redirect
- Fix Divi Bullet Point Issue
- Fix Customer Dashboard
- Fix JSON Response Error
- Failed Payment Behavior
- Fix Stripe Zip Code Error
- Fix "Product Can’t Be Blank"
- Troubleshooting Guide
- PayPal IPN Warning Emails
- Caching Configuration for SureCart
- Why iDEAL Might Not Appear in Your CheckoutÂ
- Compatibility Guide
- Troubleshooting Stripe Payment
- Fix – SureCart store disconnected
- Configuring LiteSpeed Cache for SureCart
- Webhook Troubleshooting
Webhook Troubleshooting
This guide will help you understand what webhooks are, why they sometimes stop working, and how to fix common webhook issues on your SureCart store. By the end, you’ll know how to diagnose and resolve most webhook problems on your own.
Let’s get started.
What Are Webhooks and Why Do They Matter?
Think of webhooks as the communication channel between the SureCart cloud and your WordPress site.
When something happens in your store — like a customer places an order, a subscription renews, or a refund is processed — SureCart’s cloud sends a notification to your WordPress site so it can react. This is how your site knows to grant access to a membership, fire automations, update a customer’s account, or trigger an email.
Here’s the important part: Your orders, customers, and payment data are always safely stored in the SureCart cloud at app.surecart.com, regardless of whether webhooks are working. Webhook issues don’t mean you’ve lost data — they mean your WordPress site isn’t receiving updates from the cloud.
Note: If you received an email from SureCart saying “We’re having trouble with your webhook endpoint” or “Your webhook endpoint has been disabled,” don’t panic. Your store data is safe, and this guide will walk you through fixing it.
Before You Start
You’ll need:
- WordPress admin access
- SureCart installed and activated
- Access to your hosting control panel (for firewall/caching settings, if needed)
Quick Fix: Resync Your Webhooks
This simple step resolves the majority of webhook issues. Try it first before doing anything else.
- Go to your WordPress Dashboard → SureCart → Settings.
- Click on the Connection tab.
- Scroll down to Advanced Options.
- Click Resync Webhooks.
- While you’re there, click Clear Account Cache at the top of the settings page.
After resyncing, go to Tools → Site Health and check whether SureCart shows any errors. If everything looks good, you’re done!
Note: Resyncing re-establishes the connection between the SureCart cloud and your WordPress site. It fixes most temporary issues caused by server restarts, domain changes, or plugin updates.
Check Your Site Health
WordPress has a built-in tool that can tell you if something is blocking SureCart’s communication.
- Go to WordPress Dashboard → Tools → Site Health.
- Look for any errors related to:
- REST API — Messages like “The REST API encountered an error” or “The response is not a valid JSON response.”
- SureCart webhook processing — The Site Health page shows whether incoming webhooks are functioning normally.
If you see REST API errors, that’s almost always the cause of your webhook issues. Keep reading — the next sections explain the most common reasons and how to fix each one.
Common Causes and How to Fix Them
1. Caching Is Interfering with the REST API
This is the most common cause of webhook problems. SureCart relies on the WordPress REST API (the /wp-json/ routes on your site) to receive webhooks and handle dynamic content. If your caching plugin is caching these routes, SureCart receives outdated or broken responses.
How to fix it:
- Exclude /wp-json/ from caching. Most caching plugins have an option to exclude specific URLs or paths. Add /wp-json/ to the exclusion list.
- Exclude dynamic pages from caching. Pages like checkout, cart, customer dashboard, and login should never be cached.
- Don’t combine JavaScript files. This is unnecessary with HTTP/2 and can break SureCart’s functionality.
- Don’t defer core WordPress scripts. Scripts like wp-api-fetch, wp-a11y, wp-i18n, wp-url, dom-ready, and hooks must load normally.
If you’re using LiteSpeed Cache, we have a dedicated guide with the exact settings: Configuring LiteSpeed Cache for SureCart.
For a full overview of caching best practices, see our Caching Configuration Guide.
2. A Firewall or Security Plugin Is Blocking Webhook Requests
Webhooks are incoming requests from SureCart’s servers to your WordPress site. Firewalls, Web Application Firewalls (WAFs), and security plugins sometimes mistake these requests for threats and block them silently.
Signs this might be the issue:
- Webhooks worked fine before, then suddenly stopped.
- Your site uses Cloudflare, Sucuri, or a similar service.
- You have a security plugin like Wordfence, iThemes Security, or All In One Security installed.
- Your hosting provider recently changed server security settings.
How to fix it:
If you’re using Cloudflare:
- Log in to your Cloudflare dashboard.
- Go to Security → Events and look for any blocked requests matching your webhook URL (it will contain /wp-json/ in the path).
- If you find blocked requests, create a WAF exception rule that allows traffic to your webhook path. You can do this under Security → WAF → Custom Rules.
- If you have Bot Fight Mode enabled, consider creating an exception for webhook traffic — Bot Fight Mode can block automated requests from SureCart’s servers.
If you’re using Wordfence:
- Go to Wordfence → Firewall → All Firewall Options.
- Check the setting “Prevent discovery of usernames through the WordPress REST API” — if enabled, this can restrict the REST API access that SureCart needs.
- Go to Wordfence → Tools → Live Traffic and look for blocked requests containing /wp-json/surecart/.
- If you find blocked requests, use the “ADD PARAM TO FIREWALL ALLOWLIST” option, or add the webhook URL to the allowlisted URLs.
For other security plugins or server firewalls: Check your firewall or security logs for any blocked requests around the time webhooks stopped working. Allowlist the /wp-json/ path or your full webhook URL.
3. Your Hosting Provider Is Blocking Outbound or Inbound Connections
Some hosting environments restrict communication between your site and external services. This can prevent SureCart’s cloud from reaching your WordPress REST API.
Signs this might be the issue:
- Site Health shows “SureCart API is not reachable.”
- Your site is on shared hosting with restrictive firewall rules.
- You recently migrated to a new host.
How to fix it:
- Contact your hosting provider and ask them to ensure that incoming POST requests to /wp-json/ are not blocked.
- Ask them to verify that your server allows outbound connections to api.surecart.com and app.surecart.com.
- If your host uses a server-level firewall (such as ModSecurity), ask them to allowlist the REST API path.
4. A Plugin Conflict Is Breaking the REST API
Sometimes another plugin can interfere with the WordPress REST API, which breaks SureCart’s webhook processing.
How to check:
- Go to WordPress Dashboard → Plugins.
- Temporarily deactivate all plugins except SureCart.
- Check if webhooks start working (use Site Health to verify).
- If they do, reactivate your plugins one by one to identify which one is causing the conflict.
Note: You don’t need to delete any plugins — simply deactivating them is enough for testing. Once you identify the conflicting plugin, you can look for an alternative or adjust its settings to work alongside SureCart.
Understanding the Webhook Error Email
SureCart monitors your webhook endpoint automatically. If your endpoint returns errors (non-successful responses) for 40% or more of requests over a 3-day period, SureCart will disable it and send you an email notification.
When you receive this email:
- Don’t worry — your data is safe in the SureCart cloud.
- Follow the troubleshooting steps in this guide to identify and fix the root cause.
- Once fixed, resync your webhooks (SureCart → Settings → Connection → Advanced Options → Resync Webhooks).
Note: Simply resyncing without fixing the underlying issue may cause the endpoint to be disabled again. Make sure the root cause is resolved first.
Helpful Tips
- After changing domains or migrating your site, always resync your webhooks and clear the SureCart account cache. This ensures the new domain is properly connected.
- Keep WP_DEBUG set to false on your live site. When debug mode is on, PHP warnings or notices can get injected into REST API responses, breaking the JSON format that SureCart expects.
- If you use an external SMTP plugin (like WP Mail SMTP or SureMail), keep in mind that SureCart sends transactional emails from its own cloud — not through your WordPress SMTP setup. If customers aren’t receiving order emails, it’s a separate issue from webhook problems.
Still Need Help?
If you’ve tried the steps above and webhooks are still not working, we’re here to help!
Open a support ticket at surecart.com/contact-us and include the following so we can help you faster:
- A screenshot of your Tools → Site Health page.
- Your SureCart plugin version (found in WordPress → Plugins).
- Your hosting provider name and whether you use Cloudflare or any WAF/security service.
- A description of when the issue started (after an update? a migration? a new plugin?).
We don't respond to the article feedback, we use it to improve our support content.