ImaraISPDocs
Daily operations

How customers pay

Account numbers, credit and whole plan periods, shared phones, plan changes and the pay link

Most money does not come through a cashier. Subscribers pay your payment providers directly, and ImaraISP works out whose money it is, credits it and renews the service. This page explains the rules it follows, so you can answer "I paid, why am I still offline?" with confidence.

Account numbers

Every customer has an account number, for example CL1043. It is a 2 or 3 letter prefix for your ISP (never the letters O or I, so nobody confuses them with 0 and 1) followed by a number.

Each connection (service) the customer has gets its own connection number: CL1043-1, CL1043-2 and so on.

You see the account number on the customer list and on the customer's record, and you can search for it in any search box.

Account numbers are forgiving. Case, spaces and dashes do not matter:

TypedMeans
cl1043, CL-1043, cl 1043Customer CL1043
CL1043-2, CL1043/2, CL 1043 2Connection 2 of CL1043
CL10432Customer CL10432. It is never guessed to be connection 2 of CL1043

Paying with the account number

With a provider that lets the payer type a reference (a business number, till or bank transfer), a subscriber can pay straight in with no prompt and no cashier. They enter the account number as the reference.

For example, in Kenya with M-Pesa: Paybill 123456, account CL1043.

ImaraISP reads the reference in this order and stops at the first match:

  1. Account or connection number, for example CL1043 or CL1043-2.
  2. Phone number, in your country's local or international form, matched against the phone on the customer record.
  3. Username, ignoring case.

If the payer leaves the reference empty, the payment is matched on the phone number that paid.

A wrong reference is not matched to the payer

If the reference is not empty and matches nobody, ImaraISP does not fall back to the payer's phone. People often pay for a relative, and crediting the payer's own account would be wrong. The payment goes to the Unmatched queue for a cashier instead.

Credit and whole periods

Each customer has one credit balance (a wallet). Every payment in adds credit. Service time is then bought from that credit in whole plan periods only. There is no half a month.

Using a plan priced 1,500 in your currency:

PaymentWhat happensCredit after
800Kept as credit. No time bought800
700 more1,500 is enough for one period. One period bought0
3,000Two periods bought0
2,000One period bought, the rest kept500

Overpayment is never lost. It stays as credit for the next renewal.

The credit history is a ledger. Nothing in it is ever edited or deleted; a correction is a new entry.

Staff see the balance as a Credit or Owed chip in the customer record's header, and every entry on its Wallet tab. Owner and Ops can correct it there with Adjust balance, with a typed reason that goes in the audit log. See Wallet.

Automatic renewal from credit

When a subscription line reaches its expiry and the credit covers the next period, ImaraISP renews it from credit instead of letting it expire. The customer stays online and never notices.

Hotspot lines are not renewed from credit. A hotspot user buys each session.

Owed

A balance can go below zero, for example after a reversal (see below). The customer then owes that amount. Their next payment goes into the same balance, so it covers what is owed before any time can be bought.

Customers with several connections

A payment made with the customer number (CL1043) for a customer who has more than one connection is added to their credit, but nothing is bought, because ImaraISP cannot know which line to renew. The customer gets an SMS: "{amount} added to your credit. Tell us which connection to renew: …" with their connection numbers.

Staff then spend that credit on the right connection with Allocate credit on the customer's Wallet tab. It buys whole periods for the chosen connection.

A payment made with a connection number (CL1043-2) renews that connection directly. Tell customers with several lines to pay with the connection number.

Shared phones

One phone number can be on several customers, for example a parent who pays for two homes.

  • Creating a customer. If the phone is already on another customer, ImaraISP warns you and asks you to confirm "create a separate account". Check you are not creating a duplicate of an existing customer.
  • Paying with a shared phone. A payment whose reference is a phone shared by several customers is not guessed. It is held in Unmatched as ambiguous, and the registered phone gets: "We received {amount}. {phone} is linked to {accounts}. Pay with the account number next time." The SMS always goes to the phone on the customer records, never to a different phone that paid.
  • In the account area. A subscriber who signs in at /my with a shared phone sees an account switcher. See Subscriber account area.

When money lands in Unmatched

Money is never discarded. If ImaraISP cannot safely tie a payment to one customer, it waits in the Unmatched queue on Payments with a reason, and a cashier clicks Match. Matching credits that customer and buys whole periods exactly like any other payment.

ReasonWhat happened
no-matchThe reference matched nobody
ambiguous-phoneThe phone is on several customers
ambiguous-refA phone-shaped reference matches one customer's phone and another customer's username
currency-mismatchThe payment is in a different currency from your ISP's. It is never converted
short-paidA prompt was paid for less than it asked for
charged-after-failedThe provider confirmed a charge on a payment already written off as failed

Changing plan

Staff change a customer's plan now from the customer's record or the Customers list, with Change plan. The dialog shows the quote before anything is saved: the credit for unused time, the new plan's price, and whether it switches now or waits for payment. See Changing plan. ImaraISP works it out like this:

Unused time is credited

The unused part of the current period is added to credit, pro rata, rounded down in your favour. Only paid, active time counts. Grace and expired time is never credited.

If credit covers the new plan, it switches now

A new period starts immediately and the new speed is pushed to the router.

If not, the change waits for money

Nothing changes on the running plan. The change is recorded as pending and applies by itself as soon as enough money arrives. The unused-time credit is worked out again at that moment, so time used while waiting is not credited.

A pending change shows on the customer's Overview tab and can be cancelled there with Cancel change. If the payment that paid for a switch is later reversed, the customer goes back to the old plan.

Subscribers can also change plan themselves in the account area, but only to plans you mark self-serve by ticking Customers can switch to this plan themselves on the plan form. See Self-serve plans.

Every account has a public pay page:

portal.imaraisp.ke/{slug}/pay/{account number}

Here {slug} is your portal's short name. The page shows the account number, the amount due and how to pay with each of your enabled providers: for example a paybill number and the account to enter, and a phone-prompt option where the provider supports one.

  • From an SMS. Reminder texts carry a signed version of the link (it ends in ?t=…). Opened that way the page also shows the customer's first name, plan and expiry.
  • Without the token the page shows only what a payer needs. Anyone paying for a relative can use it.
  • Never shown. The balance and payment history never appear on the pay page.

The amount starts at what is due, but the payer can pay any positive amount. Less than a period becomes credit. One prompt can ask for at most 12 periods. Prompts are rate-limited per account and per phone, so the page cannot be used to flood someone with prompts.

What "amount due" means

The amount due is the next period's price minus the customer's credit, or 0 when credit already covers it. When a plan change is pending, it is the shortfall for that switch instead.

Reminders

The plan expiring and plan expired SMS templates can include the amount due, the account number, your paybill number and the pay link. For example:

Hi {customerName}, your {planName} plan expires in {daysLeft} day(s). Pay {amount_due} with account number {account_no} to stay online. {pay_url}

  • The expiring reminder is skipped when credit already covers the renewal.
  • {pay_url} is filled in only when you have a published portal.

See SMS to edit the wording.

Currency

Each ISP works in one currency. A payment in a different currency lands in Unmatched with the reason currency-mismatch. ImaraISP never converts it; a cashier decides what to do.

Reversals

When a provider reverses a payment, ImaraISP takes the money back out of credit and voids the periods it bought. If that leaves the balance below zero, the customer shows as Owed, and their next payment clears it first. The reversal appears on the customer's Wallet tab as "Payment reversed" and "Purchase voided". If the reversed payment paid for a plan switch, the old plan comes back.

On this page