AWRA OpsHub Search
Sales · Recurring billing

Bill the retainer every month. Exactly once a month.

Set up a schedule once — customer, lines, cadence, start and end — and AWRA raises the invoice on every period, as a draft for review or issued and emailed on its own. Downtime is caught up, a pause is honoured, and a failure waits to be retried rather than quietly skipping a month.

Monthly · started 31 Jan 2026 · every date counted from the start, never from the last runDaily run
1 per periodone invoice per schedule per period, ever — however often the run fires
12 periodsmissed periods caught up per schedule per run, each dated to its own period
4 cadencesweekly, monthly, quarterly and annually, with an optional end date
Every runlogged with the invoice it raised, or the reason it failed
Why a schedule, not a reminder

The invoice nobody remembered to send is the one that never gets paid.

Recurring revenue is the easiest money a business earns and the easiest to lose track of. The retainer is invoiced on the 3rd one month and the 12th the next. Someone is on leave in April and April is never billed. A copied invoice carries last year’s price. None of it is dramatic; all of it is cash you were owed.

A recurring invoice in AWRA is a schedule that raises real invoices — the same invoices your team types, with the same numbering, tax, credit check and eTIMS filing — on dates counted from the day the contract started. You decide once whether each one waits as a draft for a person to look at, or goes straight to the customer.

Retainers

A monthly support, audit or advisory fee, billed on the contract’s day.

Rent and service charge

Quarterly rent and a monthly service charge, each on its own schedule.

Subscriptions

Hosting, licences and storage, priced from the customer’s list each time.

Standing supply

A weekly delivery of the same goods from a chosen warehouse.

Dates that do not drift

A contract that starts on the 31st is billed on the 31st.

Most tools work out the next date from the last one, so a single short month pulls every invoice after it forward for good. AWRA counts every period from the start date instead.

Chained from the last run

February cuts the date to the 28th, and it never recovers
31Jan
28Feb
28Mar
28Apr
28May

Counted from the start — how AWRA does it

Each period is the start date plus whole months, held to the month’s last day
31Jan
28Feb
31Mar
30Apr
31May

The same rule holds for every cadence: weekly is the start date plus whole weeks, quarterly plus whole quarters, and an annual contract that starts on 29 February is billed on 28 February in the years between. Each invoice is dated to its period — not to the day the run happened to process it.

Three ways out of the door

Review every one, or let the schedule finish the job.

Mode 1

Draft for review

The invoice is raised as a draft and waits in your invoice list. A person checks it and issues it — the right setting for usage that varies or for a contract still settling down.

Issue automaticallyEmail automatically
Mode 2

Issued automatically

The invoice is issued the moment it is raised. Issue is the filing point, so where eTIMS is switched on it files then, exactly as a typed invoice would; an invoice with no stock lines books its revenue at the same moment.

Issue automaticallyEmail automatically
Mode 3

Issued and emailed

Issued, then emailed to the customer’s address on file with the invoice PDF attached and the due date in the message. Emailing is only offered with automatic issue — a draft is not final, so it is never sent.

Issue automaticallyEmail automatically
A credit limit still applies to a schedule. The invoice is built by the same code as a typed one, so if it would take the customer past their credit limit it is created on credit hold — and an invoice on hold is neither issued nor emailed until someone releases it.
What happens every morning

The daily run, step by step.

One scheduled job a day finds every active schedule that is due and works through its periods in order. Pressing “Raise now” on a schedule runs the same steps for its next period.

Find what is due

Every active schedule whose next date is today or earlier. Paused and ended schedules are left alone.

Check the end date

If the next period falls after the schedule’s end date, the schedule is marked ended and nothing more is raised from it.

Claim the period

A record for this schedule and this period is written in the same transaction as the invoice. A period can hold only one, so two runs at once, or a re-run after a crash, cannot produce a second invoice for it.

Build the invoice

Dated to the period, due the chosen number of days later, from the schedule’s lines. A line with a fixed price keeps it; a line left blank is priced from the customer’s price list as it stands that day. Tax is worked out on the day from your settings and each item’s treatment, and the credit check runs.

Move the schedule on

The last-run date is recorded and the next date is counted from the start date. If the scheduler was down for three months, the run raises all three, each with its own date — up to twelve per schedule per run.

Issue and send — after the invoice is safe

Issuing and emailing happen outside the transaction, so a mail-server hiccup cannot undo an invoice that has already been numbered and recorded.

If anything goes wrong

The period is recorded as failed with the error, the schedule does not move, and the next daily run tries the same period again. Later periods wait behind it, so they are still raised in order — a month is never skipped silently.

Two kinds of gap in the calendar

A pause is a decision. Downtime is an accident. They are handled differently.

You paused the schedule

Paused in May, resumed on 10 June
Feb
Mar
Apr
May
Jun
Jul

Periods that fall inside a pause are skipped, not billed. On resume, the schedule picks up at its next date from today — here, 30 June — and May is never invoiced. A client who stopped the service for a month is not sent a catch-up bill.

The scheduler was down

No run for three days around 31 May
Feb
Mar
Apr
May
Jun
Jul

The schedule was active, so the customer owes May. The first run after recovery raises it, dated 31 May with its due date counted from then — the books show it in the right month, not the week it was processed.

Run history · Managed IT retainerAfter the 31 Aug run · the last 50 runs, on the schedule’s own page
PeriodResultInvoiceTotal
31 Aug 2026Failed
Lost connection to the database during the run — retried on the next daily run.
——
31 Jul 2026RaisedINV-2334115,304.00
30 Jun 2026RaisedINV-2291114,260.00
30 Apr 2026RaisedINV-2207114,260.00
31 Mar 2026RaisedINV-2163114,260.00
28 Feb 2026RaisedINV-2118114,260.00
Worked example

One schedule, two price-list years.

An IT provider bills a clinic group a fixed retainer plus cloud backup by the terabyte. The retainer price is typed on the schedule; the backup line is left blank so it follows the clinic’s price list. Figures in KES, VAT at 16%, due in 14 days.

31 March 2026 — Healthcare list at KES 4,500 a terabyte

Invoice dated 31 Mar, due 14 Apr
LineQtyUnitNet
Managed IT retainer Fixed185,000.0085,000.00
Cloud backup, per TB From list34,500.0013,500.00
Net98,500.00
VAT 16%15,760.00
Total114,260.00

31 July 2026 — the list moved to KES 4,800 on 1 July

Nobody edited the schedule
LineQtyUnitNet
Managed IT retainer Fixed185,000.0085,000.00
Cloud backup, per TB From list34,800.0014,400.00
Net99,400.00
VAT 16%15,904.00
Total115,304.00

The fixed retainer did not move; the blank line followed the list. Invoices raised before 1 July keep the price they were raised at — a schedule changes what comes next, never what has already gone out.

What the schedule carries

Decided once at setup, or worked out on each invoice date.

On the invoiceComes fromWhen it is decided
CustomerThe schedule — one customer per schedule.At setup
LinesA stock item or a typed service description, a quantity and an optional whole-line discount, up to 200 lines.At setup
Unit priceTyped on the line, or left blank to be priced from the customer’s price list.Typed: at setup Blank: each date
TaxYour tax settings on that day and each item’s own tax treatment.Each invoice date
Invoice dateThe period’s date, even when it is raised later.Each period
Due dateThe period’s date plus the schedule’s days until due — 14 unless you set 0 to 365.Each period
Invoice numberYour normal invoice sequence, so schedule-raised and typed invoices share one series.When raised
Warehouse and shelfThe schedule, for stock lines. A shelf from another warehouse is refused when you save.At setup
NotesThe schedule’s notes, copied onto every invoice.At setup

Editing a schedule changes future invoices only. Until it has raised its first invoice its dates can be moved freely; after that, changing the start date or the cadence recounts the next date from the last one raised.

What you get

Everything a schedule needs, and the guard rails around it.

Raise now

Bill the next period today — for a customer who asks early — dated to its period. The schedule then moves on to the one after.

Pause and resume

Stop billing without losing the setup. Periods inside the pause are skipped, and resuming picks up at the next date from today.

End dates, or end now

A schedule with an end date stops itself after its last period. Ending one by hand is final, and asks for confirmation first.

Real invoices

Built by the same code as a typed invoice: numbering, tax, the credit check, eTIMS at issue and the workflow event when it is created.

Run history

Every period, the invoice it raised, or the error it hit — the last fifty runs on the schedule’s own page.

Price lists that flow through

Leave a price blank and the line is priced from the customer’s list on each invoice date, so a list change reaches the next invoice on its own.

Goods as well as services

Stock lines are raised from a chosen warehouse and shelf, the same as an invoice typed at the counter.

Its own permission

Creating, editing, pausing and raising from a schedule need their own permission; seeing schedules follows invoice access.

On mobile

List, open, create and edit schedules, pause, resume or end them, and raise the next invoice from the mobile app.

Recurring invoices — what is real

What AWRA OpsHub does today

  • Weekly, monthly, quarterly and annual schedules with a start date, an optional end date and a days-until-due setting.
  • Periods counted from the start date, held to the last day of a short month and returning to the original day afterwards.
  • Three delivery modes — draft for review, issued automatically, or issued and emailed with the PDF to the customer’s address on file.
  • One invoice per schedule per period, guaranteed by a record written in the same transaction as the invoice.
  • Catch-up after downtime, up to twelve periods per schedule per run, each dated to its own period.
  • Pauses that skip the periods inside them, and an end that is final.
  • Failure recorded with its error, the schedule left where it was and the period retried on the next daily run.
  • Lines priced on each invoice date from the customer’s price list when no price is typed.
  • The credit check, tax, numbering and eTIMS filing of a typed invoice, because it is built by the same code.
  • Raise now, run history on the schedule page, and the whole schedule on the mobile API.

More we can add to your workspace

  • An alert to a named person when a period fails, or when an automatic email had no valid address to go to.
  • Usage-based lines, taking each period’s quantity from a meter reading, a timesheet or a stock count.
  • Proration for a contract that starts, upgrades or ends part-way through a period.
  • More intervals — every two months, twice a year, or a fixed day of the month independent of the start date.
  • An annual price uplift written into the schedule, such as 5% on each contract anniversary.
  • A reminder to the customer a set number of days before an invoice is raised.
  • Automatic collection on the due date from a saved card or a mobile-money mandate.
  • One schedule for a group of customers, such as every occupant of a building on the same service charge.

Where we point you to a specialist

  • We will not bill a paused period late. A pause is a decision to stop billing, and a customer who stopped the service for a month should not receive that month’s invoice when it restarts.
  • We will not email a draft. Only an issued invoice is final, so automatic email is only offered with automatic issue.
  • We will not move a failed period aside to keep the schedule on time. It is retried until it is raised, so the invoices go out in order and none is lost.

Failure alerts and usage-based lines are the two items in that middle column that most change how far you can trust a schedule to run unattended, and both build on the run history the module already keeps. Tell us what you bill on a cycle today and we will come back with a written spec, a timeline and a price.

Recurring invoices

Frequently asked questions

What cadences can a recurring invoice run on?
Weekly, monthly, quarterly or annually, from a start date you choose and until an optional end date. Every period is counted from the start date, so a contract that starts on the 31st is billed on the last day of February and then on the 31st again, rather than drifting to the 28th for good.
Are recurring invoices sent automatically?
You choose per schedule. An invoice can be raised as a draft for someone to review and issue, issued automatically, or issued and emailed to the customer’s address on file with the PDF attached. Automatic email is only available with automatic issue, because a draft is not final.
Can a schedule ever produce two invoices for the same period?
No. A record for the schedule and the period is written in the same transaction as the invoice, and a period can hold only one. Two runs at the same moment, or a re-run after a crash, find the period already raised and move on.
What happens if the system was down on a billing date?
The first run afterwards raises the missed periods, up to twelve per schedule per run, and dates each invoice to its own period rather than to the day it was processed — so the books show it in the right month.
What happens to billing while a schedule is paused?
Nothing is raised, and the periods that fall inside the pause are skipped rather than billed late. When you resume, the schedule picks up at its next date from today. Ending a schedule is final; it cannot be restarted.
What if a recurring invoice fails to generate?
The period is recorded as failed with the error message, shown in the run history on the schedule’s page, and the schedule does not move on. The next daily run tries the same period again, and later periods wait behind it so nothing is skipped and the invoices still go out in order.
Do price changes reach recurring invoices?
If you leave a line’s price blank, yes: it is priced from the customer’s price list as it stands on each invoice date, so a list change reaches the next invoice on its own. A price typed on the line stays fixed until you edit the schedule. Invoices already raised never change.
Does a recurring invoice respect the customer’s credit limit?
Yes. It is built by the same code as a typed invoice, so if it would take the customer past their credit limit it is created on credit hold, and an invoice on hold is not issued or emailed until someone releases it. It also gets your normal invoice number, tax and, where eTIMS is switched on, filing at issue.

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center