Skip to content

article

Webhooks and real-time sync

What webhooks are, how StretchSuite uses them to keep payments, email, and publishing status in sync in real time, and how to diagnose a confirmation that seems slow or missing.

What a webhook is

Most of the time your apps ask the backend for data ("what are my latest orders?"). A webhook flips that around: an external service tells StretchSuite the moment something happens, by making an HTTP call to a StretchSuite endpoint. It's the difference between refreshing your inbox and getting a push notification.

Webhooks are how StretchSuite stays in real-time sync with the outside world — so a payment, an inbound email, or a publish result reflects in your workspace within seconds instead of on the next manual refresh.

Where StretchSuite uses webhooks

You benefit from webhooks in several managed flows, mostly without configuring anything:

  • Billing / entitlements. When you buy an app or plan, the payment processor (Stripe) sends a webhook the instant checkout succeeds. StretchSuite receives it and refreshes your workspace entitlements, activating your new app automatically. This is why Billing shows "the hub will refresh workspace entitlements after Stripe webhook sync" after checkout.
  • Store orders. A completed StretchShop checkout triggers order creation, so the order and customer appear under the store's Orders/Customers tabs.
  • Inbound email. StretchMail's inbound provider notifies the platform when mail arrives, so replies route to the right inbox or workflow in real time.
  • Publishing status. As StretchSocial posts go out, status updates flow back so the publishing queue reflects success or failure.

For these managed integrations, the webhooks are wired up for you as part of the platform — you don't create endpoints or paste signing secrets.

How a webhook flow looks end to end

Using a billing purchase as the example:

  1. You complete Stripe Checkout for the StretchShop app.
  2. Stripe fires a checkout.session.completed webhook to StretchSuite's billing endpoint.
  3. StretchSuite verifies the webhook's signature (so it knows the call is genuinely from Stripe, not a forgery) and processes it.
  4. Your entitlements update; StretchShop flips to active in My Apps.
  5. Back in Billing, your confirmation resolves — usually within seconds.

Signature verification is important: legitimate webhooks are cryptographically signed, so StretchSuite only acts on real events. (StretchWP updates use the same principle — signed with HMAC and Ed25519 so a site only accepts genuine Stretch instructions.)

A realistic example of a "slow" webhook

You buy an add-on and the app doesn't appear instantly:

  1. Checkout says completed, but My Apps still shows the app as gated.
  2. This is the brief window before the webhook is received and processed. In almost all cases it resolves within a short time.
  3. You refresh Billing/My Apps after a moment and the app is now active.
  4. If it stays gated for an extended period, that suggests the webhook didn't arrive or failed processing — time to contact support with your payment confirmation.

Troubleshooting

Payment succeeded but access didn't update — the webhook is how access updates; give it a short moment and refresh. If it persists, capture your checkout confirmation/receipt and contact support so the event can be re-synced.

A store order is missing — confirm the customer actually completed payment (abandoned carts don't fire the completion webhook). Test-mode transactions are the fastest way to confirm the order-creation path works.

Inbound email didn't arrive in the workspace — first confirm the domain is verified and inbound routing is configured; without those, there's nothing for the inbound webhook to deliver to.

Duplicate actions — well-designed webhook handling is idempotent (safe to receive the same event twice). If you see an apparent duplicate, report it rather than retrying payments.

Tips

  • Trust the confirmation, then verify state. After a purchase, the reliable check is whether entitlements/orders updated — not the checkout page alone.
  • Don't re-buy or re-checkout because access lagged a few seconds; that risks a duplicate charge. Refresh first, then contact support if needed.
  • Keep billing contact details current so failed-payment and dispute webhooks translate into notices you actually receive.

FAQ

Do I have to set up webhooks myself? For the built-in integrations (billing, store, email, publishing), no — they're managed. Custom outbound webhooks for your own automations are a developer feature; see API access, tokens, and StretchDev.

How does StretchSuite know a webhook is real? Incoming webhooks are signature-verified. Forged calls without a valid signature are rejected.

How fast is real-time? Typically seconds. Occasional short delays happen; sustained delays indicate a delivery problem worth reporting.

Was this helpful?

Help us improve this article

Use these controls to share whether this answer solved the issue. Feedback helps prioritize updates to StretchSuite Support.