Beatra

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": {
  "charged_credits": 48.0,
  "refunded_credits": 48.0,
  "net_charged_credits": 0.0
}

Billing fields in responses

Every task response carries:

FieldDescription
usage.creditsNet credits consumed by the successful request
usage.video_secondsAuthoritative 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_secondsAuthoritative input/output components when available; null means no authoritative component was returned, not zero
billing.net_charged_creditsFinal net wallet charge after actual-usage settlement and refunds
billing.charged_credits / billing.refunded_creditsCumulative 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.aiBilling.

On this page