Skip to main content
DEV ENVIRONMENT ai-dev-public.beone.be
BeAIHelp center
Administer the platform

Voice model pricing

Initialise model prices, manage upstream eligibility and preserve active-call prices.

A voice model requires an explicit, strictly positive EUR/min price excluding VAT on the bot organisation. Every reseller in its upstream chain must also have an authorised price. Missing prices never become zero or another model’s price.

Initialise a model

In Administration → Organisations and billing, choose Initialiser un modèle. The link uses the active supplier organisation when you may administer it, otherwise your own supplier organisation. The action also remains available on the supplier’s Organisations detail page. Platform administrators can initialise Beone’s direct children. Reseller administrators can initialise their own direct children only after their supplier has enabled that model.

Choose a model and a positive default price. To add an exception, click Ajouter une exception pour une organisation, search for a direct child in the dialog, select it and enter its specific EUR/min price excluding VAT. Only selected organisations display price inputs. Retirer removes an exception; the default then applies if no price already exists. Preview the organisations that will be initialised, preserved or blocked, then apply. Existing prices are preserved. The default is saved for future direct children; exceptions apply only to the selected existing children. Nothing propagates to grandchildren and no resale default is created for child resellers.

The operation is transactional. Changed prices, permissions or organisations invalidate the preview and require a new one. Prices below the supplier’s price are rejected. Resellers cannot change their own purchase price, a sibling’s price or a grandchild’s price. Beone does not need an upstream supplier price to initialise children, but its own bots still require a price.

Each model option shows the number of organisations without a price: active direct children without an explicit strictly positive price. Archived organisations and grandchildren are excluded. An existing price still counts as configured when the model is blocked upstream. Counts refresh on each page load, including after initialisation.

Withdrawal and active calls

Clear an organisation’s model price to withdraw it. Withdrawal at a reseller blocks new calls throughout its branch while preserving descendant prices for later reactivation. Configured but blocked models remain identifiable on existing bots; other settings remain editable. Restore, organisation changes, PicApp configurations, campaigns and fresh call admission enforce the same policy, including cached configurations. There is no silent model substitution.

Every admitted call retains its starting prices. Later withdrawal does not terminate it or change its charge. Finished conversations are not recalculated. Changes record their author, affected organisations and before/after values.

GPT Live 1, Gemini 3.8 Live and Gemini 3.8 Live Extended Thinking initially have no organisation prices or child defaults. Provider purchase cards are separate. Gemini Live 2.5 is the primary model again, without deprecation or automatic migration to 3.8. Both 3.8 variants are BETA in BeAI. These statuses change no existing prices; a model still requires authorised pricing at every relevant level.

Public API

  • GET /api/v1/organisations/{id}/model-pricing lists availability, blocking reasons and prices for an authorised organisation.
  • POST /api/v1/organisations/{id}/model-pricing/preview previews direct-child initialisation.
  • POST /api/v1/organisations/{id}/model-pricing/initialize applies it using the returned revision.

Example preview (42 must be a direct child):

{"model":"gemini-3.8-live","default_price":0.50,"exceptions":{"42":0.60}}

Apply with the same fields plus revision from data.revision. HTTP 409 requires a new preview. GUI and API share the same scope and eligibility checks.

For PATCH /api/v1/organisations/{id}, billing_rates.models and child_billing_default_rates.models use: omitted key = preserve, null = remove, zero or negative = reject. Child defaults require authority over the supplier and upstream model eligibility. Example withdrawal:

{"billing_rates":{"models":{"gemini-3.8-live":null}}}

Example prices are illustrative, not commercial recommendations.

If a purchase price rises above a saved child default, that default can no longer enable the model for new children. Update it explicitly; prices are never raised automatically.

GET /api/v1/organisations/{id}/model-pricing exposes the same count as data[].unconfigured_children_count (for example 12, or 0 when every active child has a price). It is null for readers who cannot administer that supplier’s initialisation. Preview may still report eligibility or minimum-price blocks.

Initialisation checks only the selected model’s supplier and already-priced descendant minimums. A pre-existing price inconsistency on another model does not block this operation, and those other prices remain unchanged.

Editing a model price on an organisation, including Beone, checks only actually changed tariffs against parent and descendant minimums. Unchanged values resubmitted by the form or API do not revalidate historical prices for another model. For example, setting Gemini 3.8 does not recheck existing Gemini 2.5 prices. Changed-model minimums remain mandatory; creation or changing the parent with tariffs still requires full validation.

Documentation updated with the application