Period
Narrows every "in the period" figure below. Stock and register totals are always as of right now.
Households
Where everybody on the register stands.
Kit
What exists, and what is free to give out today.
Devices issued tokens
Every kit that received a token in the period chosen above, newest first.
Where they are
Every household with a position recorded.
By place
The same register read as geography: which places are paying, where leads went nowhere, and what kit is on the ground.
On the shelf
Kit nobody holds. A device is in stock until its first token, so this is what can go out today.
What you may issue today
Limits are per person, per day.
Issue a token
The counter lives on the server. Every token is recorded against you.
Many devices at once
A month to a whole village is one job, not two hundred. Paste the serials, or load a file of them, and every kit gets the same token type and amount. Each one is checked, charged and counted exactly as if it had been issued on its own.
A whole device CSV works too: if the text has a Serial Number column, that column is used and everything else ignored.
Your devices
Where the fleet stands. To find one device, search on Devices file — a list of every kit is not something anybody reads.
People
Who may use the system, what each may do, and how much they may give away.
How long a signed-in device is remembered
When somebody ticks "remember this device" after entering a code, this is how many days pass before they are asked for one again on that same device. Applies to every role at this business that has to enter a code at all.
Add someone
They sign in with these details. You can change what they may do at any time — it takes effect on their next request, not at their next sign-in.
Load devices from a file
The manufacturer's sheet, with a serial, a starting code and a key on each row. Column names are matched loosely, so "Serial Number", "serial_number" and "SERIAL" all work.
The file is read in this browser and sent over the same connection as everything else. Keys are stored, never shown again, and never returned by any part of this service.
Or paste the rows
Which columns are read
| Column | If it is missing |
|---|---|
| serial_number | required |
| key | required — 32 hex characters |
| starting_code | required |
| token_count | 1 |
| last_confirmed_count | 0 |
| starting_code_source | manufacturer_file |
| token_prefix | none |
| token_suffix | none |
| Time Divider | 1 — one unit is one whole day |
| time_divider_seconds | 86400 — one day |
| is_locked | not locked |
| device_type | none |
The three required ones have no default because guessing any of them produces a device record that looks correct and cannot be tokenised. Everything else is either cosmetic or the safe end of its range. Unrecognised columns are ignored, and Serial Number, serial_number and SERIALNUMBER are all the same column.
The two divider columns are different numbers and are read differently. A manufacturer's Time Divider counts units in a day — 1 means one unit is a whole day, and 24 would make it an hour. This platform's own export writes time_divider_seconds, which is seconds in a unit. Give the seconds column and it is taken as written; otherwise it is worked out from Time Divider.
Find and correct a device
Search by serial, model, starting code or the customer holding it. A starting code is shown as nine digits — spreadsheets drop leading zeros, so 1234567 is stored and displayed as 001234567. Correcting the code or the counter decides whether the hardware accepts anything this device is given, so this is an administrator's screen.
Places
Where this business works. Every registration form offers this list, so a ward written down once here is a ward spelled the same way on every record afterwards. A place that is not on the list is never refused — it is just not offered.
Load a list of places
One row is one whole path — the village, and the ward, district and region it sits in. Every place on the row that is not already listed is added, so a single row can add four. A short row is fine: regions alone, or regions and districts. Loading the same file twice adds nothing.
A gap in the middle is refused rather than half-loaded: a village with no ward could be listed and never found again, because every picker narrows by the level above.
Every place listed
What the pickers offer. Retiring one stops it being offered and leaves every record that names it untouched.
Device types
The physical components a kit is built from, named once — any device whose model string matches a type's name or one of its aliases reports the same specs, so getting one right fixes every device built from it at once.
Payments
Every payment received, who paid, and which token it funded. A payment with no token is unspent: money taken and not yet turned into days. Download CSV exports exactly the rows the filters leave.
Payments awaiting claim
Payments forwarded from the field that have not yet been linked to a device. Pick a row, confirm which serial it belongs to, and press Claim & Issue — no token is generated until you do.
Payments to split
Money received for more than one device. It is held — it buys no days and issues no token — until a commercial officer says how much belongs to each device. Most payments are for one device and never come here: record those on the device's account as usual.
Connect apps
Bring households in from a form, or send installed devices out to another system. Choose the system below and follow the steps — nothing here needs any technical knowledge, and nothing is sent out until you press Send.
Connected
Connect something new
Get ready for Prospect
Every device holding a household, whether it carries everything Prospect's own submission needs, and what is still missing if not. Nothing here calls Prospect — queuing marks a device so it is never offered twice, for whenever that call is switched on.
Type a serial, an identification number, a name or anything else into the filter above — it searches every column shown, and the "Queue" button above acts on whatever the filter currently narrows to.
Fill in what's missing, in bulk
A household's identification or GPS position, filled in from a file rather than one at a time — matched by device serial. Only a cell that is genuinely missing is filled; a value already on file is never overwritten, however the file re-states it.
RBF Submissions
All devices loaded for the REA TREEP RBF programme — review field-by-field, fix what is flagged, and push to Prospect. Devices already sent via the web form can be marked "already in Prospect" so they are never sent again.
Your plan
What this business has bought, what it has used this month, and what that comes to.
Customer codes
The letters your households are numbered under, and how much room is left in them.
Connected phones & apps
Each phone or app gets its own keys, shown once. Lose a phone? Revoke its keys here and nothing else is affected.
Organisation information
Who this business is, and where reports, notices and any change to a device record are sent. Yours to keep correct — blank a box to leave it as it is. The plan and the billing dates are not here: those are asked for below.
What a household sees at the top of an automatic payment text — for example a token arriving, or a kit settling. Left blank, messages go out unsigned rather than under "PayGO".
Every automatic payment text to every household of this business goes out in this language. Which items each message includes — a balance, a name — is the commercial officer's own setting, below.
Your logo and colour
What your staff see when they sign in. Both are optional — leave them and the platform's own look is used, which is what everyone gets today. Included on every plan.
PNG, JPEG, GIF, WebP or SVG, up to about 90KB. A wide wordmark works better than a square badge — it sits beside your name, not on top of it.
Buttons, links and headings only. Warnings stay amber and refusals stay red on every installation, whatever colour you choose — a button that suspends a customer must never look like one that saves.
Where the map draws from
Left alone, the map uses OpenStreetMap's shared server. It is run on donations and asks that applications not lean on it, so once a field team is large enough to be noticeable, point this at a provider you pay for or at your own cache. Nothing else about the map changes.
Must be https, and must contain {z}, {x} and {y} — the zoom and the position, which the map fills in. Anything in this address is visible to anyone using the app, so a key that must stay secret does not belong here.
Shown in the corner of the map. Every tile source has a licence and nearly all of them require the credit — and leaving OpenStreetMap's there while using somebody else's tiles credits the wrong people.
Ask to change plan
The plan is what this business has bought, so moving it is the platform administrator's decision — in either direction. Nothing changes until it is approved, and you are emailed either way.
Stop using PayGO
Two ways, and both are requests — customers are holding kits that need tokens, so switching that off is not something to do by accident.
Your devices, token history and bills stay readable either way. Nothing is deleted.
Subscription
How long this arrangement has left, and what happens when it runs out. Issuing stops after the grace period; reading never does, so this bill stays visible to whoever has to pay it.
Bill for a month
Any month, itemised, beside the work that produced it — a charge you cannot trace to your own people's issuing is a charge you have to take on trust. Derived from the counters, so it reads the same however often you ask.
Limits by role
How much of your allowance one person in each role may spend. This is yours to set. It cannot raise your monthly allowance or add a token type — those are on the plan.
Unlocks waiting
Accounts that have reached zero. The balance authorises the unlock — nobody has to judge that — so what is left is to satisfy yourself the money is real. The whole history is here; you should not have to go anywhere else.
Approvals
What has been issued
Every token this business has given out — for which product, by whom, and whether the hardware ever took it. Days are what was granted; a token count alone hides the difference between a week and a year.
By product
Which products the runtime went to.
By person
Who issued it. Every token is attributed — that attribution is what makes an uncapped seat safe to hold.
Tokens
Notifications
What an automatic payment tried to tell a household — a token arriving, a kit settling, or money recorded with nothing to send yet. Never the message itself: it can carry a live token, so only what kind of message it was and whether it went is kept.
Reports
What happened, for any period — always readable here, whatever you're subscribed to receive automatically below.
Reports you receive
Which reports arrive by email or SMS, and how often. A report is always readable above regardless of what's ticked here.
Devices nearing end of runtime
When a device has this many days of power or fewer left, the household gets an SMS warning and commercial/sales/technician staff get an email naming which devices newly need attention. A device is warned once per top-up — paying again resets it, so nobody is warned twice for the same shortfall.
Accounts
One agreement per kit. What was owed, what has been paid, and what it would cost to close it today.
Sell a kit
Opens the agreement at today's price for that product. The figure is frozen the moment you do this — a later price change cannot reach an account that is already open.
Prices
One price per product. How it is paid does not change what it costs — a household earns a discount by settling early, and earns nothing by promising to.
Publish a price
Publishing supersedes the live version and never overwrites it. Accounts already open keep the figure they were sold under.
Around you
Households within walking distance, nearest first — so a day's visits can be planned from where you are standing rather than from a list sorted by name.
Register a household
A name is enough to start. The rest can be filled in
on a second visit.
Register a household
A name is enough to start. The rest can be filled in on a second visit.
Identification, where they are, and a note
Optional. A record says what it is still short
of.
Optional. A record says what it is still short of.
What they asked about, not what they have agreed to buy. The payment decides that, and can differ. Up to five.
Your role can view this record but not change it.
Customer register
Who the households are. A name is enough to start — the rest can be filled in on a second visit, and a record says what it is still short of.
Kits in customers' hands
One row per device in service: who has it, which product it is, what that product sells for, and how much runtime it has been given. This is not a statement of account — nothing here knows what anyone has actually paid.
Load customers from a file
The kits already in customers' hands were recorded offline. Paste that list here rather than typing it. Columns: serial_number, customer_name, location, and phone if you have it — headings are matched loosely, so "Serial Number" and "serial" both work.
From Excel: File → Save As → CSV, then open it in Notepad and paste. A location containing a comma is fine as long as the file is a real CSV.
Or paste the rows
Connections
Payment gateways (apigw), SMS gateways and the mail server PayGO talks to. Adding, changing, rotating or re-enabling one asks for a fresh code from your authenticator app. Keys and passwords are stored encrypted and never shown again; PayGO only calls the domains listed on each connection.
Report
A snapshot across every tenant on the platform — never one business's own report.
Every section below is about this one tenant — clear "Tenant" to go back to the whole platform.
Reports you receive
Whether this snapshot arrives by email or SMS, and how often. Always readable above regardless of what's ticked here.
Tenants
Every business on the platform, what it is on, and what it owes this month.
People at a business
Who can sign in, and as what. Use this when somebody rings to say they cannot get in — the username is here, and an administrator's password can be reset from the row.
End the relationship
Stops this business issuing tokens. Nothing is deleted — every device, token, payment and customer record is kept and stays readable, and the account can be reopened.
Change a plan
Only this seat can. A business that could raise its own allowance would not have one.
Security
The last 24 hours across every business. One failed login is a typo; forty against one account overnight is somebody working through a list.
Recent events
Shared email addresses
Every address on file for more than one account, across every business and the vendor's own seats. Nothing here is changed automatically — decide which account keeps the address, then set the other's from that account's own People screen.
Plan requests
What businesses have asked for. Nothing moves until you decide, and both you and they are emailed either way.
Edit a business
Changes the business you pick. Nothing here creates anything — the form below is for a business that does not exist yet. Blank a field to leave it as it is.
Add a business
The tenant and its first administrator are created together. A tenant nobody can sign into cannot be handed over.
The id appears in API keys and cannot be changed later.
The first period starts today, so a business that has just signed up is not locked on its first day.
Two letters. Households are numbered GL0000001 — the letters are what keep a customer code from being mistaken for a device serial, which is nine digits and nothing else. A business moving off an older system can carry on from the number it reached. Leave the letters empty for GL; the business can open a new run of letters later without touching the codes already given out.
Record a payment
This service does not take money — payment arrives by transfer, mobile money or a settled invoice, and this is writing down that it did. Recording it moves the period forward and unlocks issuing immediately.