Skip to main content
Billing is usage-based and denominated in credits. A voice call is charged as a flat per-minute line; WhatsApp is charged per message. You read your balance and history from two customer endpoints.
A negative credit balance blocks new work. Credit enforcement is on by default: starting a new session, campaign dial, single call, inbound answer, or agent-test run while your balance is below zero is rejected with 402 insufficient_credits. A balance of exactly 0 is allowed — the call that takes you negative still runs — and a call already in progress is never interrupted: live calls and open conversations always finish.

How a voice call is priced

Every voice call — outbound phone, inbound phone, or web — is charged as a single flat line, voice_billing_minutes, priced per call type (outbound_phone, inbound_phone, web). Billed time is rounded up to the next minute, so a 90-second call bills as two minutes.

WhatsApp

WhatsApp is billed per message, priced by conversation categorymarketing, utility, authentication, or service. Any model used to generate a reply is billed with it. Billing is idempotent per message, so a retried send is never charged twice.

Credits & ledger

Your credit balance is the running sum of your ledger. Entries are signed: Charging is idempotent — a call is charged once. If a charge is later corrected, the prior debit is reversed and re-applied, never added on top.

Read your usage

me/summary returns your credit totals for the period — credits_granted, credits_used, credits_balance — plus a usage breakdown. me/ledger returns your signed entries with a running balance_after.
These endpoints require a customer-admin bearer session and report credits only.