A tariff is a price list keyed by prefix. It is the piece that puts money on every call: what you charge, what it costs you, and above all whether the call connects. You will find them under Users › Tariffs.
The two types
| Type | What it is | Where it is assigned |
|---|---|---|
| User (Sell) | What you charge your customer. | On the customer's Origination Point, field Sell Tariff. Each OP can have its own. |
| Provider (Buy) | What the carrier charges you. | On the provider's Termination Point, field Buy Tariff. |
The Tariffs screen keeps them apart with the User Tariffs and Provider Tariffs tabs. Every tariff has a name, a currency, a description and a rate count.
The tariff is what connects the call
This is the principle that saves the most troubleshooting time:
What follows from that:
- With no sell price for the destination, the customer cannot call there.
- With no buy price on the Termination Point, that carrier is not a candidate and
the call is rejected with
NEXIA_NO_PROVIDER_RATE. - A prefix reaches exactly as far as you load it. A tariff carrying
57connects all of Colombia; one carrying only573connects Colombian mobile only. - Everything matches by longest prefix, so a specific
573beats a general57even when both are loaded.
Creating a tariff
- In Users › Tariffs, click + Add New Tariff.
- Name: something self-explanatory —
Retail Colombia,CarrierX buy. - Type: User (Sell) or Provider (Buy).
- Currency and Description.
Once saved, the row's EDIT button changes its details, and the name takes you to its rates — where the real work happens.
The fields of a rate
| Field | What it does |
|---|---|
| Prefix | The code the price applies to: 573, 57604, 1415. |
| Destination | The readable name: Colombia Mobile. This is what shows up in reports and CDRs. |
| Rate/min | Price per minute. |
| Conn. Fee | Flat charge on an answered call, on top of the per-minute rate. |
| Min Dur. | Minimum billable duration, in seconds. |
| Increment | How many seconds each step rounds up to after the minimum. |
| Effective | When this price starts to apply. |
| Status | Active or BLOCKED. |
Reading 60/60, 1/1 and 6/6
The usual notation is minimum/increment, which in NEXIA are the Min Dur. and Increment fields:
| Billing | Min Dur. | Increment | A 75 s call bills as |
|---|---|---|---|
| 60/60 | 60 | 60 | 120 s (2 minutes) |
| 1/1 | 1 | 1 | 75 s |
| 6/6 | 6 | 6 | 78 s |
Blocking a destination
The blocked flag is the right way to close a destination: the row stays in the tariff, visible, marked BLOCKED in red, and the call does not go through.
Loading prices from a file
Inside a tariff, the Import button opens the importer. Drag the file in, or pick it with browse.
- Formats: CSV, TXT, XLS and XLSX. Comma or semicolon separators both work.
- Columns:
prefix, destination_name, rate, connection_fee, min_duration, increment. The Template button downloads a ready-made base file with examples. - Preview: before anything is written, the importer shows the first rows already parsed plus how many valid rates it found. Only Confirm import saves.
- Effective date & time (optional): left blank, the prices apply from now. Set a past date to backdate the deck — which is what you need to re-rate traffic that has already been carried.
When it finishes you get a summary like 1,284 new · 96 updated ·
40,112 unchanged. Importing the same deck twice duplicates nothing: existing
prefixes are updated and unchanged ones are left alone.
Example file
prefix,destination_name,rate,connection_fee,min_duration,increment
57,Colombia,0.0180,0,60,60
573,Colombia Mobile,0.0215,0,1,1
5760,Colombia Fixed,0.0090,0,60,60
1,USA,0.0045,0,6,6
Manual entry, editing and export
- + Add Rate adds a single price: pick a Country, then a Destination — both come from the destination catalogue — and fill in prefix, rate, connection fee, minimum and increment.
- EDIT on any row edits it in place, without leaving the listing.
- The search box filters by prefix or destination, and the alphabetical index jumps straight to a letter.
- Download CSV exports the whole tariff with the importer's own columns: edit it outside and upload it back.
- Delete All empties the tariff. That is for rebuilding a deck from scratch, not for adjustments.
Rate check
Above the listing there is a RATE CHECK field. Type a real number, hit Check, and it tells you which price applies by longest prefix match: the winning prefix, the destination name, the rate, the connection fee, the minimum and the increment — or that it is blocked, or that no rate covers that number.
It is the fastest way to answer "why are we charging this customer that?" and to sanity check a freshly imported deck before anyone calls.
The catalogue source
One of your tariffs can be the source of the destination catalogue. On the tariff's row, SET AS SOURCE marks it and gives it the CATALOG SOURCE badge.
From then on, every import into that tariff feeds the catalogue: prefixes are filed under their destination by longest match, and anything that does not resolve or that conflicts waits for your decision in Routing › Destinations › Discrepancies, where you apply or dismiss it.
Best practices
- Load the buy tariff on every Termination Point. Without it that carrier does not compete: there can be no price-based LCR and no margin protection if the switch does not know what the route costs you. A TP with no tariff is a TP that never carries.
- One tariff per commercial relationship, not one giant shared list: every carrier sends its own deck with its own structure and billing cycles.
- Always look at the preview before confirming. A deck with the price column shifted is a billing problem, not a technical one.
- Use Effective date for announced price changes instead of uploading the new deck by hand on the day.
- Block with the flag, do not delete the row: a deleted destination vanishes from reports, a blocked one stays documented.
- Verify with Rate check after every large import: three numbers from three different countries are enough to catch a badly mapped deck.