
Voice termination,priced up front
Place calls on carrier routes with the caller ID type stated and the rate shown before you dial. Each call is billed once, at hangup, plus a fee capped at $0.001.
In short
Place calls through one API on routes bought from carriers: A-Z termination with Full, Local, Mixed and No CLI routes, inbound numbers with IVR, forwarding and voicemail, and least-cost or quality-first routing on every call.
Calls are billed when they end, at the route's per-minute rate and billing increment, and a retried request with an idempotency key is never placed twice.
What you can do
- 01
SIP termination
Outbound A-Z voice on Full, Local, Mixed and No CLI routes.
- 02
Inbound DIDs
Local, national, mobile and toll-free numbers.
- 03
IVR & call flows
Menus, forwarding, voicemail and business-hours rules, set by API or in the dashboard.
- 04
Smart Routing
Cheapest, best quality or balanced route chosen for each call.
- 05
Automatic failover
If your first route refuses a call, the next one is tried straight away. Only the route that connects is billed.
- 06
T.38 fax
Routes that carry fax over IP are flagged, so you can pick one that does.
- 07
Idempotent requests
Send an idempotency key and a retried call request is never placed twice.
From signup to a completed call
Live in four steps
No sales call and no contract. Every step happens in your own dashboard or through the API, in whatever order suits your team.
Fund the account
Top up from $5 by card or crypto, or from $100 by bank wire. Building first? Test API keys run simulated calls against $50 of sandbox credit, so no real call is placed and no real money moves.
Choose the route
Compare routes to your destination by rate per minute, quality tier, caller ID handling and billing increment before you buy. Or leave the choice to Smart Routing on every call.
Place the call
Send one POST to /comms/calls with the number, your caller ID and either a route or a routing strategy. Running your own switch? The SIP credentials issued with a route work with it as it is.
Read what happened
The response carries the status, SIP code, hangup cause, talk time, billed seconds and cost. A call.completed webhook fires too, and the call record is written to your account.
Priced before, settled after
The rate up front, the cost to the last decimal
Every route carries its per-minute rate and billing increment, so the price of a call is known arithmetic before anyone picks up. When the call starts, funds for its maximum length are held. At hangup it is billed on the seconds its increment counts, and the unused part of the hold goes straight back to your balance. The result arrives in the same response: status, SIP code, billed seconds and the exact charge, carried to six decimal places.
- Billing increments stated per route: 1/1, 6/6, 30/6 or 60/60
- A call that never connects is not charged
- Talk time and billed seconds recorded separately, so rounding is always visible
- The maximum call length is capped at what your balance can cover
- To
- +44 7700 900123
- Caller ID
- +44 7700 900456
- Route
- United Kingdom, Direct
- Caller ID handling
- Full CLI
$0.061000 held at dial for the 300 s maximum. $0.032848 returned at hangup.
Caller ID, stated per route
Choose the caller ID handling before you pay for it
Whether the person you call sees your number is decided by the route, so every voice route says so up front. Full CLI keeps your caller ID intact, Local CLI shows a local number in the destination's area, Mixed CLI is not guaranteed, and No CLI does not preserve it, usually at the lowest price. The quality tier, billing increment, channel capacity and T.38 fax support sit beside the rate, so a support line, a sales team and a notification run can each buy exactly what they need and nothing they do not.
- Direct, premium, standard and No CLI tiers on every listing
- Routes that carry T.38 fax over IP are flagged
- Rate decks priced by prefix, matched to the longest prefix of the number dialled
- See what really arrives with a Caller ID test before traffic goes on
- Operator directFull CLIYour route6/6 billing240 channels$0.012per minute
- PremiumFull CLI60/60 billing180 channelsT.38 fax$0.0104per minute
- StandardLocal CLI30/6 billing400 channels$0.0079per minute
- No CLINo CLI60/60 billing600 channels$0.0058per minute
- Full CLI:
- your caller ID arrives intact
- Local CLI:
- a local number in the destination's area is shown
- Mixed CLI:
- caller ID is not guaranteed - may pass, be localised, or be dropped
- No CLI:
- your caller ID is stripped or replaced
Inbound numbers
Numbers that answer like a business
Calls coming in deserve the same care as calls going out. Buy local, national and mobile numbers, and toll-free where available, on the same account, then decide what happens when one rings: a menu that routes callers by keypress, destinations that ring in order or all at once, opening hours with holidays, and voicemail when nobody can pick up. Deliver each call to your SIP server, a hosted softphone login or any phone.
- Menus on any key from 0 to 9, star or hash, with the wait and repeats you set
- Weekly opening hours per number, a holiday list and a rule for outside hours
- Voicemail and call recording, played back from the dashboard
- Present the same numbers as caller IDs on outbound campaigns
Menu (IVR)
Greeting: main menu- Press 1SalesSIP server 203.0.113.10
- Press 2SupportForward to +44 7700 900789
- Press 0VoicemailGreeting: after hours
Waits 7 seconds for a key, then repeats the menu up to twice.
Business hours
Europe/London- Mon-Fri
- 09:00-18:00
- Saturday
- 10:00-14:00
- Sunday
- Closed
- Holidays
- 25 Dec, 26 Dec
Outside hours Voicemail
Voicemail
One request
Send the first one in a minute
No onboarding call and no waiting for an account manager. Create an account, take your API key and post to the endpoint below, the same one that carries live traffic. Test keys let you try it without sending a real message or call.
curl https://packetexchange.io/api/v1/comms/calls \ -H "Authorization: Bearer $PE_KEY" \ -d to="+447700900123" \ -d from="+447700900456" \ -d strategy="best_quality" # Smart Routing
What the voice platform does
Built for traffic that has to connect
The details that decide whether a voice integration survives production: what a retry does, how a call is rated, which numbers are refused, and what you can read back afterwards.
One request per call
POST /comms/calls places the call and returns when it ends, with status, SIP code, hangup cause, billed seconds and cost in the response. Subscribe to call.completed to receive the same result by webhook.
Three routing strategies
Cheapest ranks by rate, best quality ranks by answer rate with price as the tiebreak, and balanced weighs quality against cost. The most specific prefix wins first, or name a route you bought to use that one.
Caller ID handling per route
Full CLI, Local CLI, Mixed CLI or No CLI is stated on every voice route next to its quality tier, so what the called party sees is a choice you make, not a surprise you discover.
Increments you can see
Each route bills on its own increment: 1/1, 6/6, 30/6 or 60/60. Every result returns talk time and billed seconds side by side, so a rounded charge always explains itself.
Retries that never double-dial
Send an X-Idempotency-Key and a repeated request replays the original response instead of placing a second call. Reuse a key with a different body and it is refused; a request still running returns a conflict.
Rates by destination
Routes priced with a rate deck are rated at the longest prefix that matches the number you dial. If the deck does not cover a number, the call is refused rather than billed at a headline price.
Checks before the dial
Numbers on your do-not-call list or the platform-wide list, and destinations under embargo, are refused before routing or billing. Origination is capped at 10 call requests a second per credential.
A sandbox that behaves like live
Test keys run the same routing and rating checks as live traffic, then simulate the call and charge sandbox credit only. Your integration sees real response shapes without a real call.
Why PacketExchange
Carrier routes, chosen by you
A typical voice API quotes one price per country and picks the carrier behind it. Here you see every route to a destination, decide which one carries your traffic, and pay the rate it is listed at.
Keep the margin
You pay the route's own rate plus a platform fee of 2% of that cost, capped at $0.001 per call. On a short call to a low-cost destination, the fee is a fraction of a tenth of a cent.
Control on every call
Pin the exact route for one call and let Smart Routing choose for the next. Pick the caller ID handling, quality tier and billing increment that suit each kind of traffic you run.
Minutes to the first call
Open an account, fund it from $5 and place a call through the API in the same sitting. Routes you buy come with SIP credentials, so your switch can send traffic straight away.
One balance for everything
Termination, phone numbers, SMS, dialer campaigns and AI voice agents all draw on the same prepaid balance, with one login and one ledger to reconcile.
Before and after
What changes when voice runs on the exchange
The same job, done the way most teams buy voice today, and the way it runs here.
- Route choice
- The usual way: One price per country, with the carrier behind it chosen for you.
- On PacketExchangeEvery route listed with its tier, caller ID handling, rate and increment. Pin one, or let Smart Routing choose per call.
- Caller ID
- The usual way: Assumed to arrive intact until answer rates say otherwise.
- On PacketExchangeFull CLI, Local CLI, Mixed CLI or No CLI stated on the route, with a real handset test available before traffic goes on.
- Rounding
- The usual way: Per-minute billing, with the rounding rules in the small print.
- On PacketExchangeThe increment shown on the route, with talk time and billed seconds returned for every call.
- Retries
- The usual way: A timeout followed by a retry can place the same call twice.
- On PacketExchangeAn idempotency key replays the first response, so a retried request never dials again.
- Inbound
- The usual way: Numbers, IVR and voicemail from another vendor, on another bill.
- On PacketExchangeNumbers with menus, opening hours, voicemail and recording on the same account and balance.
- Commitment
- The usual way: A contract or monthly minimum before production traffic.
- On PacketExchangePrepaid from $5 by card or crypto, with no monthly platform fee and no minimum spend.
| The usual way | On PacketExchange | |
|---|---|---|
| Route choice | One price per country, with the carrier behind it chosen for you. | Every route listed with its tier, caller ID handling, rate and increment. Pin one, or let Smart Routing choose per call. |
| Caller ID | Assumed to arrive intact until answer rates say otherwise. | Full CLI, Local CLI, Mixed CLI or No CLI stated on the route, with a real handset test available before traffic goes on. |
| Rounding | Per-minute billing, with the rounding rules in the small print. | The increment shown on the route, with talk time and billed seconds returned for every call. |
| Retries | A timeout followed by a retry can place the same call twice. | An idempotency key replays the first response, so a retried request never dials again. |
| Inbound | Numbers, IVR and voicemail from another vendor, on another bill. | Numbers with menus, opening hours, voicemail and recording on the same account and balance. |
| Commitment | A contract or monthly minimum before production traffic. | Prepaid from $5 by card or crypto, with no monthly platform fee and no minimum spend. |
Built for
Who runs traffic on it
IVR & call routing
Inbound menus, forwarding and out-of-hours voicemail.
Calling from your product
Place a call from your backend with one request.
Contact-centre trunks
Carrier voice for support and sales.
Pricing
The route's rate, one capped fee
- fee through the API or dialer
- 2%
- fee over your own SIP trunk
- 0.5%
- fee cap per call
- $0.001
A call is billed at the rate of the route that carried it, on that route's billing increment, plus a platform fee of 2% of the carrier cost, capped at $0.001 per call. Calls that do not connect are not charged.
Traffic from your own switch over a SIP trunk carries a 0.5% fee instead, capped at the same $0.001. Phone numbers are priced separately, with a setup fee and a flat monthly price shown before you buy.
What you pay for
Route rate per minute
Set by the carrier that listed the route, shown before you buy, and rated on the route's own increment.
Platform fee
2% of the carrier cost through the API or dialer, 0.5% over your own SIP trunk, never more than $0.001 per call.
Prepaid balance
Top up from $5 by card or crypto, or from $100 by bank wire. Each call holds only what its maximum length could cost.
Phone numbers
A setup fee and a flat monthly price per number, drawn from the same balance, with auto-renew you control.
No monthly platform fee, no minimum spend, and nothing charged for a call that never connects.
Questions
Voice, answered
The questions buyers ask before they start. Anything not covered here is in the help centre, or ask the team directly.
Do I need my own switch to place calls?
No. The calls API originates the call for you and returns the result when it ends. If you already run a softswitch or SBC, buy a route and point your switch at it with the SIP credentials that come with the purchase.
How do I know what caller ID the person I call will see?
Every voice route states its caller ID handling: Full CLI passes your number intact, Local CLI shows a local number in the destination's area, Mixed CLI is not guaranteed and No CLI does not preserve it. To confirm what actually arrives, run a Caller ID test, which places a real call to a handset in the destination country.
What happens if my request times out and my code retries it?
Send an X-Idempotency-Key header. A retry with the same key and body replays the original response instead of placing a new call, and a retry that arrives while the first request is still running is told so rather than dialling again.
How exactly is a call billed?
Talk time is rounded by the route's billing increment and multiplied by its per-minute rate, then a platform fee of 2% of that cost is added, capped at $0.001. Funds for the call's maximum length are held when it starts, and the unused part is returned at hangup.
Which routing strategy should I use?
Use cheapest when price decides, best quality when the call has to connect, and balanced, the default, when you want the most quality for the cost. Each ranks only routes that serve the number, most specific prefix first. Name a route you bought to skip the choice.
Can I test my integration without spending money?
Yes. Test API keys run the same routing and rating checks as live keys, then simulate the call and charge sandbox credit instead of your balance. An invite code adds $50 of sandbox credit.
Can I receive calls as well as make them?
Yes. Buy numbers and route each one to a SIP server, a hosted softphone login or any phone, ringing destinations in order or all at once, with menus, opening hours, voicemail and call recording available on every number.
Are there numbers you will not call?
Destinations under comprehensive embargo are refused, and so is any number on your own do-not-call list or the platform-wide list. Both checks run before routing, so a refused call is never billed.