Usage, billing summaries, and cost reporting.
Get Usage Summary
Get usage summary for the current organization.
Returns call count, minutes used, billed amount, provider costs, and margin.
query Parameters
daysNumber of days to look back
Get Usage Summary › Responses
Successful Response
call_counttotal_secondstotal_minutestotal_billedGet Billing Settings
Get billing settings for the current organization.
Includes billing type, rate, and Stripe connection status.
Get Billing Settings › Responses
Successful Response
skucontract_termpayment_methodpilot_included_minutes_usedpilot_included_minutes_totalpilot_included_messages_usedpilot_included_messages_totalmonth_to_date_billable_minutesmonth_to_date_whatsapp_call_minutesconcurrency_capPer-region number caps + above-cap overage rate
Render data for the phone-numbers tier-cap panel.
For each region tier the org's SKU has a cap for: returns
cap (included free), used (currently active numbers), and
above_cap_rate_usd (per-month charge for any number beyond the
cap, looked up via RateCardService — falls back to None when no
rate card row exists, e.g. R8/special markets).
Auth: org-context only — customers see their own caps. The 4 possible-but-uninteresting rows (R8 = special quote, GLOBAL = uncapped WebRTC) are omitted to keep the panel tight.
path Parameters
organization_idPer-region number caps + above-cap overage rate › Responses
Successful Response
skuConnect Stripe
Create a Stripe customer for the organization.
This enables prepaid credits billing - customers top up their balance and credits are deducted per call.
Connect Stripe › Request Body
emailnameConnect Stripe › Responses
Successful Response
customer_idCreate Payment Setup Intent
Create a SetupIntent for adding a payment method. Auto-creates a Stripe customer if one doesn't exist. Returns client_secret for Stripe.js to complete the setup.
Create Payment Setup Intent › Responses
Successful Response
client_secretsetup_intent_idCheck Call Balance
Check if organization has sufficient balance to make a call.
Returns whether calls can be made and current balance. Used by frontend before initiating calls.
Check Call Balance › Responses
Successful Response
can_make_callbalance_centsbalance_dollarsmessageminimum_required_centsCreate Top-Up
Create a payment intent for topping up account credits.
Returns a client_secret for completing payment with Stripe.js on frontend.
Create Top-Up › Responses
Successful Response
amount_centsamount_dollarscurrencyrequires_actionsucceedederrorGet Balance History
Get balance transaction history.
query Parameters
skipNumber of records to skip for pagination. Defaults to 0.
limitMaximum number of records to return. Defaults to 100. Max 1000.
Get Balance History › Responses
Successful Response
current_balance_centscurrent_balance_dollarsCreate Billing Portal Session
Create a Stripe Billing Portal session for self-service payment method management.
The billing portal allows customers to:
- View and update payment methods
- View billing history
- Update billing information
Create Billing Portal Session › Request Body
return_urlCreate Billing Portal Session › Responses
Successful Response
urlidList Invoices
Get invoice history (credit transactions) for the organization.
For prepaid billing, invoices are customer balance transactions:
- top_up: Manual credit purchase
- auto_reload: Automatic reload when balance dropped below threshold
- credit_grant: Admin-granted credits (promotional, etc.)
- correction: Admin corrections, refunds, adjustments
query Parameters
skipNumber of records to skip for pagination. Defaults to 0.
limitMaximum number of records to return. Defaults to 100. Max 1000.
List Invoices › Responses
Successful Response
Metadata for billing list responses.
Adjust Organization Credits (Admin)
Add or remove real credits for an organization (Stripe customer balance).
Adjust Organization Credits (Admin) › Request Body
organization_idamountactionAdjust Organization Credits (Admin) › Responses
Successful Response
statusorganization_idactionamount_centscurrencytransaction_idnew_balance_centsnew_balance_dollarsGet Platform Revenue
Get platform-wide revenue summary (admin only).
Returns total revenue, costs, margin, and margin percentage across all organizations.
query Parameters
daysNumber of days to look back
Get Platform Revenue › Responses
Successful Response
call_counttotal_minutestotal_revenuetotal_costtotal_marginmargin_percentageGet All Orgs Usage
Get usage summary for all organizations (admin only).
Returns per-org usage data for efficient table display.
query Parameters
daysNumber of days to look back
Get All Orgs Usage › Responses
Successful Response
period_daysGet Org Usage (Admin)
Get usage summary for a specific organization (admin only).
path Parameters
org_idquery Parameters
daysNumber of days to look back
Get Org Usage (Admin) › Responses
Successful Response
call_counttotal_secondstotal_minutestotal_billedGet Org Billing Overrides (Admin)
Read DLT compliance flag + custom rate overrides + concurrency.
path Parameters
organization_idGet Org Billing Overrides (Admin) › Responses
Successful Response
organization_idindia_dlt_registeredmax_concurrent_calls_effectivescale_cap_overrideUpdate Org Billing Overrides (Admin)
Set DLT compliance flag and/or replace custom rate overrides.
Note: custom_rate_overrides is REPLACED in full when provided —
pass the merged dict, not a partial. This avoids partial-update
ambiguity around removing a single key.
path Parameters
organization_idUpdate Org Billing Overrides (Admin) › Request Body
Update Org Billing Overrides (Admin) › Responses
Successful Response
organization_idindia_dlt_registeredmax_concurrent_calls_effectivescale_cap_overrideConvert Pilot to Launch/Scale (Admin)
Convert a Pilot org per spec B6 (day 25-30 conversion call).
Steps:
- Verify org is sku='pilot' AND pilot_status='active'|'live'
- Set org.sku = target_sku, pilot_status = 'converted'
- Create the new setup_fee invoice via SetupFeeService
- Apply $2K Pilot conversion credit against the new invoice
path Parameters
organization_idConvert Pilot to Launch/Scale (Admin) › Request Body
target_skuindia_compliancechina_onboardingConvert Pilot to Launch/Scale (Admin) › Responses
Successful Response
organization_idnew_skunew_setup_fee_invoice_idpilot_credit_applied_usdMark Pilot as Live (Admin)
Manually flip pilot_go_live_at + status='live'.
Idempotent — calling on a non-active pilot is a no-op (returns 409 so the UI can surface why nothing changed).
path Parameters
organization_idMark Pilot as Live (Admin) › Responses
Successful Response
organization_idmessageRefund Pilot setup fee (Admin)
Manually refund the $2K Pilot setup fee + flip status='refunded'.
Reuses the same RefundService path the day-31 auto-cancel cron uses. No-op if pilot is already in a terminal state ('refunded'|'cancelled') — returns 409 so the UI can surface that.
path Parameters
organization_idRefund Pilot setup fee (Admin) › Responses
Successful Response
organization_idmessageCancel Pilot WITHOUT refund (Admin)
Mark pilot as cancelled WITHOUT issuing a refund.
Use when ops decide the customer doesn't qualify for the $2K refund (e.g. abuse / TOS violation / explicit no-refund waiver). Distinct from the refund endpoint which always refunds.
path Parameters
organization_idCancel Pilot WITHOUT refund (Admin) › Responses
Successful Response
organization_idmessageList ALL DNC entries (Admin)
Audit fix L6: pagination via skip/limit. Without skip, the
AdminDnc UI silently truncated once platform_seed grew past 500
entries (regulator do-not-call lists ingested at scale). Returns
one page at a time, ordered by added_at desc.
query Parameters
sourceinclude_expiredskiplimitList ALL DNC entries (Admin) › Responses
Successful Response
countAdd a platform-wide DNC entry (Admin)
Add a platform-wide DNC entry (Admin) › Request Body
phonesourceAdd a platform-wide DNC entry (Admin) › Responses
Successful Response
idphone_e164country_iso2sourceadded_at