A full licence is perpetual: bought once, it is yours and does not expire. Every update of the version line you bought (for example every 1.x version of V1) is included for life, at no extra cost. A future major version (V2) will be a paid upgrade.
Student licence? It gives you every feature, with a daily send allowance and a term that is asked for again each year, and it needs to reach our activation server more often than a full licence does. Read If you have a student licence: it is the one section of this page that changes for you.
The gateway checks the licence with our licence server about once a day. It is built so that an outage on our side does not stop your SMS right away:
- before the date shown on the License screen in Unconditional from, the gateway keeps sending through any outage of up to 30 days (15 days of validity of its local token, then 15 days of grace); after that, sending pauses and resumes by itself at the next successful check;
- from that date, set by the licence agreement, the gateway no longer depends on our server: it keeps working even if our server disappears;
- only an explicit, signed withdrawal (for example after a refund) stops sending immediately.
The licence is shown in License, in the System section of the menu, and summarised in Settings > License.
Activate the gateway
A new installation asks for the key before anything else: a window titled Activate this gateway opens on every screen until a key is entered (the License screen itself stays reachable).
- Find your key in your customer area on our website, or in the delivery email.
- Type or paste it in Licence key. The format is
XXXX-XXXX-XXXX-XXXX; spaces, dashes and lowercase are accepted. - Click Activate.
The first activation needs an internet connection to our server. After that, the gateway renews its licence on its own; see below how long it can do without us. Only a Superadmin can activate or re-check the licence.
| Message after Activate | Meaning |
|---|---|
| Licence activated. | Done |
| Key not recognised | A typing mistake: the key is checked on your machine before anything is sent. Check it character by character |
| Our server is not answering | Our server is unreachable: this says nothing about your key. Try again in a few minutes |
| Key issued for another version line | The key is valid but for another major version of the gateway. An upgrade is bought from your customer area |
| This key has been withdrawn | Our server signed a withdrawal for this key. Contact support |
What the gateway sends us, and what it never sends
When it checks the licence, the gateway sends only: the key, the version line and version of the gateway, a fingerprint of the machine (a one-way hash, not a hardware identifier), the number of paired phones and a check counter. Never a message, a number, a contact or a log. A gateway with no key never contacts us at all.
How the check works
- After activation, the gateway holds a signed local token, valid for 15 days. It renews it silently about once a day, so in normal operation the token never gets close to its date.
- If our server does not answer, the gateway tries again later: after 15 minutes, 1 hour, 6 hours, then every 24 hours, for ever. Sending continues in the meantime.
- If the token passes its date without being renewed, a 15-day grace period opens. Sending still continues, and a banner shows the date on which sending will pause if no check succeeds by then.
- If the grace period ends too, and the licence has not reached the date shown in Unconditional from, sending pauses until the next successful check (see below). The gateway then retries at least every hour.
- The token carries, signed by us, the date set by the licence agreement from which your licence becomes unconditional, shown in Unconditional from until it is reached. The gateway compares that date with its own clock: once it is reached, it no longer needs to reach us at all, even if it has not been able to contact us for months. The check keeps running about once a day, but no longer needs to succeed. The screen then shows This licence is yours unconditionally.
- Setting the machine clock back does not extend any of these dates: the gateway keeps a check counter and the latest time it has seen, and never goes backwards.
If you have a student licence
A student licence gives you the same gateway and the same features as the full licence: the same phones, the same API, the same automation, the same conversations. Three things are different, and none of them is hidden from you.
It sends 30 messages a day
A student licence may send 30 messages per day from the whole installation, counted in whole messages and not in parts: a long SMS that your carrier bills as three still counts as one here. The count is per calendar day in UTC, the same clock the SIM quotas use, so it resets at midnight UTC whatever time zone you display.
The 21st message of the day waits, it is not lost. It goes to Quota reached in the message history, exactly like a message waiting for a SIM quota, and leaves by itself at midnight UTC. It is never marked failed, it costs no attempt, and you do not have to do anything: the next day it goes out first. Everything received keeps coming in, without any limit.
The allowance is counted when a message is handed to a phone, so a message that a phone later refuses has already used its share for the day. Reception, conversations, contacts, exports, the dashboard and every read through the API are never counted or limited.
It lasts twelve months, then you ask again
A student licence is granted for twelve months. Its end date is set when it is issued, and you ask for a new one at the end of each term from your customer area, with the proof of the current year. The gateway needs nothing reinstalled: as soon as the new licence is in force, the next successful check picks it up.
When the term is over, sending pauses and nothing else stops. Queued messages wait, reception, conversations, contacts, the dashboard and API reads keep working, and your data stays yours. The licence is not withdrawn, and nothing is deleted.
It needs to reach our server every three days
This is the real difference, and it is deliberate. A full licence keeps sending through an outage of up to 30 days, and from the date shown in Unconditional from it no longer depends on us at all. A student licence never gets that. It holds a local token valid for three days, renews it roughly twice a day, and has no grace period: if nothing succeeds for three days, sending pauses.
| How long without a successful check | Student licence |
|---|---|
| Up to 3 days | Everything works |
| Beyond 3 days | Sending paused until the next successful check |
A student licence also never shows Unconditional from: it depends on the check for as long as it lasts. This is what the lower price pays for, and it is the reason the full licence exists.
What the screen shows when it cannot reach us. The License screen shows Sending paused: licence check needed, the contact block shows Activation server unreachable with No answer since, and Sending pauses on gives the date it happened. The behaviour is the same as for any paused licence:
- messages already queued wait in the queue: nothing is failed or lost, and new ones are accepted and wait with them;
- reception, conversations, contacts, the dashboard, API reads and every setting keep working;
- sending resumes by itself at the next successful check, queued messages first. The gateway retries at least every hour, and Check now forces a check at once;
- your licence is not withdrawn: an outage on our side, however long, never takes a licence away and never loses a message.
So a student installation needs a machine that can reach the internet, and our activation server through any firewall or proxy. If your network blocks outgoing connections for days at a time, the full licence is the one to buy.
What the License screen shows
The status
| Status | What it means | Sending |
|---|---|---|
| No key recorded | No key was ever entered on this installation. The gateway runs on a trial until the date shown in Trial ends on | Continues until that date |
| Trial over, sending paused | No key was ever entered and the trial has ended | Paused; messages wait in the queue, everything else keeps working. Entering a key releases them at once |
| Licence active | Everything is in order. There is nothing for you to do | Continues |
| Local token due for renewal | The local token is past its date and the 15-day grace period is running. A banner shows the date sending will pause; renewal happens by itself as soon as our server answers | Continues |
| Sending paused: licence check needed | The grace period is over and the licence has not reached the date shown in Unconditional from, or this machine never obtained a token for the key (see Moving to another machine), or a student licence has gone three days without a successful check, or its term is over | Paused; messages wait in the queue, everything else keeps working |
| Licence withdrawn | A signed decision withdrew this licence | Suspended; reading and exporting your data stay open |
Before you enter a key. A fresh installation works fully for 7 days, so you can install it, pair your phones and wire your own code before paying. The License screen shows the end date in Trial ends on. When it passes, outgoing messages stop leaving and wait in the queue: none is failed, none is lost, incoming messages keep arriving and the dashboard keeps working. The moment you enter a licence key, the queue empties as usual. Nothing is ever withdrawn by the clock running out.
From the date shown in Unconditional from, the licence shows Licence active whatever the state of our server. A student licence never shows Local token due for renewal: it has no grace period, so it goes straight from Licence active to Sending paused: licence check needed.
Contact with our activation server
This block describes our attempts: Activation server reachable or Activation server unreachable, with No answer since, Last attempt, Last successful contact and Next attempt. An unreachable server is never an invalid licence: before the date shown in Unconditional from, it only matters if it lasts past the grace period. Check now (Superadmin) forces an attempt immediately; when sending is paused, a successful check resumes it at once.
What your key allows
| Field | Meaning |
|---|---|
| Key | The first four characters of your key; the full key is never displayed |
| Version line | The major version your key opens |
| Updates included | Every version of your version line, for life |
| Local token validity | When the local token is due for renewal. Passing it opens the 15-day grace period |
| Sending pauses on | Shown when no check has succeeded for a while: the date sending pauses unless a check succeeds before |
| Unconditional from | The date, set by the licence agreement, from which your licence no longer depends on our server. From then on, the check keeps running but no longer needs to succeed, and this line gives way to This licence is yours unconditionally |
| Check counter | Number of checks made, a protection against a computer clock moved backwards |
Check log
Check log lists every contact attempt, newest first, with its Result:
| Result | Meaning |
|---|---|
| Success | Token renewed |
| No answer | Our server could not be reached, or its answer could not be verified. The licence is not withdrawn; only time without any successful check counts |
| Signed refusal | Our server refused to renew without withdrawing the licence, for example Different machine fingerprint or Usage reported as abusive. Nothing stops at once, but no token is renewed, so the grace rules apply |
| Other version line | The key belongs to another major version: an upgrade offer is shown. The binary installed is not the one your key opens, so no token is obtained and the grace rules apply |
| Signed withdrawal | The licence was withdrawn: see below |
When our server is unreachable
| How long without a successful check | Before the date shown in Unconditional from | From that date |
|---|---|---|
| Up to the token date (15 days after the last success) | Everything works | Everything works |
| The next 15 days (grace) | Everything works, banner with the pause date | Everything works |
| Beyond | Sending paused until the next successful check | Everything works, with no time limit |
These are the figures for a full licence. A student licence has three days and no grace period.
The Activity log records when our licence server stops answering
and, later, how long the outage lasted. Your tools can follow the same facts with the
license.offline and license.reconnected webhook events. If notifications are on, the
administrators are also told when sending pauses.
While sending is paused
- Messages already queued wait in the queue: nothing is failed or lost. New messages, from the dashboard, campaigns, automatic replies or the API, are accepted and wait with them.
- Reception, conversations, contacts, the dashboard, API reads and every other setting keep working.
- Sending resumes by itself at the next successful check, with the queued messages leaving first. The gateway retries at least every hour; Check now forces a check at once.
- What to do: check that the machine reaches the internet (and our licence server through any firewall or proxy). If our server is the one down, contact support.
An answer that the gateway cannot verify (a proxy error page, a captive portal, a forged answer) is treated exactly like no answer: it can never withdraw your licence.
Moving to another machine
The licence holds one machine at a time, identified by its fingerprint. Using the same licence on several machines at the same time is forbidden by the licence agreement (article 2.3); moving to a new machine is allowed.
- Moving with your data, following Changing server without losing the gateway's secret key, keeps the fingerprint: there is nothing to do.
- On a new installation, enter your key. If the old machine still holds the activation, the gateway reports that the licence is already in use on another machine and the check log shows Different machine fingerprint. The new gateway sends for 15 days, then pauses sending until it obtains its own token, whatever the date: the date shown in Unconditional from only applies to a machine that has itself obtained a token. To release the old machine, use Regenerate key in your customer area: every machine is freed, the old key stops working, and you enter the new key on the new gateway. You can also contact support.
- A copy of the database restored on another machine does not carry the licence with it: the token belongs to the machine that obtained it, so the copy follows the same rule as a new installation.
A withdrawn licence
A licence is withdrawn only by a decision our server signs, for example after a refund. In that case:
- sending stops immediately, whatever the age of the licence (quick send, campaigns, automatic replies, API sends);
- reading and exporting your data stay open: conversations, contacts, history, existing backups and exports remain accessible, so you can always take your data with you;
- the screen shows Enter your key again: if you contested the withdrawal and won, typing the key here is the way out. Contact support to contest.
With the API
| Method | Path | What it does |
|---|---|---|
GET |
/api/v1/license |
The licence state, without contacting our server |
POST |
/api/v1/license/activate |
Records a key ({"licenseKey": "XXXX-XXXX-XXXX-XXXX"}) and activates it |
POST |
/api/v1/license/check |
Forces a check. Answers 200 even when our server did not answer: the result is in the body |
GET |
/api/v1/license/checks |
The check log |
Activation and check need a Superadmin session or a key with the admin scope. POST /license/activate also lets you replace the key of an active installation, for example after
regenerating your key in your customer area.
GET /license also tells you which edition you hold, so your own tools can watch a student allowance:
| Field | What it carries |
|---|---|
edition |
standard for a full licence, student for a student one |
expiresAt |
The end of a student term. null on a full licence, whose right of use does not end |
dailyCap |
The messages allowed per UTC day. null when there is no allowance to respect |
sentToday |
Messages already sent on the current UTC day. null when there is no allowance, and also when the gateway could not read the counter |
Troubleshooting
| What you see | What to do |
|---|---|
| Activation server unreachable | Nothing at first. If it lasts for days, check that the machine can reach the internet |
| A banner with Sending pauses on | Check the internet access of the machine, then use Check now. The banner clears at the next successful check |
| Sending paused: licence check needed | Same as above; sending resumes by itself at the next successful check. If the check log shows Different machine fingerprint, release the old machine from your customer area |
| Our server is not answering on the first activation | The machine needs internet access for this one step. Try again later |
| Key not recognised | Copy the key again from your customer area |
| Different machine fingerprint in the check log | The licence is still attached to your previous machine. Use Regenerate key in your customer area, or contact support |
| Licence withdrawn | Export what you need, then contact support |
| Messages in Quota reached on a student licence | The 30 messages of the day are used. They leave at midnight UTC on their own. If 30 a day is not enough, the full licence has no allowance |
| Sending paused: licence check needed on a student licence | Three days have passed without a successful check, or the term is over. Check that the machine reaches the internet, then use Check now. If the term is over, ask for a new licence from your customer area: sending resumes at the next successful check |