Overview
VoIPBIN’s Billing Account API provides balance management, token tracking, and usage monitoring for your account. The billing system uses a State+Ledger architecture where the account holds the live state (current balance and tokens) and the billings table records every transaction as an immutable ledger entry with signed deltas and post-transaction snapshots.
With the Billing Account API you can:
Check current credit balance and token balance
View billing history as a ledger of transactions
Add funds to your account (admin only)
View rate information for different service types
Monitor usage and charges
Track all transactions via the immutable billing ledger
How Billing Works
VoIPBIN uses a hybrid billing model with two cost mechanisms: token balance and credit balance.
Each plan tier includes a monthly allocation of tokens that cover certain service types (virtual number calls and SMS). When tokens are exhausted, usage overflows to the credit balance. PSTN calls and number purchases are always charged to the credit balance.
All monetary values are stored as int64 micros (1 USD = 1,000,000 micros) to prevent floating-point rounding errors.
Billing Architecture
+-----------------------------------------------------------------------+
| State + Ledger Architecture |
+-----------------------------------------------------------------------+
+-------------------+ +-------------------+
| Account (State) | | Billings (Ledger)|
| balance_token | | Immutable entries |
| balance_credit | | with deltas and |
+--------+----------+ | snapshots |
| +--------+----------+
| |
| live state | transaction history
v v
+--------+----------+ +--------+----------+
| | | |
v v v v
+----------+ +----------+ +----------+ +----------+
| VN Calls | | SMS | |PSTN Calls| | Numbers |
| 1 tok/min| |10 tok/msg| | per min | | per num |
+----------+ +----------+ +----------+ +----------+
| | | |
| token first | token first | |
| then credit | then credit | credit only | credit only
v v v v
+---------+ +---------+ +---------+ +---------+
|$0.0045 | | $0.008 | |$0.006 ot| | $5.00 |
| /minute | | /message| |$0.0045 in| | /number |
+---------+ +---------+ +---------+ +---------+
Key Components
Account State: The
billing_accountstable holds the livebalance_credit(int64 micros) andbalance_token(int64). This is the single source of truth for current balances.Billing Ledger: The
billing_billingstable records every transaction as an immutable entry with signed deltas (amount_token,amount_credit) and post-transaction snapshots (balance_token_snapshot,balance_credit_snapshot).Monthly Token Top-Up: Tokens are replenished monthly via a cron-driven top-up process. The top-up is recorded as a
top_uptransaction in the ledger.Token-Eligible Services: VN calls (1 token/minute) and SMS (10 tokens/message) consume tokens first, then overflow to credits.
Credit-Only Services: PSTN calls and number purchases always use credits directly.
Free Services: Extension-to-extension calls and direct extension calls incur no charges.
Token Top-Up Process
Token replenishment happens via an automated monthly cron process:
Selection: The system selects accounts where
tm_next_topup <= NOW().State Update: The account’s
balance_tokenis set to the plan’s allocation.tm_last_topupandtm_next_topupare updated.Ledger Entry: A billing record is inserted with
transaction_type: top_upandreference_type: monthly_allowance, recording the positive token delta and the resulting balance snapshot.
The tm_next_topup field on the account indicates when the next top-up is scheduled.
Plan Tiers
Each billing account is assigned a plan tier that determines both resource creation limits and monthly token allocations. New accounts default to the free tier.
Monthly Token Allocations
Plan |
Free |
Basic |
Professional |
Unlimited |
|---|---|---|---|---|
Tokens per month |
1,000 |
10,000 |
100,000 |
unlimited |
Tokens are replenished at the scheduled top-up date. The current token balance is available in the balance_token field of the account.
Resource Limits
Resource |
Free |
Basic |
Professional |
Unlimited |
|---|---|---|---|---|
Extensions |
5 |
50 |
500 |
unlimited |
Agents |
5 |
50 |
500 |
unlimited |
Queues |
2 |
10 |
100 |
unlimited |
Conferences |
2 |
10 |
100 |
unlimited |
Trunks |
1 |
5 |
50 |
unlimited |
Virtual Numbers |
5 |
50 |
500 |
unlimited |
When a resource limit is reached, further creation of that resource type is denied.
Only platform admins can change a customer’s plan tier.
The current plan tier is returned in the
plan_typefield of the billing account.
Rate Structure
VoIPBIN uses per-minute billing for calls (rounded up to the next whole minute) and per-unit billing for other services.
Token Rates
Service |
Token Cost |
Unit |
|---|---|---|
VN Calls |
1 token |
Per minute (ceiling-rounded) |
SMS Messages |
10 tokens |
Per message |
Credit Rates (Overflow and Credit-Only)
All credit rates are stored internally as int64 micros.
Service |
Rate (USD) |
Rate (micros) |
Unit |
|---|---|---|---|
VN Calls (overflow) |
$0.0045 |
4,500 |
Per minute |
PSTN Outgoing Calls |
$0.0060 |
6,000 |
Per minute |
PSTN Incoming Calls |
$0.0045 |
4,500 |
Per minute |
SMS (overflow) |
$0.008 |
8,000 |
Per message |
Number Purchase |
$5.00 |
5,000,000 |
Per number |
Number Renewal |
$5.00 |
5,000,000 |
Per number |
Extension Calls |
Free |
0 |
No charge |
How Token Consumption Works
When a token-eligible service is used (VN call or SMS):
The system checks the account’s
balance_token.If tokens are available, they are consumed first.
If tokens are partially available, the available tokens are consumed and the remainder overflows to credits.
If no tokens remain, the full cost is charged to credits.
Each transaction is recorded in the billing ledger with the token and credit amounts as signed deltas.
Rate Calculation Examples
VN Call (2 minutes 15 seconds) with tokens available:
+--------------------------------------------+
| Duration: 2 min 15 sec -> 3 minutes |
| (ceiling-rounded to next whole minute) |
| Token cost: 3 x 1 = 3 tokens |
| Credit cost: 0 micros (covered by tokens) |
| Ledger entry: |
| amount_token: -3 |
| amount_credit: 0 |
+--------------------------------------------+
VN Call (5 minutes) with NO tokens remaining:
+--------------------------------------------+
| Duration: 5 minutes |
| Token cost: 0 (exhausted) |
| Credit cost: 5 x 4,500 = 22,500 micros |
| Ledger entry: |
| amount_token: 0 |
| amount_credit: -22500 |
+--------------------------------------------+
PSTN Outgoing Call (2 minutes 30 seconds):
+--------------------------------------------+
| Duration: 2 min 30 sec -> 3 minutes |
| (ceiling-rounded to next whole minute) |
| Credit cost: 3 x 6,000 = 18,000 micros |
| Ledger entry: |
| amount_token: 0 |
| amount_credit: -18000 |
+--------------------------------------------+
Monthly Token Top-Up (Free plan):
+--------------------------------------------+
| Transaction type: top_up |
| Reference type: monthly_allowance |
| Ledger entry: |
| amount_token: +1000 |
| amount_credit: 0 |
| balance_token_snapshot: 1000 |
+--------------------------------------------+
Note: Rates are subject to change. Check the API for current pricing.
Managing Balance
Check and manage your account balance.
Check Balance
$ curl -X GET 'https://api.voipbin.net/v1.0/billing_accounts?token=<token>'
Response:
{
"id": "billing-uuid-123",
"customer_id": "customer-uuid-456",
"plan_type": "free",
"balance_credit": 150500000,
"balance_token": 650,
"tm_last_topup": "2024-01-01T00:00:00Z",
"tm_next_topup": "2024-02-01T00:00:00Z",
"tm_create": "2024-01-01T00:00:00Z",
"tm_update": "2024-01-15T10:30:00Z"
}
The balance_credit is in micros (150500000 = $150.50). The balance_token is the current token count.
View Billing Ledger
$ curl -X GET 'https://api.voipbin.net/v1.0/billings?token=<token>&page_size=10'
Returns a paginated list of billing ledger entries showing all transactions (usage, top-ups, adjustments).
Add Balance (Admin Only)
$ curl -X POST 'https://api.voipbin.net/v1.0/billing_accounts/<account-id>/balance_add_force?token=<token>' \
--header 'Content-Type: application/json' \
--data '{
"balance": 100.00
}'
Note: Balance addition is restricted to users with admin permissions for security.
Balance Lifecycle
Account balance changes through specific operations. Token balances are replenished monthly via the automated top-up process.
Balance and Token Flow
+-------------------+ +-------------------+
| Add Balance | | Monthly Top-Up |
| (admin only) | | (automated cron) |
+--------+----------+ +--------+----------+
| |
v v
+-------------------+ +-------------------+
| balance_credit | | balance_token |
| 150,500,000 | | 1,000 |
+--------+----------+ +--------+----------+
| |
| PSTN calls, | VN calls,
| numbers, | SMS
| overflow |
v v
+-------------------+ +-------------------+
| Credit Charges | | Token Usage |
| - 18000 PSTN call | | - 3 tokens call |
| - 5000000 number | | - 10 tokens SMS |
+--------+----------+ +--------+----------+
| |
v | exhausted
+-------------------+ |
| Updated Balance |<-------------+
| 145,082,000 | overflow charges
+-------------------+
All transactions recorded in billing ledger
with signed deltas and balance snapshots.
Balance Monitoring
Monitor balance and token usage to avoid service interruption.
Balance Check Flow
Before Service Execution:
+--------------------------------------------+
| 1. Identify service type |
| 2. If token-eligible: check balance_token |
| - If tokens available -> proceed |
| - If no tokens -> check balance_credit |
| 3. If credit-only: check balance_credit |
| - If balance >= cost -> proceed |
| - If balance < cost -> deny service |
+--------------------------------------------+
Common Scenarios
Scenario 1: Token-Based Monthly Usage
Track token consumption via the billing ledger.
Monthly Usage (Free Plan, 1000 tokens):
+--------------------------------------------+
| Week 1: |
| - 50 VN calls (avg 3 min) = 150 tokens |
| - 20 SMS = 200 tokens |
| balance_token: 650 |
| |
| Week 2: |
| - 40 VN calls (avg 2 min) = 80 tokens |
| - 30 SMS = 300 tokens |
| balance_token: 270 |
| |
| Week 3: |
| - 30 VN calls (avg 3 min) = 90 tokens |
| - 15 SMS = 150 tokens |
| balance_token: 30 |
| |
| Week 4 (tokens nearly exhausted): |
| - 10 VN calls (avg 3 min) = 30 tokens |
| (uses last tokens) |
| - 5 SMS = overflow to credit |
| 5 x 8,000 = 40,000 micros credit charge |
+--------------------------------------------+
Scenario 2: Mixed Token and Credit Usage
Plan for costs across token-eligible and credit-only services.
Campaign: Customer Outreach
+--------------------------------------------+
| VN Calls: 200 calls (avg 3 min) |
| - Tokens needed: 200 x 3 = 600 |
| - If 400 tokens available: |
| - 400 tokens consumed |
| - 200 overflow x 3 min x 4,500 micros |
| = 2,700,000 micros ($2.70) |
| |
| PSTN Calls: 50 calls (avg 2 min) |
| - Credit: 50 x 2 x 6,000 = 600,000 micros |
| ($0.60) |
| |
| SMS: 100 messages (no tokens remaining) |
| - Credit: 100 x 8,000 = 800,000 micros |
| ($0.80) |
| |
| Total credit: 4,100,000 micros ($4.10) |
+--------------------------------------------+
Best Practices
1. Token Monitoring
Check
balance_tokenon the account regularlyPlan upgrades to higher tiers if tokens are consistently exhausted before the next top-up
Review billing ledger entries to understand consumption patterns
2. Balance Monitoring
Maintain credit balance for PSTN calls, number purchases, and token overflow
Set up low balance alerts
Plan for buffer above minimum needed
3. Cost Estimation
Separate estimates into token-eligible and credit-only services
Account for token overflow in budget planning
Include retry costs in estimates
Note all credit amounts are in micros (divide by 1,000,000 for USD)
4. Security
Restrict balance add permissions to admins
Monitor for unusual usage patterns via the billing ledger
Review billing history regularly for anomalies
5. Plan Selection
Choose plan tier based on expected VN call and SMS volume
Compare token allocation cost vs. credit-only cost at each tier
Consider upgrading if monthly overflow charges are significant
Troubleshooting
Balance Issues
Token Issues
Billing Issues