Voice model pricing
Initialise model prices, manage upstream eligibility and preserve active-call prices.
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.
Initialise direct children
Open voice-price initialisation for your supplier organisation under Organisations and billing.
- Enter a positive default price.
- Optionally add exceptions for selected direct children.
- Preview prices to initialise, existing prices to preserve and explained blocking cases.
- Apply using the preview revision. Changed prices, scope or permissions require a fresh preview.
The transaction fills missing prices only. It saves the default for future direct children. Nothing propagates to grandchildren or child-reseller resale defaults. Archived organisations are excluded from the count of children without a price.
Future clients and price withdrawal
Future-client prices defines an independent grid copied when a child is created. Existing clients keep their prices. If a supplier price rises above a saved default, update the default explicitly; no rate increases automatically.
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
GUI and API share permissions, price floors and revision checks:
GET /api/v1/organisations/{id}/voice-pricing: organisation price and availability.POST /api/v1/organisations/{id}/voice-pricing/preview: direct-child initialisation preview.POST /api/v1/organisations/{id}/voice-pricing/initialize: apply with the returned revision.GETthenPUT /api/v1/organisations/{id}/voice-pricing/defaults: future-child voice tariff.
Example preview with an exception for direct child42:
{"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 PATCH /api/v1/organisations/{id}, use billing_rates.voice.minute and child_billing_default_rates.voice.minute. Omitted keys preserve values; null removes them; zero or negative values are invalid.
{"billing_rates":{"voice":{"minute":0.20}}}
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.