Procure-to-pay
The controlled path from a request for spend to a payment: requisition, approval within a limit, purchase order, goods receipt, invoice, and a three-way match that must pass before anything reaches payables.
Finance and operations staff who authorise and control spend across a portfolio, and anyone who has to explain to an auditor how a payment came to be made.
Before you start
- You understand the ledger, balanced postings and immutability — Accounting on Domicium covers this.
- You know how withholding is entered on a supplier invoice — Ghana VAT and withholding covers this.
- You hold accounting or property write rights in your organisation.
By the end you can
- Register vendors and set approval limits that the database enforces.
- Raise a requisition and approve it within your authority.
- Convert an approved requisition into a purchase order and send it.
- Record what actually arrived, including short and damaged deliveries.
- Register an invoice and run a three-way match.
- Read a match exception, fix its cause, and pay only once the match passes.
Lesson 1 of 6
Vendors and approval limits
Objective. An approved vendor list, and spend authority set per role.
A vendor is an approved record with its own history rather than free text on an invoice. Only approved vendors can receive a purchase order — pending ones are filtered out of the dropdown entirely, which is why an order sometimes appears to have no vendors to choose from.
Approval limits are enforced in the database, not by hiding a button. A role with no configured limit has unlimited authority; a limit of zero blocks approval entirely. Set them before anyone raises a requisition.
- 1Open the management console and choose “Procurement” under Finance in the left rail.
- 2In the “Vendors” card, enter the “Vendor name”, choose the “Category” — Supplies, Works, Services, Utilities or Professional — and set the “Payment terms (days)”.
- 3Enter the Contact, Phone, Email, TIN, Bank and Bank account details.
- 4Record the “Insurance expiry” and “Certification expiry” so a lapsed vendor is visible.
- 5Press “Register vendor”. The vendor is created pending.
- 6Press “Approve” beside the vendor once you have done your own checks.
- 7In the “Approval limits” card, choose a “Role”, enter the “Approval limit” in cedis, and press “Set limit”.
- 8Repeat for every role that should have a ceiling.
You did it right if. The vendor shows an approved badge in the Vendors list, and each role you configured appears in the Approval limits list with its figure.
Watch out. A role that does not appear in the limits list has unlimited approval authority — an empty list looks identical to “no limits are needed”. Set an explicit limit for every role that should have one, including a zero for roles that should never approve, or you will discover the gap when someone approves a large requisition they should not have.
about 12 minutes
Lesson 2 of 6
Raise a requisition and approve it
Objective. A costed request for spend, approved by someone whose authority covers it.
The requisition is where spend is requested and where the control sits. Nothing is committed to a vendor until an approver within their limit has approved it.
The approval check runs in the database. It confirms you are a member with procurement rights, that the requisition is submitted, that it has costed lines, and that its total is within the limit configured for your role — and it stamps the limit that applied onto the requisition, so the authority behind an approval survives.
- 1In the “New requisition” card, enter “What is needed”, for example Cement for Block C slab.
- 2Choose the “Requesting department”, “Cost centre”, “Project” and “Property” where those apply.
- 3Enter the “Budget line” reference and the “Required by” date.
- 4Under “First line”, enter the “Description”, “Quantity”, “Unit of measure” and “Unit estimate”.
- 5Add a “Justification”.
- 6Press “Draft requisition”.
- 7Find the requisition in the “Requisitions” table and press “Submit”.
- 8An approver presses “Approve”, or “Reject” to turn it down.
You did it right if. The requisition status moves draft, then submitted, then approved, and the row shows the approved total.
Watch out. The form posts exactly one line — the section is labelled “First line” and there is no control for adding a second. Raise one requisition per item, or aggregate into a single line with a description that covers it. Note also that pressing “Submit” silently does nothing if the line total is zero, so check the unit estimate before you conclude the button is broken.
about 12 minutes
Lesson 3 of 6
Convert to a purchase order and send it
Objective. An approved commitment to a named vendor, on the record.
A purchase order turns an approved requisition into a commitment. The tax rate and the matching tolerance are set here and nowhere else — they are not editable afterwards, and they govern how the three-way match will behave weeks later.
The default tolerance is two per cent. Set it deliberately: too tight and every delivery variance becomes an exception; too loose and the match stops being a control.
- 1In the “Raise a purchase order” card, choose the “Approved requisition”. Only approved requisitions appear.
- 2Choose the “Vendor”. Only approved vendors appear.
- 3Set the “Tax rate %” that applies to this order.
- 4Set the “Match tolerance %”. Two is the usual starting point.
- 5Enter the “Delivery address”.
- 6Press “Raise purchase order”. The order is created as a draft and the requisition becomes converted.
- 7Find the order in the “Purchase orders” table and press “Approve”.
- 8Press “Send to vendor”.
You did it right if. The purchase order appears in the table with a PO number, its status reads sent, and the requisition it came from reads converted.
Watch out. Setting a tax rate on the order overwrites the tax rate on every line of it. If different lines attract different treatment, that is not expressible here — split them across separate orders. There is also no cancel control on a purchase order, so an order raised against the wrong vendor cannot be withdrawn from the interface.
about 10 minutes
Lesson 4 of 6
Record what actually arrived
Objective. A receipt that reflects the delivery, including anything short, damaged or rejected.
The goods receipt is the leg of the three-way match that stops you paying for what did not turn up. It records quantities per line with a condition, and rejected quantities are neither accrued nor counted as received.
This is the step people skip, and skipping it is why an invoice can never pass its match: a match against a purchase order with nothing received expects zero, so it always fails.
- 1In the “Receive goods” card, choose the “Purchase order”. Only orders that are approved, sent or part received appear.
- 2Enter the “Delivery note ref”.
- 3Work down the line table. Each row shows the quantity ordered and how much is already in.
- 4Set “Receiving now” for each line. It defaults to the outstanding quantity.
- 5Set the “Condition” for each line: Good, Damaged, Short or Rejected.
- 6Press “Record goods receipt”.
You did it right if. The receipt appears in the “Goods receipts” card, and the purchase order status has moved to part received or received depending on whether every line is now complete. Accepted quantities post as Dr Purchases, Cr Goods received not invoiced.
Watch out. Rejected quantities are excluded from what the match expects, which is exactly right, but it also means marking a line Rejected and then paying the invoice in full will always fail the match. Record the condition honestly at delivery and take the credit note from the vendor. Note too that receipts are append-only — there is no way to correct one from the interface.
about 10 minutes
Lesson 5 of 6
Register the invoice and run the three-way match
Objective. An invoice matched against the order and the receipt, with payables posted only if it passes.
The three-way match compares the order, the receipt and the invoice. For each line it computes what should have been invoiced — the quantity actually received, at the price on the order — and checks the invoiced figure against it within the tolerance you set on the purchase order. It then checks the document total the same way.
A pass posts to payables: Dr Goods received not invoiced, Dr Input VAT for anything reclaimable, Dr Purchases for the rest of the tax, Cr Trade payables. A failure posts nothing at all.
- 1In the “Register a vendor invoice” card, choose the “Purchase order”. Only orders with something received appear.
- 2Enter the “Vendor invoice no.” and the “Invoice date”.
- 3Enter the “Withholding tax” amount if the supply is subject to it.
- 4Tick “Vendor supplied a valid VAT invoice” only if they did, and enter the “Reclaimable VAT (optional)” or leave it blank to take the VAT share of the tax charged.
- 5Check each line's “Invoiced qty” and “Invoiced unit price” against the paper invoice in front of you.
- 6Press “Register invoice”. The invoice is created with status received.
- 7Find it in the “Vendor invoices” table and press “Run match”.
You did it right if. On a pass, a message reads that the three-way match passed and payables were posted, the invoice status reads matched, and the Variance column shows in green. On a failure, the message says an exception was raised and nothing was posted.
Watch out. An invoice with a line that is not linked to a purchase order line can never pass — the match treats the expected value as zero and raises a no-PO-line exception. If a vendor has added something you did not order, that is a conversation with the vendor, not a tolerance you should widen.
about 14 minutes
Lesson 6 of 6
Clear an exception and pay
Objective. A blocked invoice diagnosed, corrected at its source, rematched and paid.
An exception is a stop, not a flag. Nothing has been posted to payables, and no payment can be made, until the match passes. The exceptions panel tells you the invoiced figure, the expected figure, the variance and the tolerance in force, with a plain-English line explaining each variance.
Fix the cause rather than the symptom. A quantity variance usually means the receipt is wrong or the delivery was short; a price variance usually means the vendor has invoiced above the order.
- 1On the Procurement page, read the “Match exceptions” card at the top left.
- 2For each exception, read the line showing invoiced against expected, the variance, and the tolerance percentage from the purchase order.
- 3Read the bulleted explanation lines. They name whether the problem is quantity, price, both, an unlinked line, or the document total.
- 4For a quantity variance, check the goods receipt against the delivery note and record a further receipt if more arrived than you logged.
- 5For a price variance, take it up with the vendor and get a corrected invoice.
- 6Press “Re-run match” once the underlying record is right.
- 7When the invoice reads matched, choose the paying account from the select on its row — Bank or Mobile Money — and press “Pay”.
You did it right if. The invoice leaves the exceptions panel, its status reads paid, the purchase order closes once every line is fully invoiced, and the “Invoices in exception” figure at the top of the page has fallen.
Watch out. Only the most recent match attempt is shown. Earlier attempts are stored but never displayed, so you cannot see from the screen how many times an invoice has been rematched or what it looked like before. If an exception matters — a dispute, an audit question — write down what it said before you press “Re-run match”.
about 12 minutes
