402 on shot 4 of 6: a $3.00 wallet and a mixed project, step by step
Walk a $3.00 balance through stills, voice, music, six shots and a render. See which submit returns 402, what was already paid, and how to resume safely.

With a $3.00 balance, the mixed project accepts its stills, voice, music and three video shots, then returns 402 insufficient_credits on shot 4. The 402 itself costs nothing: Sume cannot reserve the estimate, so no provider work starts. The earlier steps are already paid and stay yours, so the fix is to add funds and submit only what is missing, not the whole project again.
The steps run in order: three 2K stills (nano-banana-2.1, $0.15 each), a 450-character voice-over, a music bed, six 5-second wan-3.0 shots at 720p, and a one-minute render. Rates are from the Sume catalog (read 2026-10-08).
The balance after every submit
Sume reserves the estimated amount when it accepts a submit, and captures it on success. A reserved amount is not spendable, so the balance falls at submit, not at completion. The table subtracts each accepted step from the running balance.
| Step | Estimate | Result | Balance after |
|---|---|---|---|
| 3 stills 2K | $0.4500 | accepted | $2.5500 |
| voice 450 chars | $0.0214 | accepted | $2.5286 |
| music | $0.1250 | accepted | $2.4036 |
| shot 1 (5 s, wan-3.0 720p) | $0.6250 | accepted | $1.7786 |
| shot 2 (5 s, wan-3.0 720p) | $0.6250 | accepted | $1.1536 |
| shot 3 (5 s, wan-3.0 720p) | $0.6250 | accepted | $0.5286 |
| shot 4 (5 s, wan-3.0 720p) | $0.6250 | 402 insufficient_credits | $0.5286 |
| shot 5 (5 s, wan-3.0 720p) | $0.6250 | 402 insufficient_credits | $0.5286 |
| shot 6 (5 s, wan-3.0 720p) | $0.6250 | 402 insufficient_credits | $0.5286 |
| render 1 min | $0.1000 | not submitted (shots 4-6 missing) | $0.5286 |
What the 402 leaves behind
The steps accepted so far cost $2.4714. The balance of $0.5286 is below the $0.6250 that shot 4 needs, so every later video step also fails, while the $0.1000 render would still fit by itself. Do not submit it: it has no shots to join.
To finish you need shots 4 to 6 ($1.8750) and the render ($0.1000), so $1.9750 in total. Add funds for that amount at least, then submit shots 4 to 6 with the same idempotency keys you planned for them.
A loop that stops at the first 402
Send an Idempotency-Key per shot. A replay returns the original job, so a re-run of the script after a top-up does not pay for shots 1 to 3 twice.
import requests, os
API = "https://api.sume.com/v1"
H = {"Authorization": "Bearer " + os.environ["SUME_API_KEY"]}
def submit(i, prompt):
r = requests.post(API + "/videos", headers={**H, "Idempotency-Key": f"promo-shot-{i}"},
json={"model": "wan-3.0", "prompt": prompt, "duration": 5, "resolution": "720p"})
if r.status_code == 402:
print("stop at shot", i, r.json()["error"]["request_id"])
return None
r.raise_for_status()
return r.json()["id"]
prompts = [f"shot {i}" for i in range(1, 7)]
ids = []
for i, p in enumerate(prompts, 1):
job = submit(i, p)
if job is None:
break
ids.append(job)
print(len(ids), "jobs accepted")Why the order matters
The order you submit in decides what is left when the money runs out. Here the cheap, certain steps go first, so a 402 lands on the video shots and not on the voice-over that the render needs. If you submit the shots first, a thin wallet could pay for shots and then fail on the voice, leaving footage with no audio spine.
A good order is the steps that every version of the project needs (voice, music), then the stills, then the shots from the most important to the least, then the render. A 402 on a late, optional shot then costs you polish, not the whole cut.
Sources
Related posts
More in Developers
- 402 on the third submit: six 5-second Wan 3.0 jobs on a $1.50 balance
Each 5 s Wan 3.0 720p job reserves $0.625 at submit. On a $1.50 balance the third POST /v1/videos fails with 402 insufficient_credits. Arithmetic and a script.
- 47 voiceover lines, Timeline's 20-part limit: three concats, 3 cents
Timeline audio joins up to 20 parts per job at $0.01. 47 lines need 20 + 20 + 7 = three concats ($0.03). 47 short lines of TTS also bill the 1-cent floor each.
- 48 or 50 fps for YouTube: Sume output.fps accepts 24, 25, 30, 60
YouTube lists 24, 25, 30, 48, 50 and 60 fps as common rates. Sume Timeline's output.fps takes 24, 25, 30 or 60, so omit it for 48 or 50 sources. Why.
- 4K 3840x2160 for YouTube: Sume Timeline output stops at 2160 per edge
YouTube lists 35-45 Mbps for 4K. Sume Timeline allows even width and height from 256 to 2160, so 3840x2160 is refused. What you can render instead.
Written by Sume