Validation rules

What stops you when you save a document, why, and what you can change about it. Every rule is described in the language of your work, and its title and message are word for word what you see on screen.

How to read this guide

Every rule has one severity, which decides what it does to you when it triggers. There are three, from strictest to softest:

SeverityWhat happens
BlockThe document is neither saved nor posted until what was flagged is corrected. Only cases where letting it through would corrupt the books, or breach something someone is answerable for, belong here.
WarningThe system flags it and lets you through if you confirm — because the situation may well be a sound commercial decision: selling at a loss to clear stock, exceeding a credit limit with approval.
InfoInformation shown without stopping you: the item is in another warehouse, a supplier sold it cheaper, a period closes in a few days. Read it or ignore it, with no consequence.
ℹ️ The mark inside a message is where the system inserts the actual figure or name when you see it.

Severity is your company's decision, not a fixed fate. From Administration → Validation rules you see every rule and change its severity for your company: raise a warning to a block to tighten up, lower a block to a warning where it does not suit how you work, or switch the rule off entirely. Alongside it sits the threshold: the number at which the rule starts — how many days makes a date old, what percentage makes a price an outlier. What you see in this guide is the default the system ships with.

The correction rate judges the rule. The same screen shows, per rule, how many times it appeared and how many times the user then corrected the document. A rule that is dismissed without a correction most of the time is noise, not control — lower it to info or switch it off, because an alert that gets ignored teaches people to ignore the next one too.

And the silence when there is no history is deliberate. Many rules here measure your document against your own past: this supplier's usual price, this customer's usual quantity, this user's usual hours. They stay quiet until enough history exists to measure against. So if an alert you expected does not appear in a new company, that is the system working, not failing: there is no pattern to measure against before a pattern forms.

Journals & accounts 18 rules

RuleSeverityDocuments
The entry does not balance
Debits total and credits total — a difference of . The entry cannot be saved until both sides match.
BlockJournal entry
This account cannot be posted to
Account is a group account; its balance is rolled up from its children. Pick one of its child accounts.
BlockAll documents
Inactive account
Account is inactive and takes no new movement. Reactivate it in the chart of accounts if it is still in use.
BlockAll documents
One line, both sides
This line carries on the debit side and on the credit side at once. That has no accounting meaning — put it on one side, or split it into two lines.
BlockJournal entry
This entry flips the account balance
Account has a normal balance and currently stands at . This line takes off it, flipping it to on the opposite side — an overpayment or the wrong account. If it is a deliberate advance, carry on.
WarningJournal entry
Line with no amount
This line has an account but neither a debit nor a credit. Usually a line whose amount was cleared but the line itself was not removed.
WarningJournal entry
Duplicate journal entry
Entry with the same date, the same and the same accounts is already posted. Review before posting — or carry on if this is a recurring daily entry.
WarningJournal entry
Two accounts that have never met
"" debited against "" credited — this pair has never appeared together in a posted entry. Check both accounts before posting.
Default threshold: 200
InfoJournal entry
No exchange rate on record
The document is in with no recorded exchange rate — the typed rate has no reference to be checked against. Record it in the exchange-rates screen.
WarningSales invoice, Purchase invoice
Exchange rate is stale
The latest recorded rate is dated days old.
Default threshold: 7
WarningSales invoice, Purchase invoice
Dimension combination not allowed
"" may not be charged to this . Allowed: .
WarningAll documents
A P&L account with no cost centre
Account is a revenue or expense account with no cost centre. The amount will land in the result with no owner, appearing in neither profitability analysis nor any centre statement.
WarningJournal entry
Inactive cost center
Cost center is inactive — move the line to an active center, or re-activate it from the cost centers screen if it is still in use.
WarningAll documents
Budget exceeded
This entry takes "" to against a budget of .
WarningJournal entry
Entry on a sensitive account
"" () is flagged sensitive — posting to it is legitimate, and worth a second look.
WarningJournal entry
Budget nearly consumed
With this entry "" reaches % of the budget ().
Default threshold: 80
InfoJournal entry
Budget burning faster than the clock
— period : % consumed with only % of the period elapsed. At this rate it runs out early.
Default threshold: 25
InfoJournal entry
Date inside a closed reconciliation
The document date falls on or before the last closed bank reconciliation for this account. A movement added behind it breaks a reconciliation that already balanced — date it after the reconciliation, or reopen the reconciliation first.
WarningAll documents

Sales & purchasing 33 rules

RuleSeverityDocuments
Negative unit price
The price of "" is entered as negative (). Discounts belong in the discount field, not as a negative price — otherwise average selling price in your reports is wrong.
BlockSales invoice, Purchase invoice
Negative quantity
Quantity of "" is negative () — returns have their own documents.
BlockSales invoice, Purchase invoice, Production order
Unit not defined on the item card
: unit factor matches none of the item’s defined units (). Define the unit on the card or fix the line — otherwise stock moves by a wrong quantity that no trial balance reveals.
BlockSales invoice, Purchase invoice
Account on hold
"" is on hold — posting is not allowed until it is reactivated.
BlockSales invoice, Purchase invoice
Item on hold
Item "" is on hold and cannot be transacted.
BlockSales invoice, Purchase invoice, Production order
Discount above your ceiling
Discount on "" is % but your ceiling is % — a discount gives away company margin.
BlockSales invoice
Below minimum price
"" is priced at ; its minimum is (per base unit).
BlockSales invoice
That supplier document number is already used
An earlier document for "" carries the same number. Either the invoice was entered twice or the number is wrong — both are fixed before saving, so the amount is not paid twice.
BlockPurchase invoice
Sold below cost
"" is priced against a cost of — a % loss. Legitimate when clearing stock, otherwise a quiet error that only surfaces in month-end profit.
WarningSales invoice
Far below cost
: priced against a cost — about % below. Check the decimal point before saving.
Default threshold: 30
WarningSales invoice
Zero quantity
The line for "" has a quantity of zero. It will pass with nothing issued from the warehouse and nothing invoiced, and is usually caught only at delivery.
WarningSales invoice, Purchase invoice
Credit limit exceeded
"" owes and this invoice adds — reaching against a limit of , over by .
WarningSales invoice
Invoice without a goods receipt
"" is being invoiced without a goods receipt — and this supplier usually goes through receipts.
WarningPurchase invoice
Invoiced beyond what was received
Total invoiced for "" reaches against received on .
WarningPurchase invoice
Price above the purchase order
"" is priced % above order ().
Default threshold: 5
WarningPurchase invoice
Above the usual purchase price
is priced here while this supplier's usual is — about % higher. Check the agreement, or that the right unit was entered.
Default threshold: 15
WarningPurchase invoice
Purchase order without a requisition
This order is not linked to an approved purchase requisition, and your company does use requisitions. Link it to its requisition, or approve it knowingly without one.
WarningPurchase order
Very similar document
The same party has a posted document for the same amount (): "" on — make sure this is not the same invoice under another number.
Default threshold: 7
WarningSales invoice, Purchase invoice, Supplier payment, Customer payment, Purchase order, Stock adjustment
Pay account is inactive
Account is inactive, so no money can leave it. Pick an active cash or bank account, or re-activate it in the chart of accounts.
BlockSupplier payment, Customer payment
Payee is not approved
is not approved for payment, so no money may leave to them. Approve them on the supplier card if that decision has changed.
BlockSupplier payment
Overdue balance
"" carries an overdue balance of beyond the -day terms.
WarningSales invoice, Purchase invoice
Quantity over the item cap
"" totals in this document against a cap of base units.
WarningSales invoice
Stock would exceed the item ceiling
: on-hand after this invoice would be against a ceiling. Idle capital and carrying cost — unless this is a seasonal buy.
WarningPurchase invoice
Supplier contract ceiling exceeded
This year's purchases from reach with this document against a ceiling — over. Raise the ceiling or review the commitment.
WarningPurchase invoice, Purchase order
Purchase quantity above the item ceiling
: in total against a per-document ceiling. Confirm the quantity before committing.
WarningPurchase invoice, Purchase order
Margin below the floor
"" margin is % against a floor of %.
WarningSales invoice
Not enough stock
"" needs but only is on hand — short by . Check the quantity or receive the incoming stock first.
BlockSales invoice, Production order
Below reorder level
"" drops to after this issue; reorder level is .
InfoSales invoice
Discount near your ceiling
Discount on "" is %; your ceiling is %.
Default threshold: 90
InfoSales invoice
Approaching credit limit
's balance after this document is % of the limit, leaving . A heads-up before the limit is actually hit.
Default threshold: 80
InfoSales invoice
Price differs from usual
"" has averaged for this customer; here it is — a % difference. For information only.
Default threshold: 25
InfoSales invoice
A cheaper supplier exists
: bought from at within the year — about % less. For your information before negotiating; price is not the whole deal.
Default threshold: 10
InfoPurchase invoice
A preferred supplier carries this item
: is a preferred supplier and carries it. For your information — there are good reasons to go elsewhere (stockout, urgency, quality).
InfoPurchase invoice, Purchase order

Cash & tills 8 rules

RuleSeverityDocuments
Cheque has no number
The instrument is a cheque but no number was entered. The voucher cannot post without it: the cheque row would open with no identity — you could never find it by number, no report would remind you of it, and fixing it afterwards means un-posting the voucher.
BlockSupplier payment, Customer payment
Cheque has no due date
The instrument is a cheque but no due date was entered. Without one the cheque is recorded as due since the year 0001: it shows as overdue in every report and drops out of every upcoming-maturity view.
BlockSupplier payment, Customer payment
Duplicate cheque number
Cheque is already recorded for this same party on voucher . If it is a different cheque from a new book, carry on; if it is the same one, you are recording it twice.
WarningSupplier payment, Customer payment
Cheque is far post-dated
The cheque falls due in days — beyond the -day threshold. Check the year: one wrong digit pushes the due date out by a full year.
Default threshold: 180
WarningSupplier payment, Customer payment
Cash payment above the limit
The amount is in cash against a configured limit of . Cash settlement above the legal ceiling makes the expense non-deductible in many jurisdictions — a bank transfer leaves a trail instead.
Default threshold: 0
WarningSupplier payment, Customer payment
Payment drives the balance negative
holds and this pays out — a shortfall of . If a deposit has not been recorded yet, enter it first; otherwise check which till or bank was picked.
WarningSupplier payment
Cheque cashed before its due date
Cheque falls due on days from now. Presenting it early usually bounces: you pay a return fee and the drawer takes the hit for something that was not their doing.
WarningCheque action
Cheque is past its due date
Cheque fell due on days ago. In most jurisdictions in the region a cheque may no longer be presented to the bank after six months; ask for a replacement rather than depositing it.
Default threshold: 180
WarningCheque action

Tax & e-invoicing 8 rules

RuleSeverityDocuments
Line VAT differs from the item
"" is lined at % against a card rate of %.
WarningSales invoice, Purchase invoice
VAT zeroed without exemption
"" carries % on its card yet the line is zeroed — and the customer is not exempt.
WarningSales invoice
Exempt customer being charged VAT
"" is exempt (reference: ) and this line carries VAT.
WarningSales invoice
Exemption not usable
""’s exemption has no reference to show the authority — complete the card or charge VAT.
WarningSales invoice
VAT total does not match the lines
Declared against computed from the lines.
Default threshold: 1
WarningSales invoice, Purchase invoice
Company has no registered tax number
E-invoicing is switched on but the company has no tax registration number — submission fails with an error rather than a rejection notice, so invoices pile up unsent with no visible reason. Add the number in the company profile.
WarningSales invoice
Items with no code known to the authority
item(s) have neither an EGS code nor a barcode: . Our internal code would be sent instead, which the authority does not recognise — the invoice is rejected after submission and the work is redone. Add the codes on the item cards.
WarningSales invoice
Items with no unit known to the authority
item(s) have no unit: . “EA” (each) would be sent — and the invoice is **accepted**, so a hundred kilograms is filed as a hundred each in the national system. No rejection warns you and no report catches it.
WarningSales invoice

Controls & segregation of duties 12 rules

RuleSeverityDocuments
No self-approval
You raised this request — approval is a second person confirming the first one got it right. Ask a colleague to approve it.
BlockApproval action
Both levels by one person
You already approved level 1 — approving both levels defeats the purpose of the second one.
BlockApproval action
New supplier being paid quickly
"" was created only days ago and this is the first money going out to them — a sequence worth a look.
Default threshold: 7
WarningSupplier payment
Payee details changed just before payment
""’s card was modified on — review what changed before money leaves.
Default threshold: 3
WarningSupplier payment
Repeated edits after approval
This document was edited times after its approval — the old signature no longer describes what sits under it.
Default threshold: 3
WarningAll documents
Repeated deletions today
This user has deletions today — delete-and-recreate is history being reshaped.
Default threshold: 5
WarningAll documents
Repeated attempts against blocking rules
You have hit blocking rules times today. If the system rejects what you believe is right, raise the rule with management rather than rewording the document.
Default threshold: 5
WarningAll documents
Amount far from your usual
sits deviations from your usual (). It may be right — but it deserves a second look.
Default threshold: 3
WarningAll documents
Outside your usual job scope
"" is not part of your usual work — you do hold the permission, and the document deserves a second look.
WarningAll documents
Outside your usual hours
It is :00 now; your usual hours are :00 to :00.
WarningAll documents
Unusual document count
This is document # today; your usual is per day.
Default threshold: 3
WarningAll documents
Round amount just under the approval threshold
The amount is against an approval threshold of — only % below it, and a round number. An amount that lands this close to the threshold and is round deserves a look: if the document was split, combine it; if it is genuine, carry on.
Default threshold: 5
WarningAll documents

Rules that apply to every document 18 rules

RuleSeverityDocuments
The document is over your ceiling
The document totals against your ceiling of in this company. Larger amounts are posted by whoever holds the ceiling for them — ask your manager to raise it, or hand the document over.
BlockAll documents
Date in the future
The document is dated days ahead. Legitimate for deferred documents, and usually a slip in the year or month.
WarningAll documents
Old document
The document is dated days back, past your company limit of days. Late entries are legitimate, but they change reports for a period already reviewed.
Default threshold: 90
WarningAll documents
Changed after approval
This document was approved for on and is now . The approval covered the original amount — send it back for approval at its new value.
BlockAll documents
Slow-moving item
has not left the warehouse in days (last outflow ) — and you are buying more. Review the quantity, or move the existing stock.
Default threshold: 180
InfoPurchase invoice, Purchase order
Incomplete party details
's card is missing: . These are demanded at e-invoicing and at collection — filling them now is cheaper than filling them then.
InfoSales invoice, Purchase invoice
The customer has an open order for this item
Order dated is still open and covers an item on this invoice — check it so the goods do not ship twice.
InfoSales invoice
An approved requisition covers this item
Requisition dated is approved and covers an item on this document — link it if this is the one; otherwise you are buying it twice.
InfoPurchase invoice, Purchase order
Unusual margin for this item
: this line's margin is % against a usual %. Check the price or the cost before saving.
Default threshold: 20
InfoSales invoice
Paying before the due date
Invoice falls due in days and is being paid now — cash leaving early, unless an early-payment discount applies.
Default threshold: 15
InfoSupplier payment
Available in another warehouse
is short here, and is on hand at . Transfer it, or change the invoice warehouse.
InfoSales invoice
The customer has credit on account
has in received-but-unallocated payments — apply it to this invoice rather than billing for money you already hold.
InfoSales invoice
The customer has a live quotation
Quotation dated is still valid for this customer — check its prices before saving.
InfoSales invoice
Below this customer's usual quantity
: here versus a usual for this customer — about % less. Confirm the quantity, or offer them their usual.
Default threshold: 50
InfoSales invoice
The period closes soon
Period ends on day(s) left. Enter anything outstanding before it closes; afterwards no movement is accepted in it.
Default threshold: 3
InfoAll documents
Above your average
is above your average of .
Default threshold: 1
InfoAll documents
Tax number already on another card
” carries the same tax number. That number is unique to a legal entity, so two cards split one entity in two: its balance is spread across both so it never reaches its credit limit, its statement is permanently incomplete, and it may be paid twice. Check both before saving.
WarningCustomer / supplier card
Large stock-count variance
”: the adjustment is against on hand — %. A gap this size is either a real loss worth investigating before it is closed off with a journal, or a counting error worth fixing before it distorts the moving average.
Default threshold: 50
InfoStock adjustment

Fixed assets 4 rules

RuleSeverityDocuments
Asset already disposed
Asset "" has already left the books. Disposing it again removes what is already gone, leaving its accumulated depreciation stranded.
BlockAsset disposal
Disposal before acquisition
The disposal date precedes the acquisition of asset "" on — the asset would leave before it arrived. Check the date.
BlockAsset disposal
Accumulated depreciation exceeds the depreciable base
Asset "": accumulated against a depreciable base of too much. The disposal gain would be computed on a corrupted value; correct the accumulated figure first.
WarningAsset disposal
Sold below book value
Asset "" has a book value of and is being sold for — a (%) loss charged to the income statement. Legitimate, but worth a second look.
Default threshold: 20
WarningAsset disposal

Manufacturing 2 rules

RuleSeverityDocuments
Production order with no components
Nothing is issued on this order, so the finished item costs zero — it enters stock valueless and corrupts the weighted average for everything after it. Add the materials consumed.
BlockProduction order
Usage differs from the bill of materials
Component "": issued against a standard of from BOM "" — a % deviation. Check the quantity or the recipe.
Default threshold: 10
WarningProduction order

Contracting 2 rules

RuleSeverityDocuments
Contract budget exceeded
Contract "" has a budget of with spent; this document adds , exceeding it by . Review the budget or the amount before approving.
WarningAll documents
Quantity exceeds the contract
Item "": contracted , previously certified , this certificate over. The consultant strikes the excess after we have already posted it as revenue, forcing a reversal in a later month.
BlockProgress billing

Real estate 2 rules

RuleSeverityDocuments
Unit already leased for this period
Contract "" covers the same unit over an overlapping period. Two contracts on one unit means two tenants billed for one place. Check the dates or the unit.
BlockLease contract
Invalid contract period
The period runs from to — it ends before it starts, or on the same day. Instalments and accruals divide by the term, and zero cannot be divided by.
BlockLease contract

Fleet 3 rules

RuleSeverityDocuments
Odometer lower than a previous reading
Vehicle : this reading is against a highest recorded lower. The distance delta turns negative and corrupts cost-per-kilometre in every later report. Check the reading, or proceed if the cluster was replaced.
WarningVehicle expense
Expense without an odometer reading
Vehicle : the expense posts correctly but is attributed to no distance — it drops out of cost-per-kilometre without the gap showing anywhere. Enter the reading.
WarningVehicle expense
Vehicle papers expired
Vehicle : expired on . An accident on lapsed insurance turns a claim into a total loss, and expired registration gets the vehicle impounded.
WarningVehicle expense

Agriculture & land 4 rules

RuleSeverityDocuments
Project budget exceeded
Project "": budget with spent; this cost exceeds it by . The owner’s call — but better seen before the money leaves than after.
WarningProject cost
A cost type never charged to this project
is a first for this project — previously charged: . Confirm both the project and the cost type before posting.
Default threshold: 3
InfoProject cost
Cost dated outside the season
Season "" runs to , and this cost is dated . The season is the cost bucket that crop profitability is measured from — a cost outside it lands on the wrong season.
WarningSeason cost
Season is closed
Season "" is closed; its profitability is fixed and its figures already reported. A cost added now changes a number a decision was built on — reopen the season, or book it to the current one.
BlockSeason cost

Specialised modules 21 rules

RuleSeverityDocuments
Controlled drug without a prescription
"" is classified and the line carries no prescription. The dispense is written into the controlled-drugs register — a record that can never be altered — so it would stand as permanent evidence. Link the prescription first.
BlockSales invoice
Item requires a prescription
"" is flagged as prescription-only and the line has none. Link a prescription, or review the item’s classification.
BlockSales invoice
Expired batch
"" comes from a batch that expired on . Expired stock belongs in disposal, not on the shelf — pick another batch.
BlockSales invoice
Batch nearing expiry
"" expires on — in days. Not an error, but some customers refuse short-dated stock.
Default threshold: 90
WarningSales invoice
Costs with nothing to allocate onto
The shipment carries in costs but no goods value to spread them over — either no purchase invoice is linked, or its value is zero. Link the invoices first.
BlockImport shipment
Import costs high against goods value
Costs of against of goods — %. Most often a misplaced decimal in a freight or customs line; the effect is that every item on the shipment carries an inflated cost.
Default threshold: 60
WarningImport shipment
Pour exceeds the order
Order "": m³ ordered, delivered, this ticket over. The excess is either poured unbilled or refused by the customer, and is found out after it has set.
WarningConcrete ticket
Menu item without a recipe
"" sells with no recipe, so nothing leaves stock and its food cost comes out zero — the dish looks all margin. A restaurant is run on its food-cost ratio.
WarningRestaurant order
Instalments do not equal the net
Invoice net against instalments totalling — a gap. The instalments are what is actually billed: short means under-collecting, over means billing what is not owed. The gap shows on no screen.
BlockStudent fee invoice
Month already recorded
Month already has a row for this client and year. The sheet is one row per month — a duplicate doubles its sales and inputs in the return filed with the authority.
BlockAnnual transactions sheet
Line has no country of origin
Line “” has no country of origin and no supplier content percentage, so it counts as zero local. That understates your percentage — review it before submitting, or you may lose a tender you actually qualify for.
WarningLocal-content declaration
Supplier certificate has expired
Line “” relies on a local-content certificate that had expired by this period. A reviewer will strike the whole line — ask the supplier for a valid certificate, or count it as imported.
WarningLocal-content declaration
Percentage is below the threshold
Local content is % against a required %. Whether to submit is your call — the figure is what the system computed.
InfoLocal-content declaration
Order exceeds the approved estimate
The customer approved and the total now stands at % over, against a % threshold. Go back to the customer before delivery: overrunning is fine once they agree, the dispute starts when they first see it on the invoice.
Default threshold: 10
WarningRepair order
Parts fitted before the customer approved
This order is quoted at with no approval recorded, and it has parts lines. Record the customer's approval (by phone or in person) before fitting — a fitted part cannot be returned.
WarningRepair order
Parts but no labour line
This order has parts and not a single labour line. A workshop earns on labour, not on parts — if the work was free of charge, enter a labour line at zero so the decision is on record.
WarningRepair order
Meter reading is lower than the last one
The reading entered is ; the last one recorded for this equipment was . Check the number: if the meter was reset or replaced, note it — otherwise the service schedules will be computed wrong.
WarningRepair order
Zero-price line on a recurring contract
Line “” has a quantity but a price of zero — it will bill zero every period until the contract ends, not just once. If the service is free within the package, leave it; otherwise fix the price now.
WarningService contract
Another contract overlaps on the same service
Contract covers the same customer and site over an overlapping period and shares a service item with this one — the same service would be billed twice every period. Review both before activating.
WarningService contract
Contract is nearing its end
It ends on — in days, inside its -day notice window, with no auto-renewal. Renew it or tell the customer before it lapses by default rather than by decision.
InfoService contract
Auto-renewal with no price escalation
This contract renews itself at zero escalation and is now year(s) old ( days). The price is frozen while costs rise — margin erosion that shows up in no report, because nothing ever “changed”.
Default threshold: 365
InfoService contract

Ready-made rules seeded with your company 6 rules

RuleSeverityDocuments
Sale line priced at zero
” leaves at quantity for nothing. If it is a sample or a gift, proceed — otherwise enter the price before posting.
WarningSales invoice
Purchase line at zero cost
” enters stock at quantity and zero cost, dragging its weighted average down — every later invoice then reports cost of sales lower than it is, and a trial balance cannot show it because it still balances.
WarningPurchase invoice
Component at zero cost
Component “” has quantity and zero cost, so the finished item enters stock under-costed — and its selling price is built on that figure.
WarningProduction order
Component with zero quantity
Component “” has zero quantity: nothing is issued from the store, so the finished item is costed on a recipe it was not made with, and the shortfall surfaces only at the stock count.
WarningProduction order
Ticket above a truck load
This ticket is m³, while a single mixer carries less than . Check the figure before the truck leaves — an extra digit here gets poured and cannot be taken back.
WarningConcrete ticket
Billing item at zero rate
Item is billed at a zero rate — approved and signed for nothing, then struck off the next application as already submitted.
WarningProgress billing