Billing & usage
Credits, prepaid skill execution, insufficient balance, and automatic refunds.
Credits are the independent quota and billing unit agents spend when they call Beatra skills. There is no fixed credit-to-currency exchange rate. Top-up offers define how many credits a payment buys in each market; public model prices define how many credits an operation consumes.
How charging works
Every billable skill execution — image, video, audio, and music alike — is a
prepaid task: Beatra debits the estimated task price at submission, and
usage-variable tasks settle against measured usage on success. If the balance
cannot cover the estimate, the API returns 402 insufficient_balance and the
task is not created.
Successful prepaid usage settlement
For a task whose final billable quantity depends on accepted media or measured output, the submission debit is an estimate. On success, Beatra settles against authoritative measured usage using the price snapshot captured at submission:
- lower actual usage returns the unused estimate in
refunded_credits; - equal usage needs no wallet adjustment;
- higher valid actual usage within the accepted request contract adds a
supplemental debit to
charged_credits.
Measured usage that is inconsistent with its own input/output breakdown or exceeds the accepted request and model limits is never applied as actual usage or as a supplemental debit. The original submission debit remains unchanged while the task stays pending settlement for operator review.
The final amount is returned directly as billing.net_charged_credits (and is
equal to billing.charged_credits - billing.refunded_credits). A successful overage can
leave the wallet below zero; the artifact remains valid, while new billable
work is rejected until the balance is topped up.
Automatic refunds on failure
When a task is failed or cancellation is confirmed and the task becomes
canceled, the held credits are automatically refunded to source — no
request needed. A cancellation conflict means the task is still running and
does not trigger a refund:
Billing fields in responses
Every task response carries:
| Field | Description |
|---|---|
usage.credits | Net credits consumed by the successful request |
usage.video_seconds | Authoritative billable output video seconds after settlement (equals usage.output_video_seconds; any billed input component is reported separately) |
usage.input_video_seconds / usage.output_video_seconds | Authoritative input/output components when available; null means no authoritative component was returned, not zero |
billing.net_charged_credits | Final net wallet charge after actual-usage settlement and refunds |
billing.charged_credits / billing.refunded_credits | Cumulative wallet debits / cumulative refunds; subtract them for the final net charge |
Balance and top-up
View your balance, transactions, and top up in the console at console.beatra.ai → Billing.