Skip to content
Zid partners
Developer programsAn overview of every way to build on ZidApp PartnersPublish your app in the Zid App MarketTheme PartnersLaunch your theme in the Zid Theme Market
App MarketApps available to Zid merchantsTheme MarketThemes ready to install
Support
Partner help centreHow-to guides and troubleshootingDeveloper docsAPIs, SDKs and integration guidesBook a meetingA business or technical support call
What's new
BlogGuides and updates for developersChangelogThe latest partner platform updatesSuggest a featureThe feedback and ideas board
Partner enablement
Partner AdsVisibility packages on Zid’s channelsCustom themesThemes built for one merchantPartner communityConnect with developers building on Zid
Zid library
Zid reportsEverything you need to know about the marketDeveloper guidesOfficial references to build on
العربيةLog inJoin as a partner
Partner programs
Developer programsApp PartnersTheme Partners
Browse the market
App MarketTheme Market
Support & enablement
Partner help centreDeveloper docsBook a meetingBlogChangelogSuggest a featurePartner AdsCustom themesPartner communityZid reportsDeveloper guides
Language
العربية
Log inJoin as a partner
Home/Blog/APIs & integration
APIs & integration

Webhooks on Zid: subscribe, monitor health and recover broken endpoints

Subscribe to store events, keep your endpoints healthy, and bring a broken webhook back to life with Zid's health tracking and recovery APIs.

Sep 21, 20264 min read

Why webhooks

Webhooks let Zid notify your app the moment something happens in a store, such as a new order, a product update or a customer login. You don't have to keep asking the API. That matters because Zid allows 60 requests per minute per application per store and explicitly asks partners not to poll for order or payment status.

There are two families of events:

  • Store events (orders, products, carts, customers, categories). You subscribe per store through the Merchant API.
  • App subscription events such as app.market.application.install, app.market.subscription.active and app.market.application.uninstall. You set these up in the Webhooks section of your app in the Partner Dashboard, with a target URL and optional extra headers.
For shipping apps, the help centre notes that Zid creates the webhooks for you. You subscribe to the events from your partner account and fill in the target URL and header.

The store events you can subscribe to

  • Orders: order.create, order.status.update, order.payment_status.update
  • Products: product.create, product.update, product.publish, product.delete
  • Abandoned carts: abandoned_cart.created, abandoned_cart.completed
  • Customers: customer.create, customer.update, customer.merchant.update, customer.login
  • Categories: category.create, category.update, category.delete

order.create and order.status.update also accept conditions, so you only receive the events you care about. The supported keys are delivery_option_id, status and payment_method:

{
  "conditions": {
    "delivery_option_id": "55",
    "payment_method": "Cash On Delivery"
  }
}

Need an event or condition that doesn't exist yet? Zid invites suggestions through App Market support.

Create, list and delete subscriptions

All webhook endpoints need the Authorization and X-Manager-Token headers. Creating or deleting needs the third_webhook_write scope, and listing needs third_webhook_read.

POST   /v1/managers/webhooks
GET    /v1/managers/webhooks
DELETE /v1/managers/webhooks?original_id=2404
  • Create requires event, target_url and original_id. conditions, username and password are optional.
  • List returns the webhooks your app is subscribed to for that store.
  • Delete removes a webhook by its original_id. The older delete-by-subscriber endpoint is marked deprecated.

If you set username and password, Zid sends every delivery with an Authorization: Basic header built from username:password in Base64. Check it on your side to confirm the request really came from Zid.

Can't create order.status.update? The help centre says that if you already subscribed to it in your app's Webhooks section in the Partner Dashboard, you don't need to subscribe again.

How health tracking works

Zid watches every endpoint with a circuit breaker, and each webhook has a health_status:

  • healthy: deliveries go through as usual.
  • degraded: 10 or more failures in the past hour. Zid still attempts delivery, but you should investigate.
  • broken: 30 or more failures in the past hour. Delivery is suspended until you recover the webhook.

Failures are counted in a sliding one-hour window. A non-2xx response, a timeout or a similar error counts as a failure, and one successful delivery resets the count to healthy. A 429 response is not counted, because it tells Zid your endpoint is alive but rate-limited.

Before recording a failure, Zid retries a delivery up to 3 times, waiting 1, 5 and then 15 minutes. Only when all retries fail does the failure count toward the thresholds.

Broken webhooks and recovery

Once a webhook is broken, Zid dispatches no new events to it and discards pending undelivered events. You'll get an hourly batch email titled "Action Required: Your webhook endpoints are failing" with a broken_webhooks.csv attachment listing each broken webhook, its store, event, target URL and failure timestamps.

A broken webhook stays broken until you recover it through the API. Use GET /v1/managers/webhooks/health-summary for a quick count per state, and GET /v1/managers/webhooks/broken for the full list. Then recover:

POST /v1/managers/webhooks/broken/recover

{
  "webhooks": [
    {
      "broken_webhook_id": "{{webhook_uuid}}",
      "target_url": "https://your-new-endpoint.example.com/hook"
    }
  ]
}
  • You must supply a new target_url. Reusing the old one is rejected, because Zid wants proof you've fixed the underlying problem.
  • Zid soft-deletes the broken webhook, creates a new one for the same event, and starts it with a clean failure count.
  • Partial failures are supported, so one bad item doesn't block the rest of the batch.

Good practices for your endpoint

  • Use HTTPS with modern TLS. The Partner Dashboard validates URLs and expects TLS 1.2 or 1.3, a valid certificate, a publicly reachable server and a TLS handshake that completes within 5 seconds.
  • Acknowledge fast. Return a 2xx quickly and do heavy work in the background, so slow processing doesn't turn into counted failures.
  • Expect repeats. Retries mean the same event may reach you more than once. Make your handler safe to run twice.
  • Rate-limit with 429. If you're overwhelmed, a 429 won't push you toward broken.
  • Watch your health. Poll the health summary, read the failure emails, and check Webhook Logs in the Partner Dashboard, where you can view and retry deliveries.
  • Test on a development store. Trigger real actions and confirm every subscribed event arrives before you submit.
Zid notes that webhook logs aren't guaranteed to capture every event if errors occur or the system is down, so keep your own logs too.

Key takeaways

  • Subscribe to store events via POST /v1/managers/webhooks, and to app subscription events from the Partner Dashboard.
  • 10+ failures in an hour means degraded; 30+ means broken, and delivery stops.
  • Recover broken webhooks through the API with a new target URL.
  • Respond with a quick 2xx, handle repeats safely, and monitor health proactively.

Sources

  1. Webhooks Overview
  2. Webhook Health Tracking
  3. List Webhooks
  4. Create Webhook
  5. Delete Webhook
  6. Delete Webhook By subscriber
  7. Health Summary
  8. Broken Webhooks
  9. Recover Broken Webhooks
  10. App Management Events
  11. Rate Limiting
  12. How to create webhooks for my app ?
  13. Can't create webhook order.status.update
  14. Invalid "TLS URL Error" in the Partner Dashboard
  15. Explore Partner Dashboard

Start building on Zid

Sign up in the partner portal, then build and test on a development store.

Create your account →

Contents

  1. Why webhooks
  2. The store events you can subscribe to
  3. Create, list and delete subscriptions
  4. How health tracking works
  5. Broken webhooks and recovery
  6. Good practices for your endpoint

Share

Start building

Related articles

→
APIs & integration

Embedded apps on Zid: build inside the merchant dashboard

How embedded apps load inside the Zid merchant dashboard, the six-step auth flow, and the tools that help: Zid MUI, the Zid SDKs and storefront events.

6 min read
APIs & integration

Connecting to Zid with OAuth 2.0: tokens, headers and the activation policy

How Zid's authorization code flow works, which token goes in which header, when tokens expire, and what the activation policy expects from your app.

4 min read
Developer updates

The Account API: moving off GET v1/managers/profile

Zid is retiring GET v1/managers/profile, with migration due 30 September 2026. Here are the new Account API endpoints, their scopes and a migration checklist.

5 min read
Zid Partners

Partner programs

Developer programsApp PartnersTheme PartnersCreate your account

Resources

BlogPartner AdsZid reportsDeveloper docsPartner help centerChangelogRequest a feature

Browse the market

App MarketTheme Market

Terms & policies

App Partner termsTheme Partner termsTheme commercial policyPrivacy policy

Get in touch

Book a business callBook a technical support callTheme designers community
Zid — Al-Qudrah Al-Taqniyah for Technology and Communicationالعربية
Al-Qudrah Al-Taqniyah for Technology and Communication CompanyCR No. 1010365366VAT No. 300827827900003