WARP guide
How Your Calls Are Priced
How WARP prices your outbound calls — account rates versus trunk-specific rates, how billed duration is worked out, why the trunk a call uses decides its price, and how invoices show usage per trunk.
Every outbound call is priced from two things agreed with WARP: a rate per minute for the destination, and billing increments that decide how the call's length is counted. This guide explains where each comes from, how the trunk you send a call on affects its price, and how this shows on your call records and invoices.
Account Rates and Trunk Rates
Your account has a rate sheet and billing increments for each kind of outbound call: domestic, international and toll-free. Unless arranged otherwise, every one of your trunks uses them.
WARP can also give an individual trunk its own rates, its own billing increments, or both, for any of those three kinds of call. This lets one account carry, for example, a short-duration dialing trunk and a conversational trunk at different prices, on one invoice. Rates and increments are set independently: a trunk can have its own rates while keeping your account's increments, or the other way round.
Trunk-specific pricing is arranged with WARP; it is not something you change in the portal. Inbound calls are always priced at the account level.
The Trunk Decides The Price
A call is priced by the trunk it is sent on. WARP identifies the trunk in this order: the Digest credential the call carries, then the trunk address in the request, then the type of number dialed when several trunks share your source IP. See the trunk setup guide for how to aim a call at a specific trunk.
Three things follow from this:
- A trunk with its own rates uses only those rates. If its rate sheet has no rate for a destination, the call has no rate on that trunk. It is never priced from your account rates or from another trunk's rates instead. Depending on how the trunk is set up, such a call may be refused. Before sending traffic to new destinations over a trunk with its own rates, check with support that the destinations are covered.
- WARP does not move calls between trunks. If one of your trunks cannot complete a call, failing over to your other trunk is done by your own equipment. A call your equipment sends to the second trunk is priced at the second trunk's rates.
- A call that reaches the wrong trunk is priced as that trunk's call. If a call's price surprises you, first check which trunk it used.
How Billed Duration Is Worked Out
Your billing increments set:
- A minimum. A connected call shorter than the minimum is billed as the minimum.
- An increment. The connected time is rounded up to a whole number of increments, and never below the minimum.
- Where agreed, when billing starts (normally at answer) and a connect charge per call.
For example, with a 6-second minimum and 6-second increments ("6/6"), a call connected for 16 seconds bills as 18 seconds; with "60/60" it bills as 60 seconds. The charge is the per-minute rate times the billed minutes, plus any connect charge.
Unanswered calls are not billed.
Seeing This On Your Calls
Open a call in Call statistics. The call detail shows:
- Connected duration — how long the call was connected.
- Billed duration — the duration after your billing increments were applied.
- Charge — what the call cost.
- Trunk — the trunk the call used, which is the trunk it was priced on.
Through the API, each call record from GET /v1/cdr/details carries the per-minute rate (customer_rate), the connected and billed seconds (raw_seconds, billed_seconds), the charge (total_charge) and the trunk (trunk_name, absent when the call could not be tied to one of your trunks).
When Changes Take Effect
A change to a trunk's rates applies to calls made after the change. A change to billing increments applies to calls billed after the change, normally within a few minutes. Calls already billed are not re-priced; if you believe already-billed calls should be priced differently, contact support.
Outbound Toll-Free Calls
An outbound call to a toll-free number is normally not charged. If your agreement includes toll-free compensation, WARP pays you per minute for those calls instead; the compensation can differ between trunks in the same way as rates. Compensation appears on your invoice as a negative amount that nets against your other charges. If compensation for a period is larger than your charges, the invoice is a credit statement and the credit carries forward.
How Your Invoice Shows Trunks
Each invoice opens with a Summary of charges, then the detail.
When a voice usage line was carried by two or more of your trunks, the invoice shows one indented row beneath it for each trunk:
- Each row is named after the trunk as it was named when the invoice was produced. Renaming or deleting a trunk afterwards does not change an issued invoice.
- The rows add up exactly to the line above them, in amount and in minutes.
- The rate shown on a trunk row is an average — the row's amount divided by its minutes — for reading only. Two trunks with different rates can share one usage line, such as "Outbound voice minutes - interstate", because the line is the kind of call, not the price.
- Calls that could not be tied to a trunk appear as Unassigned trunk. A trunk deleted before the invoice was produced appears as Deleted trunk with a short identifier.
- A line carried by a single trunk has no rows beneath it.
- Recurring charges, one-time charges and messaging are not split by trunk, and there is no total per trunk across all services. If you need each trunk totalled separately across everything, ask about a separate billing account.
Through the API, GET /v1/invoices/:id returns the same trunk rows as a breakdown list on each line, each with a label, a quantity and an extended_amount. The average rate printed on the invoice is not in the API.
Reconciling A Trunk's Usage
- Open the invoice and find the trunk's row under the usage line.
- In Call statistics, set the same period and export the period's calls, then filter the export by its trunk column. (Sorting by the on-screen Trunk column only reorders the page you are viewing.)
- Compare the billed duration and charge of a few calls against the trunk's agreed rate and increments.
- If they do not match, contact support with the invoice ID, the trunk name and a few example calls.
See the billing guide for balances, the ledger and invoice downloads.