Pricing
Customer pricing plans (or rates)
A pricing plan (rate sheet) is the set of prices a customer pays for the messages they send. A service combines one pricing plan with one routing profile. Customer SMPP accounts use a service, so they inherit that plan.

There are two plan types: pricing by country, or pricing by network.
A walkthrough is in the Pricing tutorial.
Effective and cease date/times are shown in the local time zone of the web browser. A price takes effect at that date/time (accurate to the second).
Prices are used to:
- deduct a monetary account balance when the customer submits a message
- populate reports, CDRs and Status > Message lookup
- calculate invoice usage charges
When a customer has a monetary balance and no price can be found for the destination, the submit is rejected and no message ID is issued. The balance currency does not have to match every price currency; when they differ, the current exchange rate is used for the deduction.
Services, pricing plans and routing profilesA pricing plan can be shared by several services. Give a customer their own service and plan when they need their own rates. The same routing profile can still be reused.
Pricing plans
Plans are defined in Configuration > Pricing. Current prices for each plan are managed in Pricing and Pricing > Plan prices.
The Pricing dashboard lists each plan with the services that use it, type (Country or Network), notice period, currency and whether it is published publicly.
Row actions:
| Action | What it does |
|---|---|
| PDF / CSV | Download the current rate sheet |
| Send the current rate sheet (preview to yourself, or to customers on services that use the plan) | |
| JSON | Open the public pricing URL (when Publish publicly is enabled) |
The plan name opens Pricing > Plan prices filtered to that plan.
Add a pricing plan
- Go to Configuration > Pricing.
- Click Add pricing plan.
- Enter a Name (customers may see this on published rate sheets and emails).
- Tick Country pricing for one price per country. Leave it unticked for network pricing.
- Set Min. price and Currency. These are the defaults when you add a new price item.
- Optionally set Notice period (shown on the dashboard and in the public JSON), Price DP (decimal places used when prices are shown or emailed), and mark-up / change-threshold fields used when a batch is proposed from supplier cost changes.
- Tick Publish publicly (API) if the plan should be available as JSON. A read-only Pricing URL ID is assigned.
- Click Save.
Attach the plan to a service
- Go to Configuration > Services.
- Create or edit a service.
- Select the pricing plan and a routing profile.
- Click Save.
Changing the plan on a service applies to every SMPP account that uses that service.
Archive a plan
Use Archive on Configuration > Pricing only when the plan is no longer required. Reassign any services that still use it before you archive it.
Country vs network pricing
| Type | When to use | What you must define |
|---|---|---|
| Country | One price for every network in a country | A price for each country the customer will send to. Leave the network unselected unless you need an exception. |
| Network | Different prices per mobile network | A price for each network, and a price for the country default (used when the network cannot be identified) |
Check a destination in Routing > Analyser for an SMPP account: it shows the price that will be applied.
Plan prices
Pricing > Plan prices shows the prices that are in force now (effective in the past, not yet ceased). Filter by plan and country.
| Action | When to use |
|---|---|
| Add price item | A destination that is not yet in the plan |
| Change price | Replace an existing country or network price. The current row is ceased at the new effective time and a new row is opened. No customer notification is generated. |
| Upload | Replace many destinations from a CSV (see Upload) |
| Download | Export one plan as CSV or PDF |
| On the Pricing dashboard: send the current rate sheet |
Add a price
- Go to Pricing > Plan prices.
- Click Add price item.
- Select the pricing plan, country and (for a network plan) network.
- Enter the price and currency.
- Tick charge basis for Submit (charged regardless of delivery). Leave it unticked for Delivered (charged only when the message is delivered).
- Set the Effective date/time.
- Click Save.
Currency must not be None. The new effective time cannot be earlier than an existing open row for the same plan, country and network.
Change a single price (no notification)
- Go to Pricing > Plan prices.
- Find the destination.
- Click Change price.
- Enter the new price, charge basis and effective date/time.
- Click Save.
Use this for a quiet correction. To notify customers, use Pricing > Pricing changes, or send the current rate sheet with Email on the Pricing dashboard after you have saved.
Pricing changes and distribution
Rate sheets (CSV and PDF) can be emailed when prices change, or when you need to share current pricing — for example during onboarding.
There are two workflows.
Send the current rate sheet
Use this after you have edited prices in Plan prices (including upload), or when onboarding a customer.
- Go to Pricing.
- Click Email on the plan.
- Choose Self to preview, or Customers to send to every customer that has an enabled SMPP account on a service using that plan.
Only customer contacts with Pricing ticked (receive_pricing) are included. The email uses the Pricing: Current pricing template and attaches the current CSV and PDF.
Batch changes with notification
Use Pricing > Pricing changes when you want a review step and a change-notification email. Batches are created with Create manual change. Proposed batches from supplier cost changes also appear here for approval.
- Go to Pricing > Pricing changes.
- Select the pricing plan.
- Click Create manual change.
- Expand the batch. Click Add price change for each destination. The row shows the current price, the new price (with an up / down indicator) and the effective date/time. For a network plan, select the network as well as the country.
- When the batch is complete, click Approve and confirm. The prices are applied and notification emails are queued. Reject discards the batch; no prices change.
A badge on Pricing > Pricing changes shows how many batches are waiting for approval.
Send the queued notifications
- Go to Customers > Notifications. Queued change emails are grouped by batch.
- Click Send notifications and confirm.
Each send is recorded on the customer's Notes tab.
Recipients are contacts with Pricing ticked, on customers that have an enabled (not archived) SMPP account on a service that uses the plan. Customers with an archived or closed account status are skipped. Contacts with a blank email address are skipped.
Approving a batch queues mail; it does not send it. Direct Change price and Upload edits do not queue a change-notification batch.
Email templates
Emails use templates in Configuration > Company > Email templates. Each inherits the logo, signature and sender address from Configuration > Company. Customise the wording before you send to customers.
| Template | Used when |
|---|---|
| Pricing: Current pricing | Email on the Pricing dashboard |
| Pricing: Notification of pricing change | After you approve a Pricing changes batch |
Placeholders for the current-pricing template: %contact_name%, %service_name%, %system_id%.
Placeholders for the change-notification template: %contact_name%, %price_change_id%, %service_name%, %system_id%, %pricing_changes_list%.
Upload
In Pricing > Plan prices, click Upload to open the Import Pricing Plan wizard.
- Select the pricing plan.
- Optionally enable Dry run (make no changes) to see the outcome without writing prices.
- Choose the CSV file and click Import.
Importing closes (ceases) existing prices for the destinations in the file. The outcome dialog reports data rows, failed rows, duplicates, unknown networks, updated, unchanged and new.
Currencies supported: USD, GBP, EUR, CHF, NZD, AUD, JPY, ZAR, CAD, HKD, SGD, MXN, INR, BRL, ARS, CLP, HRK, MYR, CNY, AED, SAR, DKK, NOK, SEK, CZK and others.
Two layouts are accepted.
Import format A
MCCMNC,Price,Currency,Effective
Example for UK Telefonica O2 at GBP 0.016, effective 1 Jan 2021 00:00 UTC:
23410,0.016,GBP,2021-01-01T00:00:00+00:00
Example:
MCCMNC,Price,Currency,Effective
616005,0.008100,EUR,2021-01-01T00:00:00+00:00
617003,0.056400,EUR,2021-01-01T00:00:00+00:00
With this format, prices are treated as Submit prices (not Delivered).
Import format B
This is the same layout as download.
Country,Prefix,Network,MNC,Currency,Price,Type,Effective
Each row is either a network or a country. The network is specified by MNC.
If MNC contains only an MCC, the row is the country default. If MNC is blank, the country is taken from Prefix (and Country if needed).
Example:
Country,Prefix,Network,MNC,Currency,Price,Type,Effective
Belgium,32,All,,EUR,0.05520,S,2022-12-15T23:20:00+00:00
Ireland,353,All,,GBP,0.03600,D,2021-10-05T23:00:00+00:00
Malaysia,60,All,,GBP,0.03835,S,2022-11-18T17:36:00+00:00
Download
On the Pricing dashboard, click CSV or PDF for the plan.
Alternatively, in Pricing > Plan prices click Download, select the plan, and choose CSV or PDF.
CSV export uses the same columns as import format B.
On Configuration > Pricing, Split MCC and MNC into separate columns changes every pricing-plan CSV download and email for the instance. When disabled (the default), exports have a single MNC column with the combined MCC-MNC. When enabled, exports have separate MCC and MNC columns.
Import/export CSV format
| Field | Description |
|---|---|
Country | Country name, ISO 3166-1 alpha-2 or alpha-3 (for example France, FR or FRA) |
Prefix | Country prefix (for example 44 for the United Kingdom) |
Network | Network name (for example Vodafone) |
MNC | Network code as MCC-MNC (234-14) or MCCMNC (23414) |
Currency | Price currency (for example EUR) |
Price | Price value (for example 0.035) |
Type | S = Submit, D = Delivered |
Effective | Start date/time in ISO 8601 (for example 2022-11-18T17:36:00+00:00) |
Publish publicly
Enable Publish publicly (API) on the plan in Configuration > Pricing. Customers (or your website) can then read the current and future prices as JSON. Open the URL with JSON on the Pricing dashboard.
See Publish pricing.
Updated 6 days ago
