AWRA OpsHub Search
Sales · Quote to cash

The price they accepted is the price they’re billed.

Write a quote priced from the customer’s own price list, sign it off, send it with a link they can accept from their phone, and turn it into a sales order that holds the stock and invoices line by line. Nothing is retyped and nothing is repriced on the way.

Quote approval · Online accept or decline · Sales orders with stock reservation · Part invoicing · Quote, order and proforma PDFs · Web and mobile

One resolverprices quotes, orders, invoices, recurring invoices and the till
Zero repricesan accepted line reaches the invoice at the price agreed
Three PDFsquotation, order confirmation and proforma invoice
Line by lineinvoice an order in as many parts as it ships in
Three documents, one set of numbers

A sale is a promise made three times. Each one should agree with the last.

The quote names a price. The order commits the stock. The invoice asks for the money. In most businesses those are three documents typed by three people, and the figure drifts a little at every hand-off — a price list updated between the quote and the invoice, a discount forgotten, a quantity that shipped short and billed in full.

In AWRA a line is priced and taxed once, when the quote is saved, and then copied forward. The order carries the quote’s lines exactly, and the invoice carries the order’s. If the price list moves after your customer said yes, their invoice still says what they agreed to.

Quote

An offer with a valid-until date. Approved where your workspace requires it, emailed as a PDF with a link the customer can answer, and marked expired automatically when its date passes.

Draft → approved → sent → accepted

Sales order

The commitment. Confirming it reserves what is on the shelf at the order’s warehouse and backorders the rest; it carries the customer’s own reference and an expected date.

Draft → confirmed → part invoiced → invoiced

Invoice

Raised from the order in one go or in parts, with each line’s remaining quantity tracked. It behaves exactly like a typed invoice: numbering, credit hold, eTIMS at issue and the workflow events.

Raised from the order or straight from the quote
The life of a quote

Signed off before it leaves. Answered, or expired, when it returns.

Quote approval is on by default in a new workspace and can be switched off in sales settings by an organization where the person writing a quote is trusted to send it.

DraftLines priced from the customer’s list. Editable; deletable while still a draft.
ApprovedSigned off by someone holding the Approve quotes permission. The approver and time are kept.
SentEmailed with the PDF attached and a signed link to view, accept or decline.
AcceptedBy the customer online, in the portal, or recorded by staff after a call.
DeclinedWith the customer’s name and, if they give one, a reason.
ExpiredThe valid-until date passed unanswered; its link stops working.
ConvertedInto a sales order, or straight into an invoice. Converted once only.
An approval covers the figures that were approved. Edit an approved quote and it goes back to draft. Where approval is required, editing a sent quote also takes it off the customer’s link until it is approved and sent again.
Nothing skips the gate. A quote awaiting approval cannot be emailed, cannot have an answer recorded against it and cannot be converted — on the web or from the mobile app.
Expiry runs every night. Draft, approved and sent quotes past their valid-until date are marked expired, the link the customer was sent closes with it, and a new offer is a new quote.
What your customer sees

They answer from the email. You hear about it straight away.

  • No login to open it. The email carries the quote PDF and a signed link. The link expires with the quote — at the end of its valid-until day, or after 30 days for a quote with no end date — so a forwarded email stops working when the offer does.
  • An answer has a name on it. The customer types their name to accept or decline, and may give a reason for declining. Both are kept on the quote and in the audit log.
  • The person who wrote it is told. An acceptance or a decline lands in the author’s notifications with a link to the quote, ready to convert.
  • Phone answers count too. Staff can record an acceptance given by phone or in person; customers with portal access can answer from their portal.
  • Answered quotes can still be sent. A copy of an accepted, declined or converted quote can be emailed again to view. An expired one cannot: its offer lapsed, and its link stays closed.
Price lists

Every customer can have their own price. The system works out which one applies.

A price list is a named set of selling prices — a contractor rate, a distributor rate, a hospital tender, a USD export list. Give a customer a list and every quote, order and invoice you raise for them is priced from it, without anyone remembering to.

1

The customer’s own list

If the customer is assigned a list and it has a price for this item at this quantity, that price is used.

Contractors 2026 → KES 940 a sheet at 100+
2

Your default list

Otherwise the organization’s default list is tried. One list can be the default at a time; marking another moves it.

Nairobi trade → 10% off the item price
3

The item’s selling price

If neither list has a row that applies, the item’s own selling price and its own tax-inclusive setting are used.

Ridge cap → KES 500 on the item
ActiveAn inactive list is skipped, so you can retire a rate without deleting it.
In dateA list with valid-from and valid-to dates applies only between them, checked on the document’s date.
Base currencyEvery list prices in your organization’s base currency, the currency every sales document is raised in.
A row that fitsA row applies from its minimum quantity up. The highest minimum not above the quantity wins.

Contractors 2026 — the rows for one item

Roofing sheet, 30 gauge · item price KES 1,150 · list in KES, 1 Jan – 31 Dec 2026
From quantityRuleUnit price
1Fixed price980.00
100Fixed price — quantity break940.00
500Fixed price — quantity break905.00
  1. Kilele Hardware is on Contractors 2026, which is active, in date and in KES.
  2. They are buying 120. The rows from 1 and from 100 qualify; the row from 500 does not.
  3. The highest qualifying minimum is 100, so the line is priced at KES 940.

A percentage row instead of a price

Ridge cap · item price KES 500 · Kilele’s list has no row for it
SourceRuleUnit price
Contractors 2026No row for this item—
Nairobi trade (default)10% below the item price450.00
Item selling priceNot reached500.00
  1. A row is either a fixed price or a percentage on the item’s selling price — from 100% off to 1,000% up, never both.
  2. A percentage row follows the item: change the selling price and the list price moves with it.
  3. The result is rounded to the currency’s own precision — whole units for a zero-decimal currency such as the Ugandan shilling.

What a list carries

Name and notesWhat the rate is and who agreed it.
CurrencyAlways your base currency, the same as every sales document.
Valid from / toOptional. A tender rate that ends on 30 June stops pricing on 1 July.
StatusActive or inactive.
DefaultPrices every customer who has no list of their own.
Tax treatmentFollow each item’s setting, or treat every price on the list as tax-inclusive, or as tax-exclusive.

Who is on it, and what happens later

  • Assign customers in bulk — up to 500 at a time from the list’s own page — or remove one. Each customer has one list.
  • Saved documents keep their price. Changing a list changes what the next quote, order or invoice gets, never one already written.
  • A typed price is used as typed. Leave the price blank and the list decides; enter one and the line keeps it.
  • The mobile app shows the price first. Pick a customer, an item and a quantity, and the app asks the same resolver what that customer would pay before the document is saved.
Quotes Sales orders Typed invoices Recurring invoices The point of sale Mobile price lookup
Worked example

One roofing job, from quote to the second invoice.

A building supplier quotes a contractor for a roof. Eighty sheets are on the shelf in Nairobi; forty are on a lorry from the factory. Figures in KES, VAT at 16% on top.

QUO-0142 — accepted by Jane Wanjiru, Kilele Hardware

Converted to SO-0088. The order carries these lines exactly.
LineQtyUnitDiscountNetPriced by
Roofing sheet, 30 gauge120940.00—112,800.00Customer list, break at 100
Ridge cap40450.00—18,000.00Default list, −10%
Delivery and installation125,000.002,500.0022,500.00Typed service line
Net153,300.00
VAT 16%24,528.00
Total177,828.00

Confirming SO-0088

Stock is promised at the order’s warehouse the moment it is confirmed.
Roofing sheets — 120 ordered 80 reserved from the shelf · 40 backordered, filled oldest-first when stock arrives
Ridge caps — 40 ordered 40 reserved — no other sale or transfer can take them
ReservedBackordered
Invoice 1 · this week108,112.00

80 sheets and 40 caps: 93,200 net + 14,912 VAT. The order is now part invoiced; 40 sheets and the installation remain.

Invoice 2 · when the lorry lands69,716.00

40 sheets and the installation, its 2,500 discount carried whole: 60,100 net + 9,616 VAT. The order is now fully invoiced.

The two invoices add to the quote to the shilling — 108,112 + 69,716 = 177,828 — because both were cut from the same lines. Try to invoice a 41st sheet and the order refuses, naming how many are left. A line invoiced in part carries its discount in proportion to the quantity billed.

Proforma or tax invoice

The customer’s accounts team wants an invoice. You have not supplied anything yet.

A proforma is a print of the quote or the order, headed as a proforma invoice and marked “not a tax invoice”. It exists so a customer can raise payment in advance or get internal approval — without you declaring a sale that has not happened.

Quotation PDFProforma invoice PDFOrder confirmation PDFTax invoice
Printed fromA quoteA quote or an orderAn orderRaised from the order or the quote
Number on itQUO-0142PF-QUO-0142 / PF-SO-0088SO-0088Its own invoice number
Takes an invoice number—Never—Yes
Filed to eTIMS—Never—At issue, where eTIMS is on
Carries the accept linkYes, once sent———
Dates printedDate, valid untilAs the source documentDate, expected date, customer’s referenceInvoice date, due date
Available on mobileYesYesYesYes
Two roads from a quote

Through an order when it ships over time. Straight to the invoice when it does not.

Quote → sales order → invoices

Convert to an order

  • Pick the warehouse and shelf to fulfil from, and record the customer’s purchase-order reference — it is printed on the confirmation and carried onto every invoice.
  • Confirming reserves what is free and backorders the shortfall, so stock you have promised cannot be sold at the till.
  • Invoice line by line as goods leave. A line that lost its reservation can be reserved again from the order.
  • Cancel before invoicing and the reservations are released. Once invoiced, the order stands — cancel or credit the invoice instead.
Quote → invoice

Invoice the quote directly

  • For a job done in one go: the quote’s lines become the invoice’s lines, at the accepted price.
  • Stock is checked first — what is free at the chosen warehouse, after other orders’ reservations. If anything is short, the invoice is refused, line by line, with what was wanted and what is available.
  • The refusal points you to an order instead, which reserves what is there and backorders the rest.
  • Service lines with no stock item are billed and never issued from stock.
What you get

The details that stop a quote turning into an argument.

Tax decided per line

An item carries its own tax treatment; a service line is standard-rated unless marked exempt, and a tax-exempt customer is quoted without tax. Tax-inclusive prices have their tax extracted so the net never carries it.

Whole-line discounts

A discount is an amount off the line, capped at the line’s value so a line can never go negative, and shown as a separate total on every document.

Separate permissions

Viewing, creating, editing, approving and deleting quotes are separate permissions, and managing orders and raising invoices are separate again — on the web and the mobile API alike.

Audit trail

Creation, approval, acceptance and decline are written to the audit log, with the name the customer gave.

Recoverable drafts

Only a draft quote can be deleted, and a deleted quote goes to the trash, where it can be restored with its lines.

Own number sequences

Quotes and orders are numbered in their own sequences per organization, and the proforma borrows its source’s number rather than taking an invoice number.

Warehouse and shelf

An order is fulfilled from a chosen warehouse and, optionally, a shelf in it. A shelf from another warehouse is refused, and a user pinned to one warehouse stays pinned.

The whole flow on mobile

Create, edit, approve, send, record an answer, convert, confirm, reserve, cancel and invoice from the mobile app, and open any of the three PDFs there.

Documents linked both ways

An order knows the quote it came from and every invoice raised from it; an invoice knows its order and its quote.

Quotes, sales orders and price lists — what is real

What AWRA OpsHub does today

  • Customer quotes with a valid-until date, priced and taxed once when saved, and copied forward unchanged to the order and the invoice.
  • Quote approval, on by default and switchable in sales settings: a draft is signed off by someone with the Approve quotes permission before it can be sent, answered or converted, and editing an approved quote returns it to draft.
  • Quote email with the PDF attached and a signed link that expires with the quote, from which the customer views, accepts or declines under their own name.
  • Answers from three places — the emailed link, the customer portal, or staff recording a phone call — with the author notified in the app.
  • Nightly expiry of quotes past their valid-until date.
  • Sales orders with a warehouse, an optional shelf, an expected date and the customer’s reference, confirmed to reserve stock and backorder the shortfall.
  • Part invoicing by line quantity, with the remaining quantity tracked per line and an over-invoice refused.
  • Direct quote-to-invoice conversion, refused when the stock is short at the chosen warehouse.
  • Quotation, order confirmation and proforma PDFs, the proforma never numbered as an invoice and never filed to eTIMS.
  • Price lists in your base currency, with validity dates, an active status, one default, a tax-inclusive setting, fixed or percentage rows and quantity breaks, resolved in one place for quotes, orders, invoices, recurring invoices and the till.
  • The whole flow on the mobile API, including a price lookup before a document is saved.

More we can add to your workspace

  • A credit check at order confirmation, so an order that would take a customer over their limit is held before stock is reserved rather than when it is invoiced.
  • Delivery notes for sales orders, printed per shipment with the quantities that left and a signature on receipt.
  • Pick lists from sales orders, grouping confirmed orders by warehouse and walking order for the store team.
  • Discount authority by role, so a discount or a typed price beyond a person’s limit is routed for approval rather than saved.
  • Approval by value, sending a quote above a set amount to a second approver, and a rule that the author of a quote cannot approve it.
  • Numbered quote revisions, keeping each version a customer was sent instead of editing one quote in place.
  • Quotes in a customer’s own currency, priced from a list in that currency, alongside your base-currency documents.
  • A drawn or typed e-signature captured on acceptance, printed on the order confirmation.

Where we point you to a specialist

  • We will not file a proforma to eTIMS. Nothing has been supplied at proforma stage, and filing then is how a customer who never pays leaves you with output VAT declared on a sale that did not happen.
  • We will not reprice an accepted quote on its way to the invoice. If your list moves after the customer said yes, the invoice says what they agreed. A new price is a new quote.
  • We will not invoice stock straight from a quote that is not on the shelf. The order exists to promise what is there and backorder the rest; skipping it would bill goods you cannot hand over.

A credit check at order confirmation and discount authority by role are the two items in that middle column that most change how a sales team works day to day, and both sit on rules this module already enforces. Tell us how your approvals and limits work today and we will come back with a written spec, a timeline and a price.

Quotes, orders and price lists

Frequently asked questions

How does a quote become an invoice?
Two ways. Convert an accepted quote into a sales order, confirm the order to reserve stock, then invoice it in one go or in parts as goods leave. Or, for a job done in one go, invoice the quote directly. Either way the quote’s lines are copied, so the invoice carries the exact prices, discounts and tax the customer accepted. A quote can be converted once.
What does quote approval do?
When it is switched on — the default for a new workspace — a draft quote has to be approved by someone holding the Approve quotes permission before it can be emailed, have an answer recorded or be converted. The approver and the time are kept. Editing an approved quote returns it to draft so the approval always covers the figures the customer sees. An organization can switch approval off in sales settings.
Can my customer accept a quote online?
Yes. The quote email carries the PDF and a signed link that opens the quote with no login. The customer types their name and accepts or declines, optionally with a reason. The link expires with the quote — at the end of its valid-until day, or 30 days after sending if it has no end date. Customers with portal access can also answer from the portal, and staff can record an answer given by phone.
What is a proforma invoice in AWRA?
A print of a quote or a sales order headed as a proforma invoice and marked “not a tax invoice”, numbered from its source document with a PF prefix. It is for a customer who needs to pay in advance or approve spend internally. It never takes an invoice number and is never filed to eTIMS, because nothing has been supplied yet.
How is a price chosen when there are several price lists?
The customer’s own list is tried first, then your organization’s default list, then the item’s selling price. A list is only used while it is active and inside its validity dates, and it prices in your base currency. Within a list, the row with the highest minimum quantity not above the quantity being bought wins, which is how quantity breaks work. A row is either a fixed price or a percentage on the item’s selling price.
If I change a price list, do existing quotes change?
No. A price is decided when a document is saved and then stays on it, so an open quote, a confirmed order and the invoices raised from it all keep the price that was quoted. The change applies to the next document you write — and to recurring invoice lines left without a fixed price, which are priced on each invoice date.
What happens to stock when an order is confirmed?
Each stock line is reserved at the order’s warehouse, as much as is free; the rest is backordered and filled oldest-first as stock arrives. Reserved stock cannot be taken by the till, another invoice, a transfer or a manual check-out. Cancelling the order before it is invoiced releases what it was holding.
Can I invoice only part of a sales order?
Yes. Choose a quantity per line and only that much is invoiced; the order tracks what remains on each line and moves to part invoiced, then invoiced when nothing is left. An attempt to invoice more than remains is refused with the quantity that is left. A part-invoiced line carries its discount in proportion to the quantity billed.

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