callback_url for 30-second Seedance 2.5 and Wan 3.0 jobs

Add callback_url (HTTPS) to a 30-second seedance-2.5 or wan-3.0 job and Sume POSTs a signed webhook when it finishes. Headers and what to verify.

4 min readSume
All posts

Add callback_url (it must be HTTPS) to the request and Sume POSTs to it when the job reaches a terminal state. The body is signed, with x-sume-webhook-timestamp and x-sume-webhook-signature headers, so verify before you trust it.

A 30-second render is the case where polling every 30 seconds adds up; a webhook replaces the loop.

Request

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "wan-3.0", "prompt": "Drone shot over a harbor at dawn",
       "duration": 30, "resolution": "480p",
       "callback_url": "https://example.com/hooks/sume"}'

What to handle

Webhook checklist (read 2026-10-07)
StepDetail
Signatureverify the raw JSON body with the signing secret; refuse if the secret is empty
Timestampcheck the timestamp header to reject replays
EnvelopeSume's standard job webhook, not OpenRouter's video.generation.*
Fallbackpoll the polling_url if no callback arrives

Notes

The webhook guide and the exact verification steps are in the API reference. Use the job status endpoint to double check any job you did not hear about.

Security basics

A webhook endpoint is public, so it needs verification. Compute the signature over the raw body, compare it in constant time, and reject requests with an old timestamp. Your verifier must refuse to run with an empty secret.

Respond quickly with a 2xx and do the heavy work (download, transcode) in a queue.

Webhook or poll

Use a webhook for production pipelines and polling for scripts and notebooks. Doing both is safe: the webhook triggers the next step and a slow poll catches anything missed.

Remember that polling at 30 seconds is the interval suggested in the docs.

  • HTTPS only.
  • Idempotent handlers.
  • Log job ids.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume