Procurement & accounts
A requisition becomes an order, the order becomes a delivery, the delivery becomes a payment — and every one of them writes itself into a real double-entry ledger on the way past. Nobody re-types anything, and the trial balance is never a week behind.
Up and running in an afternoon · Works on a phone · Your books stay yours
The problem
Purchase orders live in one register, deliveries in a store keeper's notebook, and the accounts in a spreadsheet somebody rebuilds every quarter. By the time the three are put side by side, the money is gone and nobody can say against what. AxisFinancial is the same three things kept in one place, so the question never has to be reconstructed.
The figure on the payment voucher came off the goods receipt, which came off the purchase order, which came off the requisition. Click back along it and you reach the person who first asked for the thing, and the reason they gave.
Approve a payment and the journal is written — payable debited, bank credited, withholding tax and retention split off to their own accounts. There is one function in the whole system that writes to the ledger, and it refuses an entry that does not balance.
A store officer books goods in and never sees a rupee of the financials. The permission grid is checked in the router, not in the menu, so a URL somebody guesses gets the same answer as a link they cannot see.
For whoever does the buying
Pick the approved requisition and the purchase order fills itself in — lines, quantities, cost centre, project. Change what the vendor actually quoted, add the terms, send it for approval. The only thing anybody types is what changed.
For the person deciding
Two layers on every document: somebody who knows whether it is right, then somebody who knows whether it is affordable. Both see the value, the project and the budget position on the same screen as the button.
For finance
Project, bank, payee, cheque or online, withholding tax, retention, advance against a running bill — all on one form, all on the printed voucher, and all in the journal the moment it is approved. Nobody reconciles this afterwards because there is nothing to reconcile.
Nobody typed this. It is what the system wrote when the voucher was approved — and the tax and the retention went to their own accounts on the way, which is what makes the return at year end a report rather than a fortnight.
For the accountant
Because the documents post themselves, the books are never waiting on anybody. Trial balance, profit and loss, balance sheet, ageing, vendor and customer statements, cash out — all of them read the same ledger, and all of them are current as of the last approval anyone gave.
The shape of it
Each step is filled in from the one before it. Nothing is keyed twice, so nothing can disagree.
A requisition with lines, a project, a cost centre and a reason.
PR-2026-0007The approved requisition becomes a purchase order against a chosen vendor.
PO-2026-0004The store says what actually turned up, in full or in part, against the lines.
GRN-2026-0005A voucher against the receipt, less withholding tax and retention.
PV-2026-0001One balanced journal, written on final approval and never before.
JV · 4 linesTrial balance, ageing and the vendor's statement, all as of now.
liveThe number that matters
Committed money is what ruins construction projects, because it is spent long before it leaves the bank. Here is the whole ladder, for a company, a project or a single cost centre.
Sample workspace · all projects · Pakistani rupees
The 6,490,000 between what arrived and what has been billed is material sitting on site that no vendor has invoiced yet. It is a real liability and it is nowhere in your bank statement — which is exactly the number a spreadsheet never has.
More than buying
Every module writes to the same ledger through the same door, so adding one never means another set of books.
Warehouses, bins, materials and a moving-average value per item. Receipts, issues, transfers and adjustments, each posting to inventory as it happens.
Staff records, departments and positions, absences and personnel actions — then pay runs with your own wage types, payslips, and the journal behind them.
Vendor and customer invoices parked and posted, clearing, reversals, period control, number ranges and fixed-asset depreciation runs — SAP's shape, in words.
Cost centres and profit centres with plans against actuals, internal orders, and distribution and assessment cycles for the overheads nobody wants to argue about.
Pricing
Start free on one project, for as long as you like. Move up when there are more jobs and more people.
An afternoon. Sign up, put your company's name and letterhead in, add your people and what each role may see, list your projects and cost centres. The chart of accounts is already there and is a construction one.
If you are starting mid-project, there is an opening-balance screen so the books begin where the job actually is rather than at zero.
Because the spreadsheet is downstream of everything. Somebody types the payment into it after the fact, and every number in it is only as good as that typing. Here the voucher is the entry — there is no second act.
Everyone who signs in counts as a user, approvers included. But approving is not a full-time job, and the plans are sized for how many people are actually in the system rather than how many documents go through it.
Yes. It is ordinary PHP and MySQL with nothing to compile and no framework to keep up with — it uploads into a folder and runs. Ask us and we will send it with the installation notes.
It stays yours. Nothing is deleted when a subscription lapses; the workspace goes read-only and every report still exports to CSV. If you are self-hosted the question does not arise at all.
It was built for contractors, and it shows — retention, running bills, cost centres per package, materials on site. Any business that buys against projects will recognise most of it, but the vocabulary is a builder's.
Free for a small team, for as long as you like. No card, no call, and nothing to install — your workspace exists about ten seconds after you sign up.