A $12.50 balance fails a 15-second Seedance 2.0 1080p job by 26 cents
A 15-second Seedance 2.0 job at 1080p holds $12.7575, so a $12.50 balance gets 402 insufficient_credits; 480p ($2.64) and 720p ($5.67) go through.

A 15-second Seedance 2.0 job at 1080p costs 15 x $0.8505 = $12.7575, so a workspace with $12.50 gets 402 insufficient_credits at submit. The shortfall is $12.7575 - $12.50 = $0.2575. The same clip at 720p ($5.67) or 480p ($2.63655) goes through. The check happens before any provider work starts, and no money moves.
What the 402 checks
The errors page defines 402 insufficient_credits as the balance not being sufficient for the requested generation, and the admission page says Sume returns it when it cannot reserve the estimated cost from the workspace balance. For video, the Sume docs say the hold is provider list x 1.25. Prices below are at default options, read 2026-10-09.
| Row | Duration | Arithmetic | Hold at submit | Accepted |
|---|---|---|---|---|
| seedance-2 480p | 15 s | 15 x $0.17577 | $2.6366 | yes |
| seedance-2 720p | 15 s | 15 x $0.378 | $5.6700 | yes |
| seedance-2 1080p | 15 s | 15 x $0.8505 | $12.7575 | no, short by $0.2575 |
Ways out that cost nothing
You have three choices. Lower the resolution: 720p holds $5.67 and leaves $6.83. Shorten the clip: at 1080p, 14 s is 14 x $0.8505 = $11.907, which fits, and the minimum is 4 s. Or top up. Submit-time checks mean you can find out cheaply: a rejected submit does not start provider work.
The admission page lists the client behaviour for 402 as upgrading the plan or waiting for included Gen$, or submitting a less expensive request; it also says not to invent prepaid top-ups, so check the pricing and dashboard pages for how your workspace is funded.
Computing the minimum balance in advance
You can avoid the 402 by computing the hold before you submit. For Seedance 2.0, the hold is duration times the per-second rate for the chosen resolution. At 1080p, each second is $0.8505, so the minimum balance for 4 s is $3.402 and for 15 s is $12.7575. A guard in your client that reads GET /v1/balance and compares it with that product will stop the call before it leaves your server.
Do not forget concurrent jobs. If three other jobs already hold money, the spendable balance is lower than the headline balance. The usage summary separates open holds (held_usd_micros) from spend, so use it when you check whether a new submit will fit.
When the 402 arrives, the response is a structured error with a request id that is safe to share with support. Log it with the job intent. Do not retry the identical request in a loop; the balance has not changed, so the answer will not either.
After the job runs
On success Sume captures the billable usage; usage.cost on the poll response is the Sume amount. On failure, or on cancellation before capture, the usage page says the reserved amount is refunded. So the $12.7575 is a hold first and a spend only if the clip completes.
Sources
Related posts
More in Developers
- A 1,300-second narration fails tts_duration_exceeded: split the script
Sume TTS fails a request whose audio runs past 1,200 seconds with tts_duration_exceeded and captures no credit. Split the script at sentence ends.
- 15 Ideogram 4.5 edits with 5 images each: $1.125 at medium on Sume
Ideogram 4.5 on Sume edits the first image and takes up to four more as references. Fifteen medium edits cost 15 x $0.075 = $1.125.
- 164 days from DALL-E 3 shutdown to GPT Image 1, then 39 more
OpenAI removed DALL-E 3 on May 12, 2026, retires GPT Image 1 on Oct 23, then three more image ids on Dec 1. Day counts and the Sume ids that replace them.
- 26 dialogue lines, a 20-part concat cap: two $0.01 jobs, then offsets
Timeline audio concat takes 1-20 parts. A 26-line dialogue needs two concat jobs, $0.02 total, plus about $0.17 of TTS. How to chain them and keep the offsets.
Written by Sume