BigCommerce deactivates webhooks after 48 hours: poll Sume jobs
BigCommerce deactivates a webhook once retries run out after about 48 hours. Your Sume jobs keep finishing, so reconcile with status polls and the job list.

When BigCommerce deactivates your webhook, your Sume jobs are not affected: they still run to a terminal state. What you lose is the trigger. The fix is to stop depending on any single push channel and reconcile from Sume by job id, using the status endpoint and its next_poll_after_seconds hint.
The retry timing below comes from the BigCommerce webhooks page; the arithmetic is this post's own.
The BigCommerce retry ladder
BigCommerce lists eleven retry delays and says the sequence ends at a cumulative maximum of 48 hours, after which the webhook is deactivated and a notice goes to the registered app email.
| Retry | Delay (seconds) |
|---|---|
| 1 | 60 |
| 2 | 180 |
| 3 | 300 |
| 4 | 600 |
| 5 | 900 |
| 6 | 1800 |
| 7 | 3600 |
| 8 | 7200 |
| 9 | 21600 |
| 10 | 50400 |
| 11 | 86400 |
Check the arithmetic
The eleven delays add to 173,040 seconds: 60 + 180 + 300 + 600 + 900 + 1,800 + 3,600 + 7,200 + 21,600 + 50,400 + 86,400. Divided by 3,600 that is about 48.07 hours, which matches the documented 48 hour maximum. In practice, an outage longer than two days costs you the webhook, not just a few events.
What Sume gives you for recovery
These are all documented on the Sume jobs and webhooks pages.
| Need | Endpoint or field |
|---|---|
| Check one job | GET /v1/jobs/{id}/status returns terminal, result_ready and sume_status |
| Pace the polling | next_poll_after_seconds when present, otherwise exponential backoff |
| List jobs | GET /v1/jobs (an API key sees the jobs its own member created) |
| Read the output | GET /v1/jobs/{id}/result, only for completed jobs |
| Replay a missed Sume callback | POST /v1/jobs/{job_id}/webhook/redeliver |
A reconcile loop
Keep a table of orders with the Sume job id you stored at submit time. A scheduled task then walks every job that is not yet terminal, reads its status, and fetches the result when result_ready is true. Do not resubmit a paid request just because your own process timed out; a Sume job keeps running whether or not anyone is watching. Sume's own delivery gives up after 10 attempts at 30 seconds, so the same polling loop also covers the Sume side.
Treat the two webhook systems as optimisations over the same truth: the job record on Sume's side.
Sources
Related posts
More in Integrations
- Calendly webhook signature t= v1= with 3 minutes vs Sume sume-v1
Calendly sends t=<ts>,v1=<sig> signed over t.body and suggests 3 minutes of tolerance. Sume signs timestamp.body as sume-v1; write a separate check for each.
- No generate_video tool for Sume in ChatGPT or Claude: Write is off
A Sume OAuth session with only mcp:read hides write and paid tools like generate_video. Reconnect with Write on, or use an API key; confirm in tools_list.
- Claude API MCP connector: public server, tool calls only, one toolset
The Claude API MCP connector reaches only public HTTP servers and supports only tool calls. mcp.sume.com fits. Here are the request, beta header and limits.
- Claude's MCP connector is not ZDR-eligible; what that means for Sume
Claude's MCP connector is not ZDR eligible and is unavailable on Bedrock and Google Cloud. For those cases, call Sume's REST API from your own backend.
Written by Sume