A $30 wallet and a 24-clip batch: where the 402 lands on Seedance 2
With $30.00 and 24 Seedance 2 clips at $3.024 each, submit 9 is accepted and 10 returns 402, with $2.784 free. The reserve math and a stop-on-402 loop.

A full 24-clip batch of 8-second Seedance 2 clips at 720p, 9:16 needs $72.576 of reserve ($3.024 each), so a $30.00 wallet accepts 9 submits and returns 402 insufficient_credits on submit 10. The remaining $2.784 stays in the wallet because no further full-price clip fits.
The 402 arrives before any provider work starts, and the first nine jobs are unaffected. You do not lose the accepted jobs; you only decide what to do about the other fifteen.
Cumulative reserve
Reserve = submits x $3.024. The wallet check compares the next clip's estimate with what is left after existing reservations.
| Submits so far | Reserved | Next submit result |
|---|---|---|
| 1 | $3.024 | accepted |
| 5 | $15.12 | accepted |
| 9 | $27.216 | accepted |
| 10 | $30.24 | 402 insufficient_credits |
What to do with the tail
Add funds in Billing & subscription and resubmit with the same idempotency keys, or shrink the tail. One more clip at 480p costs $1.4062 and fits in the $2.784 that remains. The docs' advice for a 402 is to upgrade or add funds, or submit a less expensive request; retrying the same request without adding funds returns the same answer.
import os, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
body = {"model": "seedance-2", "prompt": "Product spin on a white table",
"resolution": "720p", "duration": 8, "aspect_ratio": "9:16"}
sent = []
for i in range(24):
h = {**H, "Idempotency-Key": f"batch24-{i:02d}"}
r = requests.post("https://api.sume.com/v1/videos", json=body, headers=h, timeout=60)
if r.status_code == 402:
print("stop: add funds, resume at", i)
break
r.raise_for_status()
sent.append(r.json()["id"])
print(len(sent), "accepted")Gotchas
- A plan's queue limit can answer first: Pro accepts 24 jobs at a time, Free only 6, and a full queue returns
429 queue_full, not 402. - Reserves release on failure or cancel before capture, so a failed clip frees $3.024 for the next submit.
- Resuming with the same keys is safe: a replay returns the original job rather than a second charge.
Sources
Related posts
More in Pricing
- 30-second 1080p AI video: Luma $7.20, LTX $3.90, Sume from $5.63
What 30 seconds of 1080p costs: Luma as six 5-second clips ($7.20) or three 10-second ones ($10.80), LTX Fast $3.90, and Sume. Arithmetic shown.
- 30-second vertical Short at 1080p: $5.625 to $42.65 by Sume model
Omni Flash 1.1 makes 30 s of 1080p 9:16 for $5.625 in three jobs, H3 Max $6.00, Wan 3.0 $7.50 in one job and Seedance 2.5 $42.65. Joins add $0.10.
- 300 captioned clips on Sume: $60, and a restyle pass costs $60 more
Each Sume caption job reserves and captures $0.20 for videos up to 60 seconds. 300 clips are $60.00; restyling all 300 in a second style is another $60.00.
- 300 Nano Banana 2.1 images across four sizes: $30.00 on Sume
A 300-image Nano Banana 2.1 batch split 150 at 0.5K, 90 at 1K, 45 at 2K and 15 at 4K costs $30.00 on Sume; per-tier math shown.
Written by Sume