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.

5 min readSume
All posts

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.

15-second Seedance 2.0 jobs against a $12.50 balance, as of 2026-10-09
RowDurationArithmeticHold at submitAccepted
seedance-2 480p15 s15 x $0.17577$2.6366yes
seedance-2 720p15 s15 x $0.378$5.6700yes
seedance-2 1080p15 s15 x $0.8505$12.7575no, 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

All Developers posts

Written by Sume