Step-by-step walkthroughs for everyday tasks. v2.0.0
Get up and running fast.
Create your account
Go to the Sign Up page and enter your email and password. No credit card required.
Use any email — verification is optional during trial.Set up your organization
After login, you'll land on the dashboard. Click Settings to set your company name, address, tax ID (TIN), and base currency.
Your TIN is required for tax-compliant invoices.Review your Chart of Accounts
Go to Chart of Accounts. 39 accounts are pre-seeded — Asset, Liability, Equity, Revenue, and Expense categories. You can add more as needed.
Most businesses never need to add accounts. The defaults cover everything.Add a customer and create your first invoice
Jump to Customers to add a customer, then go to Invoices and click New Invoice. Pick the customer, add items, and save.
Tax is calculated automatically based on your tax settings.From creating a customer to getting paid.
Add a customer
Go to Customers → Add Customer. Enter name, email, phone, and address. If this customer is tax-exempt on WHT, check the WHT exemption box.
Customer records are reusable across invoices, estimates, and credit notes.Create the invoice
Go to Invoices → New Invoice. Select the customer, set the invoice date and due date. Add line items with description, quantity, and unit price. Tax is calculated automatically.
You can also select a currency — multi-currency invoices use live exchange rates.Send the invoice
After saving, click Send. The system emails the invoice as a PDF to the customer. The status changes from DRAFT to SENT.
Configure your SMTP settings in Email first, or use the built-in mailer.Record payment
When the customer pays, go to Payments → Record Payment. Select the invoice, enter the amount and payment method (bank transfer, card, cash, etc.). The invoice status updates to PAID (or PARTIAL if underpaid).
If using Paystack, Flutterwave, or Stripe, you can also initialize a payment link that the customer can pay online.View reports
Go to Reports → Profit & Loss. The invoice revenue and any payment gateway fees are already reflected in your financial statements.
Add employees, define salaries, process payroll, and generate payslips.
Add employees
Go to Employees → Add Employee. Enter personal details, bank account info, PFA/RSA number, tax ID, and grade level. Set their status to Active.
You can track multiple statuses: Active, Suspended, Terminated, On Leave.Set salary components
Go to Salary Components → Add Component. Define earnings like Basic Salary, Housing, Transport, and Medical. Each component has an amount and an effective date.
Use effective dates for historical accuracy — past payroll runs still show the correct old amounts.Configure deductions
Go to Deduction Definitions → Add Deduction. Add PAYE, Pension (employer & employee), NHF, union dues, cooperative contributions, or HMO. Mark deductions as mandatory or optional.
Optional deductions let employees opt out individually. Mandatory ones apply to everyone automatically.Create a pay run
Go to Payroll Runs → Create Run. Set the period start, period end, and pay date. The system creates the run in DRAFT status.
A pay run captures one payment period (e.g., June 1–30 with a June 30 pay date).Process the run
Open the pay run and click Process. The system calculates each employee's gross pay, applies all deductions (PAYE using progressive tax bands, pension, NHF, etc.), and generates itemized payslips. The run status becomes PROCESSED.
PAYE is calculated using the official progressive tax bands automatically. No manual computation needed.Review and finalize
View each payslip to verify earnings and deductions. Once confirmed, mark the run as COMPLETED. Payslips are now viewable by employees.
Payslips include employer pension contributions and can be printed or emailed to employees.Configure tax settings, define rates, and generate compliance reports.
Set up tax settings
Go to Tax Settings. Enter your organization's TIN, default tax type (VAT, GST, or Sales Tax), and default rate. Enable the tax types you use: VAT/GST, WHT, CIT, PAYE, CGT.
Each organization can have different tax rules — useful for multi-entity setups.Define tax rates
Go to Tax Rates → Add Rate. Define rates like VAT 7.5%, WHT 5% (for contracts), WHT 10% (for rent), CIT 30%, etc. Each rate has a name, percentage, and effective date.
Rates are effective-dated — if the government changes VAT from 7.5% to 10%, you add a new rate without losing history.Tax is auto-calculated on transactions
When you create an invoice, the system calculates VAT (exclusive or inclusive) and WHT automatically based on your settings and the customer's exemption status.
The tax calculator endpoint can compute any tax type independently if you need to quote a customer before invoicing.Generate tax reports
Go to Tax Reports. Select report type (VAT, WHT, PAYE, CIT) and date range. The system aggregates all transactions for that period and generates a ready-to-file report.
Reports show output VAT, input VAT, net VAT payable, WHT deducted, WHT received, and PAYE liability.Log submissions and track deadlines
After filing, log the submission in the system with filing date, reference number, and status. Reminders can alert you before each filing deadline.
Penalties for late filing are auto-calculated per Nigerian regulations if you enter the assessment period.From receipt capture to vendor payment.
Capture a receipt
Go to Receipts → Upload Receipt. Snap a photo or upload an image. The OCR engine extracts date, amount, vendor, and category automatically.
Works with blurry photos, skewed angles, and low light. No manual data entry needed.Submit an expense claim
Go to Expense Claims → New Claim. Link the receipt, enter the amount, select the category, and submit for approval.
You can also create expenses directly without a claim (for non-employee expenses).Approve or reject
As an approver, go to Expenses. Review pending claims and click Approve or Reject.
Record vendor bills
Go to Bills → New Bill. Select the vendor, enter the bill date and due date, and add line items. Bills auto-post to Accounts Payable.
Convert purchase orders to bills when goods arrive — no need to re-enter data.Pay bills
Go to Payments → Record Payment, select the bill, and enter the payment details. The bill status updates to PAID and the cash/bank account is credited.
From kickoff to profitability analysis.
Create a project
Go to Projects → Add Project. Enter name, description, start and end dates, and budget. Set the status to Active.
Add tasks
Inside the project, click Tasks → Add Task. Assign team members, set deadlines, and track completion.
Log timesheets
Go to Timesheets → New Entry. Select the project and task, log hours, and submit. Managers approve or reject.
Timesheet hours flow into project costing — labor costs are calculated using employee hourly rates.Link expenses and invoices
From the project page, add expenses (materials, travel, etc.) and link invoices to the project. Everything is tracked in one place.
Check profitability
Open the project to see real-time profitability — total revenue (from linked invoices) minus total cost (labor from timesheets + expenses). Budget vs. actual comparison is shown.
This tells you instantly if a project is on track or bleeding money.Match your ledger against the bank.
Add a bank account
Go to Banking → Add Account. Enter account name, number, bank name, and opening balance.
You can track multiple accounts, credit cards, and mobile money wallets.Import transactions
If you have bank feeds connected (Mono, Okra, or Paystack DVA), transactions import automatically. Otherwise, upload a CSV statement or enter transactions manually under Transactions.
Webhook receivers sync transactions in real time from connected providers.Match and reconcile
Go to Bank Reconciliation. The system shows your ledger transactions alongside bank statement lines. Match them by selecting pairs and clicking Reconcile. Unmatched items are flagged for review.
Use the Auto-Match feature for bulk reconciliation — it matches by amount and date range.Resolve discrepancies
Unmatched transactions? You can create missing ledger entries (e.g., bank charges, interest) directly from the reconciliation screen. Once everything balances, lock the reconciliation period.
Close the books step by step.
Open the Close wizard
Go to Close. Select the year and month you're closing. The system generates a checklist of tasks grouped by category: Revenue, Expenses, Bank & Cash, Fixed Assets, Tax, Reporting, and Finalization.
Work through tasks
Each task starts as PENDING. As you complete them (e.g., "Post all invoices", "Reconcile bank accounts", "Review AR aging"), update the status to IN_PROGRESS, then COMPLETED.
The checklist is customizable — you can add your own close tasks.Run period-end checks
The system validates: Are there unposted journal entries? Unreconciled bank transactions? Unpaid invoices past due? Any discrepancies are surfaced before you lock.
Lock the period
Once all tasks are complete and checks pass, click Lock Period. No further transactions can be posted to this period. The books are closed.
Locked periods can be unlocked by an admin if needed, but it's logged in the audit trail.Track, depreciate, and dispose of company assets.
Add an asset
Go to Fixed Assets → Add Asset. Enter asset name, category (Building, Vehicle, Equipment, Furniture, Computer, Leasehold, Other), purchase cost and date, useful life in years, salvage value, and depreciation method.
Depreciation methods: Straight-Line, Declining Balance, or Sum-of-Years-Digits.Run depreciation
Open the asset and click Post Depreciation. The system calculates the period's depreciation and creates a journal entry (Debit: Depreciation Expense, Credit: Accumulated Depreciation).
You can run depreciation monthly, quarterly, or annually. The schedule tracks accumulated depreciation and net book value.Dispose or write off
When selling or retiring an asset, click Dispose. Enter disposal date and proceeds. The system calculates gain or loss on disposal and posts the accounting entries.
Gain on disposal → credited to Other Income. Loss on disposal → debited to expense.Track stock levels, movements, and manufacturing.
Add products
Go to Products → Add Product. Enter name, SKU, unit price, tax rate, and category. Mark it as a Product (inventory tracked) or Service (non-inventory).
Receive stock
Go to Inventory → Stock Movement → Receipt. Select the product, enter quantity, and location. Stock on hand increases.
Stock receipts are often created automatically when a purchase order is received.Track stock-out
When you sell inventory items on an invoice, stock is deducted automatically. You can also make manual adjustments for damaged or lost stock.
Use Stock Counts for periodic physical inventory — compare actual vs system counts and post adjustments.Manufacturing (BOM)
For businesses that assemble products, use Manufacturing. Define a Bill of Materials (what raw materials go into a finished product), create a production order, and the system converts raw materials to finished goods with cost roll-up.
Customize deduction types per organization and per employee.
Create a deduction definition
Go to Deduction Definitions → Add Deduction. Examples: NHF (2.5% of basic), Pension Employee (8% of basic), Pension Employer (10% of basic), Union Dues ($5 flat), Cooperative Contribution (amount varies).
Each deduction has a calculation type: percentage of earning, percentage of gross, flat amount, or formula-based. Mark it as mandatory or optional.Set employee exemptions
Go to Employee Deduction Exemptions. For optional deductions, you can exempt specific employees (e.g., an employee opts out of Union Dues). The exemption has a start and optional end date.
Mandatory deductions cannot be exempted — they apply to all employees automatically.Deductions apply on payroll processing
When you process a pay run, all active deductions for each employee are calculated and included in the payslip automatically. No manual entry per employee needed each month.
Effective dates let you change deduction rates mid-year without breaking past payroll history.Track petty cash funds, disbursements, and replenishments.
Create a petty cash fund
Go to Petty Cash → New Fund. Enter a name, the float amount, and assign a custodian. The fund starts with the full float balance.
Create separate funds for different departments or locations.Record a disbursement
Inside the fund, click New Disbursement. Enter the amount, recipient, purpose, and category. The fund balance decreases automatically.
Attach a receipt image for audit trail.Request replenishment
When the fund runs low, click Request Replenishment. The system generates a reimbursement request that flows through approval. Once approved, the fund returns to its float amount.
View fund reports
Each fund shows a running balance, transaction history, and aging of unreplenished disbursements. Export to PDF or Excel for your records.
Record additional charges or corrections from vendors.
Create a debit note
Go to Debit Notes → New Debit Note. Select the vendor, reference the original bill or purchase order if applicable. Add line items describing the additional charge.
Debit notes increase what you owe a vendor — use them for price adjustments, additional fees, or corrected undercharges.Apply to a bill
Link the debit note to an existing bill to increase its total, or keep it standalone. Taxes are recalculated automatically.
Post to GL
When saved, the debit note posts a journal entry debiting the relevant expense or asset account and crediting accounts payable. The audit trail captures the original and adjusted amounts.
Record capital contributions, drawings, and other equity movements.
Understand equity accounts
Your Chart of Accounts includes Owner's Equity, Retained Earnings, Drawings, Share Capital, and Share Premium accounts. All equity transactions post here.
Record owner contributions
Go to Equity Changes → New Contribution. Enter the amount, select the equity account (e.g., Owner's Capital), and optionally link to a bank deposit transaction.
Contributions increase equity and typically debit cash or bank.Record drawings or dividends
Go to Equity Changes → New Drawing. Enter the amount and select the Drawings account. The system debits the Drawings account and credits cash.
View Statement of Changes in Equity
Go to Reports → Equity Changes Report. It shows opening equity, contributions, drawings, net income transfer, and closing equity for the period.
This report is required for IFRS and GAAP financial statement packages.Define bills of materials and convert raw goods to finished products.
Define a Bill of Materials
Go to Manufacturing → BOM → New BOM. Select the finished product and list each raw material component with quantity. The system calculates the total material cost automatically.
A BOM for "Assembled PC" might include: CPU (1), Motherboard (1), RAM (2), SSD (1), PSU (1), Case (1).Create a production order
Go to Manufacturing → Production Orders → New Order. Select the BOM, enter the quantity to produce, and set the expected completion date. Status starts as PLANNED.
Start production
Change the order status to IN_PROGRESS. Raw materials are reserved from inventory. You can record actual labor hours and overhead costs against the order.
Cost roll-up compares actual vs. standard cost — variances are tracked for management review.Complete and receive finished goods
When production finishes, mark the order as COMPLETED. Raw materials are deducted from inventory, and finished goods are added with their calculated unit cost. Work-in-progress accounts are cleared.
Detect suspicious transactions, duplicate payments, and policy violations.
Open the Fraud Dashboard
Go to Fraud Analytics. The dashboard shows an overview of flagged transactions, risk scores, and alerts grouped by severity — Critical, High, Medium, and Low.
Review flagged transactions
The system automatically flags: duplicate invoices or payments (same amount, vendor, date), unusual transaction patterns, payments exceeding policy thresholds, and transactions to new or inactive vendors.
Rules are configurable — set your own thresholds in Fraud Settings.Investigate and resolve
Click any flagged item to see full transaction details, supporting documents, and related activity. Mark as REVIEWED (no issue found) or ESCALATE for further investigation.
Generate audit reports
Export a fraud analysis report with all flags, resolutions, and investigator notes. Useful for external audits and compliance reviews.
Ensure your financial reporting meets International Financial Reporting Standards.
Configure IFRS settings
Go to IFRS Compliance → Settings. Enable IFRS reporting mode, select your applicable standards (IFRS 9, 15, 16, etc.), and set the transition date.
IFRS 16 (Leases) requires right-of-use asset and lease liability recognition for all leases over 12 months.Classify financial instruments (IFRS 9)
Go to IFRS Compliance → Financial Instruments. Classify assets as amortized cost, FVOCI, or FVTPL. The system applies the correct impairment model (ECL) automatically.
Manage lease accounting (IFRS 16)
Go to IFRS Compliance → Leases. Add lease contracts with terms, payments, and discount rate. The system calculates the right-of-use asset and lease liability, generates amortization schedules, and posts journal entries.
Review compliance reports
Generate IFRS compliance checklists, disclosure notes, and reconciliation reports. Export ready-to-include disclosure data for your financial statement package.
The compliance dashboard shows your readiness score per standard — red/yellow/green for each IFRS requirement.LedgerFlow provides a RESTful JSON API for every module. Use it for custom integrations, automation, or building your own frontend.
# Login
curl -X POST http://localhost/ledgerflow/api/auth/login.php \
-H "Content-Type: application/json" \
-d '{"email":"admin@ledgerflow.com","password":"admin123"}'
All subsequent requests use the JWT token in the Authorization header:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
{
"success": true,
"status": 200,
"message": "Resources retrieved successfully",
"data": { ... }
}
All endpoints are at /api/. Each module has CRUD operations.
curl -X POST /api/invoices/index.php?organization_id=org_001 \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cust_001",
"date": "2026-06-01",
"due_date": "2026-06-30",
"items": [
{"description": "Web Development", "quantity": 1, "unit_price": 750000},
{"description": "Consulting (10hrs)", "quantity": 10, "unit_price": 50000}
]
}'
For mobile apps, use the unified gateway at /api/../mapi/index.php?route=... instead of individual endpoints.
GET /api/../mapi/index.php?route=invoices&organization_id=org_001
POST /api/../mapi/index.php?route=invoices&organization_id=org_001
| Code | Meaning |
|---|---|
| 400 | Bad Request — malformed input |
| 401 | Unauthorized — missing or invalid token |
| 403 | Forbidden — no organization access |
| 404 | Not Found — resource doesn't exist |
| 422 | Validation Error — invalid field values |
| 500 | Server Error — internal failure |
© 2026 LedgerFlow. Open source (MIT). — v2.0.0