Sume webhook Redeliver vs Send test: which one replays a real job?
Send test posts a dummy webhook.test payload to a URL you type. Redeliver re-posts a real job's terminal event with a fresh signature. API routes for both.

Use Redeliver to replay a real Sume job event, and Send test to check that your endpoint verifies signatures. Send test posts a dummy webhook.test body to a URL you type. Redeliver re-posts that job's actual job.completed, job.failed or job.canceled event with a fresh timestamp and signature.
Send test
It is a control on /dashboard/webhooks, and the API route is POST /v1/webhooks/test-deliveries with account:write. The payload is signed but contains no job_id, and Sume does not add it to your request list. Use it after you deploy a verifier or change the URL.
{
"event": "webhook.test",
"payload": { "ok": true,
"message": "Sume webhook test. Not a job or Format run." }
}Redeliver
Redeliver works per delivery row in the dashboard, or with POST /v1/jobs/{job_id}/webhook/redeliver and the jobs:write scope. It sends the real terminal event again, signed freshly, so the replay passes a timestamp check even days later. It still works after the automatic attempts are used up, and it does not consume one of them.
Which to pick
| Situation | Use |
|---|---|
| New endpoint, want to check the signature code | Send test |
| Your handler was down and a job event was missed | Redeliver |
| Handler bug fixed, need to reprocess one job | Redeliver |
| Checking that Sume can reach a URL | Send test |
Make replays safe
Both can reach you more than once, as can automatic retries. Store the event durably, key on job_id, and treat a second delivery of the same job as a no-op. Return any 2xx once it is stored.
Scopes and paths
Both routes need an API key with the right scope, so a read-only key will get a permission error. Send test requires account:write. Redeliver requires jobs:write. Reading the signing secret needs account:read.
Redeliver only exists for job webhooks that were configured with a webhook_url. Run webhooks for Actions, Formats and Agent Completions share the signature scheme and the secret, but they have their own *.run.terminal events.
Related posts
More in Developers
- Sume webhook retries: 10 attempts 30 seconds apart, size your downtime
Sume retries a failing webhook up to 10 attempts at a default 30-second spacing, about 4.5 minutes. Past that, redeliver or poll after a publisher outage.
- Sume webhook signature fails? Verify the raw body before JSON.parse
Sume signs HMAC-SHA256 over timestamp.raw_body. Re-serialized JSON changes the bytes and the check fails. Read the raw body first; a Node verifier is included.
- Sume rejects localhost webhook_url: develop locally with polling
Sume webhook URLs must be public HTTPS. localhost, private-network and non-HTTPS URLs are rejected. Develop with polling and Send test, then switch the URL on.
- Swift: submit a Kling 3.0 job and save the MP4 to disk
One Swift file: POST /v1/videos for kling-3, poll the polling_url, follow the content redirect and write out.mp4. A 5 s clip without audio costs $0.70.
Written by Sume