Skip to main content
BeAIHelp center
Administer the platform

Pricing and future clients

Set voice, text and SMS defaults in the organisation, respecting supplier floors and preserving existing clients.

Each organisation has one voice price in EUR/min excluding VAT, independent of the technical engine. Simplification preserves its existing standard-engine rate. Historical conversations, wallet debits and supplier costs are not recalculated.

Recording, auto-improvement, telephony, SMS, written messages and managed phone numbers retain their own rates. Subscriptions retain included minutes and their contractual overage price.

Manage an organisation’s price

A platform administrator or authorised supplier may change the voice price within their scope. Resellers may inspect their supplier rate but cannot change their own rate, a sibling’s rate or a grandchild’s rate.

The price must be strictly positive. A missing tariff prevents new calls; it never becomes zero, a catalogue price or an implicit fallback. The parent’s actual saved price is the minimum, including root-organisation children. Future-client defaults only prefill new client rates.

For example, with a parent rate of EUR0.10/min and a future-client default of EUR0.40/min, an authorised administrator may set a client to EUR0.20/min. Prices below EUR0.10/min are refused. Other client rates and the default remain unchanged.

Set future-client prices

Open your supplier organisation under Organisations, then Edit. Future-client prices groups the defaults within that form. Authorised resellers can also edit this section in My organisation.

The grid separates:

  • Voice: one per-minute price, independent of the technical engine.
  • Call options: recording and automatic improvement.
  • Written conversations: session opening and processing of text, images, audio or video, cache and responses. Processing prices are expressed per million tokens.
  • SMS: a price for each configured country.
  • Numbers and telephony, under advanced settings: annual rental of BeAI numbers and country prices for connecting a call and its duration in minutes. Existing configured price pairs remain available.

Written WhatsApp and Messenger conversations use the same text grid. WhatsApp audio calls use voice prices and call options; they do not require a second grid.

Expand the categories you need, enter prices and use the single Save button at the top, or its reminder after scrolling. Closing a category preserves its values. Supplier floors are checked when saving.

The grid is copied when a child is created without explicit prices. Existing clients and subscription terms keep their prices. If a supplier rate rises above a saved default, update that default explicitly; no price rises automatically. Defaults do not propagate to grandchildren or a child reseller’s resale defaults.

Former Initialise voice pricing and Future-client prices links now open this section. They do not initialise existing clients in bulk.

Withdraw a price

Clearing the voice rate blocks new calls throughout the commercial branch. Descendant prices remain saved for later reactivation. Admitted calls retain their starting rates and may finish. Billed conversations are not recalculated. Picapp uses its linked commercial organisation without adding a price to every technical hierarchy node.

Public API

Editing the organisation in the portal corresponds to PATCH /api/v1/organisations/{id}. Use billing_rates.voice.minute for its voice price. Defaults use child_billing_default_rates, with voice, features, text, sms, managed_numbers and telephony sections. managed_numbers.annual is the yearly amount per number; telephony contains keys such as BE.connection (per call) and BE.minute (per minute). Omitted keys preserve values; null withdraws a voice or telephony price; zero or negative voice prices are rejected. Permissions and supplier floors are shared.

{"billing_rates":{"voice":{"minute":0.20}},"child_billing_default_rates":{"voice":{"minute":0.40},"text":{"session":0.10},"sms":{"BE":0.12},"managed_numbers":{"annual":12.00},"telephony":{"BE.connection":0.05,"BE.minute":0.10}}}

Read and compatibility operations remain available:

  • GET /api/v1/organisations/{id}/voice-pricing: organisation price and availability.
  • POST /api/v1/organisations/{id}/voice-pricing/preview: deprecated direct-child initialisation preview retained for compatibility.
  • POST /api/v1/organisations/{id}/voice-pricing/initialize: deprecated bulk application with the returned revision, retained for compatibility.
  • GET then PUT /api/v1/organisations/{id}/voice-pricing/defaults: future-child voice tariff.

Bulk initialisation remains a compatibility API workflow and has been removed from the GUI. It fills only missing direct-child prices and saves the default. Existing prices are preserved. Archived organisations are excluded from the count of children without a price.

Example historical preview with an exception for direct child 42:

{"default_price":0.50,"exceptions":{"42":0.60}}

Apply the same object with "revision":"returned revision". A stale revision returns 409; unauthorised scope returns 403. Invalid prices and prices below the minimum are rejected.

For future-client prices, send the current revision and the complete voice object:

{"revision":"returned revision","voice":{"minute":0.40}}

Historical initialisation routes remain aliases of the single tariff. Former engine-specific grids cannot create distinct prices. These amounts illustrate validation and are not commercial recommendations.

Purchase estimates

Supplier costs are independent of customer charges. They require platform-administrator privileges and are hidden by default. Enable Purchase estimates from the avatar to show them temporarily. The preference is stored in neither a cookie nor the database and resets after the browser closes.

The conversation breakdown can then show processing, quantities, unit prices and estimates. Missing or partial estimates do not mean zero cost. Different currencies are never implicitly added. Frozen historical prices remain unchanged.

Documentation updated with the application