On this page
Procurement is how the business buys: a department asks, a manager approves, suppliers quote, an order goes out, the goods are received and checked, the supplier’s invoice is matched against the order and the receipt, and the supplier is paid. Every step has its document, its number, its person and its time:
- A purchase requisition (
PR-…) — someone needs to buy. - A manager approves it (and may trim quantities).
- Either a request for quotation (
RFQ-…) to several suppliers, then an award; or a purchase order (PO-…) to one supplier at once. - The order is approved — at once below the limit (USh 2,000,000 by default), by a manager above it — and sent to the supplier.
- The goods arrive: a goods receipt (
GRN-…) records what came, what was rejected or damaged, the batch, the expiry and the cost. Only received goods enter stock. - The supplier’s invoice (
SINV-…) is matched against the order and the receipt — the three-way match. A difference waits for approval. - Accounts payable shows what is owed and how old it is; a
payment (
SPAY-…) settles invoices. - Rejected or faulty goods go back on a supplier return (
SRET-…) for a credit note, replacement goods or a refund.
Open Procurement from the sidebar (/procurement). The dashboard shows
what is Awaiting approval, the Open orders and their value, the
RFQs open, Accounts payable, and three lists: Orders awaiting
approval, Overdue deliveries and Invoices with variances. The tiles
under them open each part.
In the demo, Peter is the procurement officer, Moses the branch manager who approves, Isaac the storekeeper who receives, and Andrew the accountant who pays. Kampala Grain Millers sells the dry goods.
Who can do what
| Task | Permission | Usually |
|---|---|---|
| See requisitions, orders, receipts, returns, suppliers | procurement.view |
procurement officer, storekeeper, chef, managers, accountant |
| Raise requisitions and purchase orders | procurement.create |
procurement officer, chef, managers |
| Approve requisitions, orders above the limit, returns | procurement.approve |
branch manager, store manager, accountant, owner |
| Request quotations, record and award them | procurement.rfq |
procurement officer, branch manager |
| Send orders, record acknowledgements, close backorders short | procurement.order |
procurement officer, branch manager |
| Receive goods | inventory.receive |
storekeeper, store manager, managers |
| Record supplier invoices, run the match, approve variances | procurement.invoice |
procurement officer, accountant |
| Pay suppliers, apply credit notes, void payments | procurement.pay |
accountant, owner |
| Raise, ship and resolve returns | procurement.returns |
procurement officer, store manager, managers |
Suppliers themselves — their contacts, catalogue, prices and performance — are in Suppliers. Moving stock between your own stores is a store requisition (see Requisitions).
Raise a purchase requisition
Purpose
Ask, in writing, for something to be bought — with how much, for which branch and department, by when and at about what price — so a manager can approve the spend before anyone orders.
Role / permission required
Procurement officer, chef or manager — anyone with procurement.create.
Prerequisites
- The items exist as ingredients (see Add an ingredient).
Steps
- Open Procurement, tap Requisitions, then New requisition.
- Type a Title (1): Cooking oil top-up.
- Choose the Branch, the Department (2) (Kitchen) and the Priority.
- Type the Reason and the Needed by date.
- Under Items (estimated unit price) choose the first Ingredient and type the Qty (3): cooking oil, 40. The Unit price (UGX) (4) fills with the standard cost (9,000); change it if you know better.
- Tap Add line for rice, 50 kg at 4,200.
- Tap Submit for approval (5). (Save draft keeps it to finish later.)
Expected result
The requisition opens with its number and Awaiting approval (1): cooking oil 40 L at USh 9,000 (360,000) and rice 50 kg at USh 4,200 (210,000), Estimated total USh 570,000 (2). The Timeline (3) shows Raised and Submitted. Those who approve are notified.
Screenshot
Common mistakes
- Leaving the estimate at zero. The approver judges the spend from it; a zero line looks free.
- One requisition per item. Put everything for the same need on one requisition; it can be split between suppliers later.
Troubleshooting
- “Add at least one line with a quantity.” A line has no ingredient or no quantity.
- The approver cannot approve it. Nobody may approve their own
requisition (unless they hold
procurement.manage); ask another manager.
Ask suppliers for quotes
Purpose
Get prices from several suppliers for the same list, compare them in one currency, and give each line to the cheapest valid quote.
Role / permission required
Procurement officer or manager (procurement.rfq).
Prerequisites
- An Approved purchase requisition (see Raise a purchase requisition) — or tap New RFQ on the RFQ list to start without one.
- The suppliers exist (see Add a supplier).
Steps
- Open the approved requisition and tap Request quotations.
- Check the Title, set the Quote deadline (1) and tick the Suppliers to invite (2): Kampala Grain Millers and Fresh Farm Supplies.
- Tap Create RFQ (3). The RFQ opens as a draft.
- Tap Send to suppliers. The request is e-mailed to each supplier’s primary contact and the status becomes Sent — awaiting quotes (1).
- When a supplier answers, tap Quote next to its name (3) — or Record quotation (2) and choose the Supplier.
- In Record a quotation check the Currency (2), type the Supplier reference, Valid until (3), Lead (days) and Terms (days), and a price per line (4): rice 4,100, cooking oil 9,200. Tap Save quotation (5).
- Record the other supplier’s quote the same way.
- Read the Comparison: every price in shillings, the lowest per line highlighted (1, 2), and the Total per supplier (3).
- Tap Award (4). The lowest valid supplier is chosen for each line (2, 3); change a line if another supplier is better for a reason. Choose Deliver to (1).
- Tap Award (4).
Expected result
The comparison shows rice cheapest at USh 4,100 from Kampala Grain Millers and cooking oil at USh 8,800 from Fresh Farm Supplies; Fresh Farm’s quote is the cheapest complete one (USh 569,500 against 573,000). After the award the RFQ reads Awarded and the Purchase orders card lists one draft order per supplier — Kampala Grain Millers for the rice, Fresh Farm Supplies for the oil. Each order then goes through approval and sending (see Create and send a purchase order).
Screenshot
Common mistakes
- Comparing quotes that have expired. An expired quote is struck through and cannot be awarded. Ask the supplier to confirm and record it again.
- Recording a quote in the wrong currency. Check Currency — a supplier in Dubai quotes in USD; the comparison converts with the rate.
Troubleshooting
- “The deadline (…) has passed.” A quote after the deadline needs
procurement.manage; ask a senior manager, or issue a new RFQ. - “Enter a price for at least one line.” Type the prices the supplier gave.
- How do I type a dollar price? As it is written, with the cents: 1.02 for $1.02. Shilling prices have no decimals.
- “No rate on file for this currency”. Type the Rate to UGX of the day in the quote dialog.
Create and send a purchase order
Purpose
Order from one supplier at agreed prices, get the order approved when it is large, and send the supplier the order document by e-mail.
Role / permission required
Creating: procurement officer, chef or manager (procurement.create).
Sending: procurement officer or manager (procurement.order).
Prerequisites
- The supplier exists and is not on hold or blacklisted (see Add a supplier).
Steps
- Open Procurement → Purchase orders and tap New order.
- Choose the Supplier (1): Kampala Grain Millers (UGX), and where to Deliver to (2): Central Warehouse — Industrial Area.
- Check the Branch, and set the Expected delivery date and, if you have one, the Supplier reference.
- Leave Submit for approval now (3) ticked.
- Add the lines: Ingredient, Qty and Unit price (UGX) (4) — rice 10 kg at 4,200, sugar 10 kg at 4,500. Type Notes to supplier if needed.
- Tap Create & submit (5).
- On the order, tap Send to supplier (2). (Print (3) opens the order document.)
- Leave E-mail to (1) empty to use the supplier’s primary contact, or type another address. Tap Send (2).
Expected result
The order opens as Approved (1): at USh 87,000 it is under the approval limit, so it needs no manager. After Send the status is Sent to supplier and the Timeline shows Sent with the e-mail address (2). The document and the e-mail are made in the background; the prices go into the supplier’s price history. The storekeeper can now receive the goods on this order.
Screenshot
Common mistakes
- Ordering in the wrong unit. Choose the unit on the line if the supplier sells by the sack or crate; the price is per that unit.
- Unticking Submit for approval now. The order stays a draft; nobody is asked to approve it. Open it and tap Submit for approval.
Troubleshooting
- The order says Awaiting approval. It is above the limit (USh 2,000,000 by default). A manager approves it (see Approve a purchase order).
- “Kampala Grain Millers is blacklisted.” The supplier cannot be ordered from; choose another.
- “Submit the order first.” A draft cannot be sent; tap Submit for approval.
- The supplier did not get the e-mail. The e-mail is sent by the background workers; if they are stopped it waits in the queue. Check the supplier’s primary contact, and ask the administrator to check the jobs (see Read the Background jobs screen, in the Help Center inside JupitaPos).
Approve a purchase order
Purpose
Make sure a large order is agreed by someone responsible before the supplier gets it.
Role / permission required
Branch manager, store manager, accountant or owner — anyone with
procurement.approve.
Prerequisites
- An order is Awaiting approval: above the limit and raised by someone who may not approve it.
Steps
- Open Procurement. The Awaiting approval tile (1) counts what waits; Orders awaiting approval lists the orders (2).
- Tap the order.
- Read the lines, the total and who raised it.
- Tap Approve. The dialog shows the total (1).
- Type a Note (2): Budgeted for October.
- Tap Approve (3). (To refuse, tap Reject and type why: the order goes back to draft.)
On a phone the steps are the same: scroll down to Orders awaiting approval and tap the order.
Expected result
The order reads Approved, with Decision: Budgeted for October and Moses Manager in the timeline. The order for USh 2,160,000 (rice 300 kg and wheat flour 200 kg from Kampala Grain Millers) can now be sent by the procurement officer.
Screenshot
Common mistakes
- Approving without reading the lines. Check the quantities and prices against the requisition or the quotes (the order’s Details link to them).
Troubleshooting
- “A reason is required to reject.” Type the reason in Note.
- The Approve button is missing. You do not have
procurement.approve, or the order is not awaiting approval.
Receive goods against a purchase order
Purpose
Check a delivery against the order line by line and put what was accepted into stock — with the batch, the expiry date and the cost — while rejected and damaged goods stay out and on the order.
Role / permission required
Storekeeper, store manager or manager (inventory.receive).
Prerequisites
- The order is sent (or acknowledged or partly received).
- The goods and the supplier’s delivery note are in front of you.
Steps
- Open Procurement → Purchase orders, tap Open and tap the order. (Or Goods receipts → Receive an order and choose it.)
- Tap Receive goods. Each outstanding line is filled with what is still to come.
- Check Into location and type the Delivery note no. (1): KGM-DN-5521.
- For each line, type what you accept in Received (2) and what you refuse in Rejected (3) or Damaged, with the Reason: rice 8 received, 2 rejected, Two bags torn.
- Type the Batch and Expiry from the packets. Leave Cost (UGX) (4) as ordered unless the delivery note shows another price.
- Tap Post receipt (5). (Save draft keeps it to finish later; nothing moves until you post.)
Expected result
The receipt opens as posted with discrepancy (1): rice 8 received and 2 rejected with the reason (2), sugar 10 received; Received value USh 78,600 (3). The 18 units are in the Central Warehouse with their batch and cost. The order reads Partially received with 2 on backorder (1): the rejected rice is still owed until it is replaced, returned or closed short.
Screenshot
Common mistakes
- Receiving what the delivery note says instead of what you counted. Count, then type.
- Accepting damaged goods “to sort out later”. Once in stock, they can only go back with a return from stock. Reject them on the receipt.
- Receiving the same delivery twice. A posted receipt cannot be cancelled. Check the order’s Goods receipts before you start.
Troubleshooting
- “Enter a quantity on at least one line.” Every line is 0.
- The Receive goods button is missing. The order is not sent yet, or you
do not have
inventory.receive. - The goods went into the wrong store. Transfer them (see Transfer stock between stores).
FAQ
The supplier will never send the missing rice. What now? On the order, tap Close short: the backorder is closed and the order is complete.
Match and post the supplier’s invoice
Purpose
Record the supplier’s bill and check it against what was ordered and what was received — the three-way match — so the business pays for what it got, at the price it agreed, and nothing more.
Role / permission required
Procurement officer or accountant (procurement.invoice).
Prerequisites
- The goods are received (see Receive goods against a purchase order). The pictures use the millers’ next delivery of the same order lines — rice 10 kg at 4,200 and sugar 10 kg at 4,500 — received in full under delivery note KGM-DN-5530, whose sugar was priced at 4,700 a kg.
- You have the supplier’s invoice.
Steps
- Open Procurement → Goods receipts and tap the receipt. (Or Supplier invoices → Invoice a receipt and choose it.)
- Tap Record invoice.
- Type the Supplier invoice no. (1) (KGM-INV-7781) and the Invoice date (2). Leave the Due date (3) empty to use the supplier’s terms.
- Tap Record invoice (4). The match runs at once.
- Read the result. Approved for payment means everything matched. Here the status is Variance — needs approval (1): the sugar was invoiced at USh 4,700 (2) against 4,500 on the order — price variance (3).
- If the difference is agreed, tap Approve variance (4), type a Note (1) that explains it and tap Approve (2). If not, tap Dispute and call the supplier.
Expected result
After the approval the invoice reads Approved for payment (1) with USh 89,000 outstanding (2) — rice 10 kg at 4,200 (42,000) and sugar 10 kg at 4,700 (47,000), the whole delivery — and the timeline shows Recorded, Matched and Approved. It is in accounts payable, due 30 days after the invoice date (the millers’ terms).
Screenshot
Common mistakes
- Approving every variance. A price 2 % or more above the order is a variance for a reason. Approve only what was agreed; dispute the rest.
- Recording the invoice before the goods are received. There is nothing to match yet. Wait for the receipt, or for a service use Manual invoice / credit note.
Troubleshooting
- “Explain why the variance is accepted.” Type a note before approving.
- The order or the receipt changed after the invoice was recorded. Tap Re-match to check again.
- An invoice for a service (repairs, rent). Use Manual invoice / credit note on the Supplier invoices page, code each line to its Account, and approve it with Approve.
Pay a supplier
Purpose
Pay what is owed, from the right bank or cash account, and allocate the payment to the right invoices — so accounts payable and the ledger stay true.
Role / permission required
Accountant or owner (procurement.pay).
Prerequisites
- The invoices are Approved for payment (see Match and post the supplier’s invoice).
- The money has gone, or is going, by bank transfer, mobile money, cash or cheque.
Steps
- Open Accounts payable from the sidebar.
- Choose the Supplier (1): Kampala Grain Millers. Read Total owed (2), the ageing tiles and the Open documents (4).
- Tap Pay (3) next to the supplier’s balance.
- In Pay Kampala Grain Millers choose the Method (1): Bank transfer, and check Paid from.
- Type the Reference (2): TT-24100, and Paid on if it is not today.
- Check the amount for each invoice (3). Each is filled with what is outstanding and cannot be more; type 0 for an invoice you are not paying now. The list shows the supplier’s open invoices from every branch. Here only one invoice is paid — this week’s third rice and sugar delivery (rice 10 kg at 4,200 and sugar 10 kg at 4,500, invoiced at the order’s prices, so approved at once): the others are 0 and the total at the bottom is USh 87,000.
- Tap Record payment (4).
Expected result
The message SPAY-… recorded appears. Recent payments shows the payment: Kampala Grain Millers · Bank transfer · TT-24100, applied to the invoice, USh 87,000. The invoice reads Paid and the supplier’s balance goes down by what was paid; the payment is posted to the ledger (see Payables).
Screenshot
Common mistakes
- Paying an invoice twice. Pay from accounts payable, where paid invoices are gone. A mistake is undone with Void on the payment.
- The wrong Paid from account. Cash comes from the safe, a transfer from the bank. The ledger follows what you choose.
Troubleshooting
- An invoice is missing from the Pay dialog. Only invoices approved for payment (or part-paid) can be paid. One still on variance or disputed is counted apart — Total owed says … to review — until the variance is approved or the dispute settled.
- “… is in USD; pay it in USD.” Pay each currency’s invoices separately; type dollar amounts with their cents (612.00).
- I paid the wrong supplier. Tap Void on the payment in Recent payments and give the reason: the invoices become outstanding again.
Return goods to a supplier
Purpose
Send back what was rejected at delivery or turned out faulty, and get a credit note, replacement goods or a refund — with every step recorded.
Role / permission required
Raising, shipping and resolving: procurement officer, store manager or
manager (procurement.returns). Approving: procurement.approve.
Prerequisites
- A posted goods receipt with rejected or damaged goods — or goods in stock that turned out faulty.
Steps
- Open the goods receipt with the discrepancy and tap Return rejected goods. (For faulty goods already in stock: Supplier returns → Return from stock.)
- Type the Reason (1): Two torn bags — rice spilled in the truck.
- Tap Raise return (2). The return opens as a draft: 2 kg of rice, never received, USh 8,400.
- A manager opens the return, taps Approve, types a Note (1) and taps Approve (2).
- When the goods leave, tap Shipped to supplier.
- When the supplier answers, tap Resolve. Choose the Resolution (1) — Credit note, Replacement goods or Refund — type the Supplier reference (2) (KGM-CN-118) and tap Resolve (3).
Expected result
The return reads resolved with credit note (1). A credit note for USh 8,400 is created and approved (2): it lowers what is owed to Kampala Grain Millers in accounts payable. The timeline shows raised, approved, shipped and resolved. A Replacement goods resolution re-opens the order’s backorder instead, and a Refund records the reference.
Screenshot
Common mistakes
- Shipping before approval. Shipped to supplier appears only after approval.
- Returning goods from stock without shipping. Stock leaves the store only when you tap Shipped to supplier.
Troubleshooting
- Return rejected goods is missing on the receipt. The receipt has no
rejected or damaged units, or you do not have
procurement.returns. - The credit note is not taken off one invoice. The credit note lowers the supplier’s balance in accounts payable. Applying it to one invoice is not on the screens in this version; ask the accountant.
Print documents and check e-mails
Purpose
Give the supplier, the driver or the file a paper copy — a purchase order, an RFQ or a goods receipt — and know what was e-mailed and when.
Role / permission required
Anyone with procurement.view.
Prerequisites
- The document exists (an order, an RFQ or a goods receipt).
Steps
- Open the order (or the RFQ or receipt).
- Tap Print (1). The document opens in a new tab.
- Print it with the browser’s print command, or save it as PDF.
- Under Details (2), Document shows stored copy once the background job has made the file; tap it to download that copy.
- For e-mails, read the Timeline: Sent shows the address the order went to. An RFQ lists each supplier invited with the address and when they answered.
Expected result
A clean page with the business’s name, the supplier, the delivery store, the lines, the prices and the total — ready to sign and hand over.
Screenshot
Common mistakes
- Sending a printed order instead of using Send to supplier. The printout does not record that the order was sent; tap Send to supplier as well.
Troubleshooting
- Nothing opens when I tap Print. The browser blocked the new tab; allow pop-ups for JupitaPos.
- Document says rendered on print. The stored copy is made when the order is sent; until then the page is made each time you print.
- Exports and e-mails arrive late. They run in the background; when the workers are busy they wait. You get a notification when an export is ready.


































