Products
Complete Documentation

User Manual

Comprehensive guide to using every feature of WAZOBIA-Books

Getting Started

WAZOBIA-Books is a SaaS product

You use it in your web browser — there is nothing to install. This guide starts at First Login. If you don't have an account yet, use User Registration first, then sign in below.

First Login

After your account exists (or if you were invited by your organisation), open the WAZOBIA-Books web app and sign in.

  1. Go to the sign-in page: Open login (opens in a new tab).
  2. Use Login / Sign in if you are not already on the login form.
  3. Enter your email and password.
  4. Confirm it's you:
    • Email login code — most users receive a 6-digit code by email and enter it on the verification screen (Verify Code). Codes expire after 10 minutes and allow up to 5 attempts. If the code doesn't arrive, check your spam folder or use Go back to login for a new code and sign in again.
    • Authenticator code — if you have enabled Two-Factor Authentication (2FA), you enter the code from your authenticator app (or a backup code) instead of an email code.
    • Magic link — alternatively, choose Use magic link on the login page to receive a one-click sign-in link by email (expires in 15 minutes).
  5. After a successful login, you'll reach the dashboard.

Email-Based Login

WAZOBIA-Books uses email addresses for login instead of usernames, plus a one-time login code so a stolen password alone is not enough to access your books.

User Registration

New to WAZOBIA-Books? Create your account, then continue with First Login. Quick link: Open registration.

Creating a new account is simple:

  1. Click "Register" or "Create Account"
  2. Enter your details on the Create Your Account form:
    • First Name and Last Name
    • Business Email (used for login — the verification code is sent here)
    • Password (minimum 8 characters) and confirmation
    • Company, Legal structure, Business size, and Industry sector
    • Phone Number (optional)
  3. Click "Continue to verification"
  4. Verify your email: enter the 6-digit code sent to your email and click Verify Code. Didn't get it? Use Resend verification code (available again after a 60-second countdown).
  5. Once verified, your account is created and you're logged in

No Username Required

Your username is automatically generated from your email address. You only need to remember your email to login.

Two-Factor Authentication (2FA)

For enhanced security, 2FA is available for Owner and Accountant roles. This can be configured in Settings → Security.

Initial Setup

Before using the system, you need to configure:

  • Business Profile - Your company details
  • Tax jurisdiction - Nigeria (default), Ghana, or South Africa — drives which tax compliance screens and summaries apply
  • Chart of Accounts - Use the built-in template
  • Tax Settings - VAT, WHT rates
  • User Accounts - Team member access

System Configuration

Configure your organisation from Settings and the relevant modules — chart of accounts, tax, and integrations are all managed in the app (no command-line setup for SaaS users).

Chart of accounts

Use built-in templates and onboarding in the product to create a standard chart of accounts (GAAP/IFRS-aligned). Owners and accountants can adjust accounts under Settings and Accounting.

Install the App (PWA)

WAZOBIA-Books is a Progressive Web App (PWA) — you can install it like a native app, straight from the browser:

  • In the app: an "Install WaZoBia-Books" prompt appears shortly after you sign in on supported browsers — click Install (or Not now to dismiss).
  • Desktop (Chrome/Edge): click the Install icon in the address bar (or browser menu → Install app).
  • Android: browser menu → Add to Home screen / Install app.
  • iPhone/iPad (Safari): Share → Add to Home Screen.

Offline support & updates

When your connection drops, a banner shows "You are offline"— changes are queued and synced automatically when you're back online (watch for the "pending sync" counter and "All synced"). When a new version is released, an "Update available" overlay appears and the app refreshes itself automatically.

Dashboard

Dashboard Overview

The Dashboard is your landing page after login. It gives an at-a-glance picture of the business:

  • Total Revenue — revenue this month, with the percentage change vs the previous period
  • Total Expenses — expenses this month, with the percentage change
  • Pending Invoices — invoices awaiting payment, with a highlight when any are overdue
  • Net Profit — revenue minus expenses, with the profit margin

Below the stat cards you'll find:

  • Revenue Overview — a monthly revenue chart; switch the range between the last 6 months, last 12 months, or this year
  • Expense Breakdown — expenses by category for the selected range
  • Tax Deadlines — upcoming statutory due dates
  • Recent activity — the latest invoices and expenses

Quick Actions & Alerts

The Quick Actions card jumps straight into common tasks:

  • New Invoice — opens the invoice form
  • Record Expense — opens the expense form
  • Add Customer — opens the customer form
  • Run Payroll — opens Payroll

Tax deadline alerts

When a tax obligation is due soon or overdue, a banner appears at the top of the dashboard with the deadline and a View Details link that opens the Tax Compliance page.

API Documentation

JWT authentication, core REST endpoints (invoicing, customers, expenses, reports), error codes, and integration notes are maintained on the dedicated API documentation page.

Open the API reference

Includes authentication flow, quick-reference table, method-level paths, and error handling.

Go to API Documentation →

Invoicing & Billing

Managing Customers

To create a new customer:

  1. Go to Customers from the sidebar
  2. Click "Add Customer"
  3. Select Customer Type: Business, Individual, or Government
  4. Enter customer details:
    • Name (required) - Contact name or full name
    • Company Name - For business customers
    • Email - For sending invoices
    • Phone - Contact number
    • TIN - Tax ID Number (important for WHT)
    • Address, City, State - Location details
    • Credit Limit - Maximum outstanding balance (₦)
    • Payment Terms - Days until payment due (default 30)
  5. Click "Add Customer"

Automatic Business Assignment

Customers are automatically linked to your business. You don't need to select a business when creating customers.

Validation Errors

If there are any issues with your input, detailed error messages will be shown. Check that required fields are filled correctly.

Creating Invoices

To create a professional invoice:

  1. Go to Invoices from the sidebar
  2. Click "Create Invoice"
  3. Select a Customer from the dropdown
  4. Set Issue Date and Due Date
  5. Optionally enter a custom Invoice Number (auto-generated if left blank)
  6. Add Invoice Items by clicking "Add Item":
    • Part no. - Part number / SKU (auto-fills from the product when left empty — see Part Numbers)
    • Description - What you're billing for
    • Quantity - Number of units
    • Unit Price - Price per unit (₦)
    • Taxable - Check to apply VAT
  7. Review the calculated totals
  8. Click "Create Invoice"

Auto-Calculated Fields

The system automatically calculates: Subtotal, VAT (7.5% on taxable items), WHT (if enabled), and Total Amount. No manual math needed!

Create Customer First

If your customer isn't in the dropdown, go to Customers and add them first. Then return to create the invoice.

Invoice Status

StatusDescription
DraftBeing prepared, not sent
SentSent to customer
ViewedCustomer has viewed
PartialPartially paid
PaidFully paid
OverduePast due date
CancelledCancelled invoice

Sending & sharing invoices

  • Email — send the invoice (HTML + PDF attachment) directly from the app with Create & send, or use the my email option to send from your own mail client; resend later with Resend via app
  • Share via WhatsApp — share an invoice summary with the customer on WhatsApp
  • PDF — download the invoice PDF (includes your bank details and part numbers)
  • Copy customer pay link — a public, secure Pay invoice page where the customer can pay online once online payments are connected; receipts carry a QR code that can be checked on the Receipt Verification page

Part Numbers (SKU) on Invoice Lines

Invoice lines have a dedicated Part no. column, shown on the invoice detail view and on the PDF.

  1. Go to Invoices → New Invoice (or open a draft)
  2. On each line, fill in Part no. — or pick a product and the SKU auto-fills when the field is empty
  3. Check part numbers on the invoice detail view and on the PDF before sending
  4. Click Send — a confirmation appears showing the line count, total, and a reminder to review part numbers first
  5. Confirm only when the lines look correct

Fix a mistake before sending (still draft)

  1. Open the draft invoice
  2. Click Edit draft
  3. Change part numbers, descriptions, quantities, or prices
  4. Save, then send when ready

Already sent the wrong invoice?

Sent invoices should not be edited directly. Use Cancel a Sent Invoice (no payment yet), Credit Notes (payment exists), or the guided Correct Invoice Wizard.

VAT Calculation

VAT is automatically calculated at 7.5% on taxable items:

  • Default VAT rate: 7.5%
  • Applied only to items marked as "Taxable"
  • VAT amount shown separately on invoice
  • Total = Subtotal + VAT

Withholding Tax (WHT)

WHT can be applied to invoices when the customer withholds tax:

  • Check "Apply WHT" on the invoice
  • Default rate: 5% (can be customized per customer)
  • WHT is deducted from total amount
  • Net Amount = Total - WHT

Bank Details on Invoices

Your bank details appear on invoice PDFs and emails so customers can pay by bank transfer. To set them up:

  1. Log in to WAZOBIA-Books
  2. Go to Settings
  3. Open the Bank Details tab
  4. Click Add bank account (or edit an existing one)
  5. Fill in:
    • Bank name
    • Account name
    • Account number
    • Account type (Current, Savings, or Domiciliary)
    • Sort code (optional)
  6. Save

Primary Account

Mark one account as primary if you have several — that one is used on invoices by default. The primary account carries a "Shown on invoices" badge; click "Use on invoices" on another account to switch.

Recording Payments & Installments

Record full or partial payments against an invoice. Use this when a customer pays in installments:

  1. Go to Invoices
  2. Open a sent, partial, or overdue invoice (not draft or fully paid)
  3. Click Record payment (or Record next payment if some amount is already paid)
  4. Enter:
    • Amount (must be ≤ remaining balance)
    • Payment date
    • Payment method (e.g. bank transfer)
    • Reference (optional)
    • Notes (optional)
  5. Click Save

The invoice status updates automatically:

  • Partial — if a balance remains
  • Paid — if the balance is zero

To record another installment, click Record next payment again until the balance is ₦0.00. In the invoice detail view, check Payment history to see all installments.

Who Issued an Invoice (issued by)

The system tracks who issued each invoice. This is set automatically when you send it:

  1. Create a draft invoice as usual
  2. Click Send
  3. The system sets:
    • Issued by → the logged-in user
    • Issued by name → their name (or a custom display name if provided)

Custom name via API

When sending through the API, you can optionally pass a custom display name to use as the issued-by name.

Cancel a Sent Invoice (no payment recorded)

Use this to undo an invoice that was sent in error, as long as no payment has been recorded:

  1. Go to Invoices and open the invoice (status: Sent, Viewed, or Overdue)
  2. Confirm Amount paid is ₦0
  3. Click Cancel invoice (red button on the detail panel)
  4. Enter a reason (optional but recommended) and confirm
  5. The invoice becomes Cancelled and accounting is reversed automatically on the backend
  6. Create a new invoice with the correct items, or use the Correct Invoice Wizard for a guided re-issue flow

Payment already recorded?

Once a payment exists, Cancel invoice is no longer available — that is expected. Use a Credit Note instead.

Credit Notes

When to use: the customer already paid (or partially paid) and you need to reduce what they owe without cancelling the whole invoice.

  1. Go to Invoices and open the invoice (status Partial, Paid, or Sent with a balance due)
  2. Confirm Cancel invoice is not available (expected once a payment exists)
  3. Click Issue credit note
  4. Enter the Credit amount — defaults to the full balance due; reduce it for a partial credit
  5. Enter a reason (e.g. "Wrong item invoiced")
  6. Submit — the balance due drops and the credit appears under Credit notes on the invoice detail

Overpayments

If the customer overpaid, handle the refund outside the app or adjust per your finance process.

Correct Invoice Wizard

Use the wizard to fix specific wrong lines and re-issue the correct invoice without rebuilding it manually:

  1. Go to Invoices and open the sent invoice (not draft, not cancelled)
  2. Click Correct invoice
  3. Step 1 — Select lines: tick only the wrong lines (part no., description, and line total are shown), then click Next
  4. Step 2 — Review & reason: the wizard shows what will happen:
    • All lines selected + no payment → Cancel invoice
    • Some or all lines + payment/balance → Issue credit note (selected lines or full balance)
    • It also creates a replacement draft (full copy or remaining lines only)
    Enter a reason and click Reverse & create draft
  5. Step 3 — Done: click Edit draft to open the new draft
  6. Add or fix lines (correct part numbers, products, quantities, prices)
  7. Review and Send the replacement invoice to the customer

What the wizard does for you

  • • Reverses the original (cancel or credit note, depending on payment)
  • • Clones a new draft so you don't rebuild the invoice from scratch
  • • Opens that draft ready for correction

Recurring Invoices

Set up automatic invoice generation for regular billing:

  1. Go to Invoicing → Recurring Invoices
  2. Create recurring invoice template
  3. Set frequency (Daily, Weekly, Monthly, Quarterly, Annually)
  4. Define start date and end date (optional)
  5. System automatically generates invoices on schedule

Service Contracts

Use Contracts in the sidebar to track ongoing service agreements (maintenance, support, retainers) and their renewal dates:

  1. Go to Contracts and click to add a contract
  2. Fill in:
    • Customer (and optionally the related product/service)
    • Contract name and description
    • Start date and end / renewal date
    • Billing frequency — Yearly, Quarterly, Monthly, or Custom
    • Amount and currency
    • Optional customer reminders — automatically remind the customer at 30 / 14 / 7 days before renewal, by email (and WhatsApp where enabled)
  3. Click Create contract

The contracts list shows a status badge per contract (Active, In notice period, Expired, Cancelled, or Renewed) and lets you filter by status or by renewal window (renewing in 30 / 60 / 90 days), so you can chase renewals before they lapse. Use the Renew action on a contract to roll it into its next term.

From a contract you can also Create draft invoice for the current term, or use Schedule recurring to link the contract to a recurring invoice schedule so billing happens automatically.

Expense Management

Managing Vendors

  1. Go to Expenses → Vendors → Add Vendor
  2. Enter vendor details:
    • Name, Email, Phone
    • TIN (Tax Identification Number) - Important for WHT compliance
    • Address
  3. Save

Expense Categories

  1. Go to Expenses → Expense Categories
  2. Create categories like:
    • Office Supplies
    • Travel & Entertainment
    • Professional Fees
    • Utilities
    • Marketing
  3. Mark as Tax Deductible if applicable

Recording Expenses

  1. Go to Expenses → Expenses → Add Expense
  2. Select: Vendor, Category, Business
  3. Enter: Description, Amount, Date, Payment Method
  4. Mark as Tax Deductible if applicable
  5. Save

Recurring Expenses

For expenses that repeat (rent, subscriptions, etc.):

  1. Go to Expenses → Recurring Expenses
  2. Set up: Description, Amount, Frequency, Start Date
  3. System auto-generates expenses on schedule

Bills & Suppliers

Bills (accounts payable) track what you owe suppliers — with VAT, withholding tax, approval, and payment in one flow. This is separate from quick Expenses: use bills for supplier invoices you receive and pay on terms.

Managing Suppliers

  1. Go to Suppliers from the sidebar
  2. Add or open a supplier to manage contact details, TIN (important for WHT), and address
  3. Open a supplier to see their detail view with bill history and outstanding balances

Creating Vendor Bills

  1. Go to Bills from the sidebar and click New Bill
  2. Select the Vendor (or use + Add New Vendor)
  3. With advanced inventory, you can optionally use Convert from Purchase Order to build the bill from a received PO
  4. Enter the Vendor Invoice Number, Bill Date, and Due Date
  5. Add Items — per line: optional product/service, description, quantity, and price
  6. Set the VAT Rate (%) (defaults to your business's configured rate, e.g. 7.5%)
  7. Optionally tick Apply Withholding Tax (WHT) and choose the WHT rate (e.g. services, 5%). Totals are calculated as: Total = Subtotal + VAT − WHT
  8. Click Create Bill

Bills linked to purchase orders

Stock is recognised when the PO is received — paying the bill records the payable and cash without adding stock again. The Bills page also offers an AP Aging view of what you owe by age.

Bill Statuses & Approval

Bills move through these statuses (also available as list filters):

StatusDescription
DraftBeing prepared; use Submit for Approval when ready
Pending ApprovalSubmitted, waiting for an approver
ApprovedApproved (via Approve Bill) and ready to pay
Partially PaidSome payments recorded; balance remains
PaidFully paid
OverduePast the due date
CancelledCancelled bill

Owners and accountants (or any role granted bill-approval permission) can approve pending bills — from the Bills list or centrally from the Approvals queue.

Paying Bills & Remittance Advice

  1. Open an approved bill and click Record Payment
  2. Enter the Amount, Payment Date, and Payment Method (Cash, Bank Transfer, Card Payment, Cheque, Mobile Money, or POS Terminal), plus an optional reference and notes — partial payments are supported and the bill shows Partially Paid until fully settled
  3. After recording a payment, use the remittance advice actions — Download, Email to vendor, or WhatsApp — so the supplier can match your payment to their invoice

Payroll Management

Adding Employees

  1. Go to Payroll → Employees → Add Employee
  2. Enter personal details:
    • First Name, Last Name
    • Email, Phone
    • Employee ID
  3. Employment details:
    • Job Title, Department
    • Employment Type (Full-time, Part-time, Contract)
    • Hire Date
  4. Salary information:
    • Basic Salary
    • Allowances (if any)
  5. Save

Payroll Periods

  1. Go to Payroll → Payroll Periods → Add Payroll Period
  2. Enter:
    • Period Name (e.g., "January 2025")
    • Start Date
    • End Date
    • Pay Date
  3. Save

PAYE Calculation

The system automatically calculates PAYE based on Nigerian tax bands:

Annual IncomeTax Rate
First ₦300,0007%
Next ₦300,00011%
Next ₦500,00015%
Next ₦500,00019%
Next ₦1,600,00021%
Above ₦3,200,00024%

Consolidated Relief Allowance (CRA)

CRA is automatically applied: Higher of ₦200,000 or 1% of gross income, plus 20% of gross income.

Pension & NHF

Automatic statutory deductions:

  • Pension (Employee): 8% of basic salary
  • Pension (Employer): 10% of basic salary
  • NHF: 2.5% of basic salary

Net Salary Formula:

Net = Gross - PAYE - Pension (8%) - NHF (2.5%) - Other Deductions

Generating Payslips

  1. Go to the Payroll Period
  2. System automatically generates payslips for all active employees
  3. Review each payslip
  4. Mark as "Paid" when payment is made
  5. Export or print payslips

Inventory Management

Adding Products

  1. Go to Inventory → Products → Add Product
  2. Enter:
    • Name, SKU, Barcode
    • Description
    • Product Type (Product, Service, Digital)
    • Category
  3. Pricing: Cost Price, Selling Price
  4. Inventory settings:
    • Track Inventory: Yes/No
    • Quantity on Hand
    • Reorder Level
    • Reorder Quantity
  5. Tax: Mark as Taxable for VAT
  6. Save

Stock Audit & Reconciliation

Use Stock auditon the Inventory page to compare each tracked product's quantity on hand with the total implied by stock movements. This helps you catch data issues before a physical count or external audit.

  1. Go to Inventory
  2. Click Stock audit
  3. Review the summary: when everything matches, you'll see confirmation that on-hand quantities align with movements
  4. If there are mismatches, use Show mismatches only to focus on products where on-hand quantity differs from the movement total

Tip: Investigate mismatches by reviewing recent receipts, adjustments, and sales before posting large corrections.

Stock Movements & Adjustments

For general movements (purchases, sales, transfers), go to Inventory → Stock Movements → Add Stock Movement and choose the movement type. Quantities update automatically.

Adjust stock (from the product list)

To correct quantity on hand from the Inventory screen, use Adjust stock on a product. You must select a reason code and may add optional notes for audit purposes:

  • Cycle count correction
  • Damage / write-off
  • Shrinkage / theft
  • Return to supplier
  • Customer return
  • System / data correction
  • Other

Approval for large adjustments: Your organisation can set an inventory adjustment approval threshold. When an adjustment exceeds that amount, it is submitted for approval instead of applying immediately. Owners or accountants see Pending stock adjustments on the Inventory page and can Approve or Reject each request.

Purchase Orders & Vendor Bills

  1. Go to Inventory → Purchase Orders → Add Purchase Order
  2. Select Vendor
  3. Add lines: Product, Quantity, Unit Price
  4. System calculates totals; set status (e.g. Draft, Sent) as your process requires
  5. Receiving goods: When you receive against the PO, enter the unit cost per line. Stock and product cost (FIFO or average, depending on settings) update from the receipt. The system prevents receiving more than ordered unless your process allows it.
  6. Bills linked to a PO: If a vendor bill is tied to a purchase order, stock is normally recognised when you receive the PO. Paying the bill records accounts payable and cash—it does not add stock again, so you avoid double-counting inventory.

Waybills & dispatch

Waybills are delivery notes tied to inventory dispatch. The list screen explains: delivery notes linked to inventory dispatch — you confirm dispatch to post stock out. Waybills require the advanced inventory feature (typically Grow tier and above). If your plan does not include it, the app shows an upgrade message with a link to Subscription.

Waybills list

  • Open Waybills in the sidebar. Use New waybill to start a blank document.
  • Search by waybill number, carrier, or customer. The table shows date, status, customer, linked invoice (if any), and Open to edit.

Creating a waybill

  • From scratch: New waybill opens the editor. Add header fields (waybill date, carrier, customer, delivery address, notes) and line items: inventory product, quantity, optional serial / batch, and per-line notes. You need at least one line with a product — add products under Inventory first if the editor warns there are no products.
  • From an invoice: on the Invoices screen, you can create a waybill draft from invoice when advanced inventory is enabled. Each invoice line must be linked to an inventory product (use “Link products to lines” or similar on the invoice if needed). The app creates the draft and opens the waybill editor. Alternatively, opening /waybills/new?invoice=<id> triggers the same server flow.
  • Save draft creates or updates the waybill without moving stock. While status is Draft, you can edit lines, Cancel the waybill, or Delete a draft.

Statuses & stock

  • Draft — editable; stock not dispatched yet.
  • Confirm dispatch (available once the waybill is saved) posts the outbound movement and records COGS using your costing method (FIFO or average). Success toast: stock dispatched, movement recorded.
  • Dispatched — header and lines are locked; stock has left.
  • Cancel — cancels a draft waybill (does not dispatch).
  • Void & restore stock — for a dispatched waybill, voids it and restores stock (irreversible; you must confirm in the dialog).
  • Cancelled / Voided — shown as distinct terminal states in the list.

Share & export

On a saved waybill, the toolbar includes:

  • PDF and JPEG — download a generated document/image from the server.
  • Print — prints a formatted Delivery waybill layout (line items, SKU, serial/batch, notes).
  • Email — opens your mail client with a pre-filled subject and a text summary plus a link to the waybill in WaZoBia Books.
  • WhatsApp — shares a summary; on supported devices the app may attach the waybill JPEG via the system share sheet, otherwise it falls back to opening WhatsApp with the text.

Sales vs dispatch vs payment

For inventory products, outbound quantity can follow dispatch (waybill confirmed) or invoice payment, depending on how you operate. The app avoids removing the same physical quantity twice: goods are not deducted again on payment when they were already covered by a confirmed waybill—keeping stock and COGS aligned with operations.

Costing Methods

WAZOBIA-Books supports two costing methods. Receipts, adjustments, and dispatch all feed into the same costing rules for COGS and inventory valuation.

FIFO (First In, First Out)

  • Oldest stock sold or dispatched first
  • Cost follows purchase and receipt order
  • Often used for perishable or serialised goods

Average Cost (AVG)

  • Weighted average of costs from receipts and purchases
  • Cost = Total Cost / Total Quantity
  • Straightforward when many similar items move through inventory

Fixed Assets

Open Assets in the sidebar to keep a fixed-asset register (equipment, vehicles, furniture) and post depreciation to the general ledger automatically. Fixed assets are available on Grow tier and above — lower plans see an upgrade prompt.

Asset Register

  1. Go to Assets and use Create Asset
  2. Fill in:
    • Asset number, asset name, and category
    • Purchase date, purchase cost, and salvage value
    • Useful life (years)
    • Depreciation method — Straight line, Declining balance, or Units of production
    • Asset account, depreciation expense account, and accumulated depreciation account (from your chart of accounts)
  3. Save — the asset appears in the register, and the summary cards show Assets, Total Cost, Book Value, plus Depreciation Expense (YTD) and an Asset Rollforward (YTD)

Bulk import

Migrating a long asset list? Use the Import Center — Fixed Assets is one of the supported import types.

Asset Categories

Create categories (for example Office Equipment, Vehicles) to group assets. Each category can carry a default useful life so new assets in that category start with sensible depreciation settings.

Depreciation

  1. Choose a period end date
  2. Click Preview Depreciation — the Depreciation Preview shows which assets will be depreciated and by how much, without posting anything
  3. Review the preview, then click Run Monthly Depreciation — the app posts depreciation journal entries for all eligible assets and confirms how many were posted

You can also post depreciation for a single asset from its row. The depreciation schedule table shows posted periods per asset, and the depreciation expense report summarises the expense for any date range.

Disposing Assets

  1. On the asset's row, click Dispose
  2. Enter the disposal proceeds (₦, e.g. the sale amount) when prompted
  3. Confirm — the asset is marked disposed, removed from active depreciation, and listed under Disposals

Post depreciation first

Run depreciation up to the disposal date before disposing, so the gain or loss on disposal is calculated against an up-to-date net book value.

Bank Reconciliation

Open Bank Recon in the sidebar (full name: Bank Reconciliation). Bank operating accounts are not managed under Settings — you add and manage them here, import statement lines, and match them to accounting entries (journal lines on your linked bank/cash accounts in the chart of accounts).

Bank accounts

  • If you have no accounts yet, use Add bank account and enter bank name, account number, currency, optional opening balance, and link the account to the correct chart-of-accounts code (cash/bank account). For a full general ledger opening across all accounts, use Accounting → Journal Entries instead (see Opening balances) so cash at bank is not counted twice.
  • Use the Account for this reconciliation dropdown or click a card in the grid to choose which bank account you are working on. Imports and the statement line list always apply to the selected account.
  • Add another account is available when you already have at least one bank account.

The page shows summary tiles: Total Transactions, Matched, Unmatched, and Net Movement, plus optional unmatched aging buckets (0–30, 31–60, 61–90, over 90 days) when the API provides them.

Import CSV / OFX

  1. Select the bank account you want to import into.
  2. Click Import CSV / OFX in the header, choose your file, and upload.
  3. The app attaches the file to a bank statement for that account and parses rows into statement lines (date, description, reference, amount). Supported formats depend on your deployment (typically CSV and OFX).
  4. After import, review any toast messages: partial imports may list row errors; the API may also return balance validation hints if the file does not reconcile to expected balances.
  5. Use Refresh on the filter row to reload statement lines from the server.

Reconciliation sessions & validate balance

Start session opens a formal reconciliation period: you set a date range and closing balance (and optionally a start date). Sessions appear under Formal reconciliation sessions with a status; when a session is in progress, you can Complete session once the period is fully reconciled.

Validate Balancecalls the server to check that the bank account's books balance as expected for reconciliation; you get a clear pass/fail (and difference if any).

These actions sit in the top toolbar next to import and auto-match (when an account is selected).

Matching & reconciliation tools

Auto-Match runs across the selected bank account: the server attempts to match many statement lines to existing ledger journal entries in one go (using a confidence threshold configured in the app, e.g. 85%). Use this after import to clear obvious matches quickly.

For each statement line, status can be:

  • Matched — linked to a journal entry; you can Unmatch if needed.
  • Unmatched — needs your action.
  • Partial — partially matched (review confidence; you can unmatch).
  • Ignored — excluded from matching (e.g. duplicates or non-business lines).

Per-line actions (unmatched lines)

  • Find matches (magnifying glass) — fetches suggested journal entries with confidence %; pick a suggestion or use Match to open the full match dialog.
  • Match — choose which ledger entry to link to the line (invoices/expenses in the app post to the ledger; matching ties the bank line to those entries).
  • Split — split one bank line across multiple ledger entries when one amount covers several items.
  • Transfer — detect/match inter-bank transfers using the transfer-match flow (counterparty cash account when applicable).
  • Ignore — mark the line as ignored so it no longer appears as unmatched.

Bulk actions: select multiple lines with checkboxes, then match in bulk where the best suggestion meets the minimum confidence (e.g. 72%+) or ignore many lines at once. Run Find matches on lines first so bulk match has suggestions.

From the match dialog you can also create a transaction from the line (e.g. income or expense) so the system posts a journal entry and matches the line in one step when the deployment allows it.

Use search and the status filter (All / Unmatched / Matched / Partial / Ignored) to focus the table. Match History at the bottom lists recent match/unmatch actions for the account.

Financial Reports

Profit & Loss Report

  1. Go to Reports → Profit & Loss
  2. Select: Date Range, Business
  3. View:
    • Revenue (Income)
    • Cost of Goods Sold
    • Gross Profit
    • Operating Expenses
    • Net Profit

Balance Sheet

  1. Go to Reports → Balance Sheet
  2. Select date
  3. View:
    • Assets
    • Liabilities
    • Equity
    • Total Assets = Liabilities + Equity

Cash Flow Statement

  1. Go to Reports → Cash Flow
  2. Select period
  3. View:
    • Operating Activities
    • Investing Activities
    • Financing Activities
    • Net Cash Flow

VAT Return

  1. Go to Reports → VAT Return
  2. Select period
  3. View:
    • Output VAT (on sales)
    • Input VAT (on purchases)
    • VAT Payable/Receivable
    • Export for Nigeria Revenue Service (NRS) filing

Executive Pack (PDF)

From Reports, you can generate a combined Executive pack PDF for a selected date range. Tick the sections you need (for example finance, HR/payroll, assets), then generate and download a single PDF for management or stakeholders.

Compare Periods, Presets & Scheduled Reports

Compare Periods

Tick Compare Periods on a report to see each figure alongside the previous period with the percentage change (for example revenue +12.5% vs previous). Period comparison is available on Grow tier and above.

Save Preset

Click Save Preset to store the current report configuration (report type, date range, grouping, comparison) under a name, so you can re-run the same view later without re-selecting everything.

Scheduled reports

  1. On Reports, click Schedule Report
  2. Fill in the Schedule Name, Report Type (Profit & Loss, Balance Sheet, Cash Flow, VAT Return, or Tax Summary), Frequency (Daily, Weekly, Monthly, Quarterly), Format (PDF or CSV), Timezone (default Africa/Lagos), and the recipient email addresses (comma-separated)
  3. Click Create Schedule — the report is generated and emailed automatically on schedule
  4. Click View Schedules (or open Report Schedules) to manage them: see the next run and last status, Pause / Resume a schedule, or trigger a Test Run

Scheduled and custom reports are part of the top-tier plan features.

Tax Compliance

Tax Compliance page & tabs

Open Tax Compliance in the sidebar. The screen is organised into tabs (exact labels match the app):

  • Obligations — upcoming and overdue tax obligations, amounts, and status
  • Tax profile — your business's tax registration and configuration details used by the calculators and filings; review and keep these up to date
  • Change history — an audit trail of changes made to your tax configuration over time
  • Tax rates — reference rates for your jurisdiction (for Nigeria, rates align with Nigeria Tax Act (NTA) 2025 where applicable, including VAT, WHT, PAYE bands, CIT, development levy, NHF, pension)
  • Filing history — past filings and NRS-related submission records
  • WHT certificates — create and manage withholding tax certificate records
  • Tax calendar — key due dates by period
  • Reminders — custom reminders for tax types and due dates
  • Tax Intelligence (shown when the business tax jurisdiction is Nigeria) — Nigeria-specific tax insights and guidance based on your data
  • NG remittance (shown when the business tax jurisdiction is Nigeria) — Nigeria-specific remittance summaries (PAYE, pension employee/employer, NHF, WHT on purchases), due-date hints, and shortcuts (for example opening the VAT return in Reports)

Tax Calculator

On the Tax Compliance page, click Tax Calculator (top of the screen) to open the interactive calculator. Choose a tax type, enter amounts, and run the calculation — results are computed using the same rules as the live app (via the tax API where available).

Supported types include (among others):

  • VAT (7.5%)
  • WHT — services (5%)
  • CIT — company income tax (including small-company relief where applicable)
  • PAYE (monthly)
  • Pension and NHF (2.5%)
  • Development levy (NTA 2025)
  • NIT levy (prescribed companies)
  • Stamp duty (e-transfer model)

Business tax jurisdiction

In Settings → Business, set the Tax jurisdiction for each business (for example Nigeria, Ghana, or South Africa). The app uses this to show the right tax compliance experience — for example Nigeria-specific remittance summaries and Nigeria Revenue Service (NRS) options where applicable.

Ghana and South Africa selections use placeholder or evolving configurations; full statutory coverage for those markets may expand over time. When in doubt, confirm calculations against your adviser and local rules.

Nigeria Revenue Service (NRS) e-invoicing (Nigeria)

For businesses with tax jurisdiction set to Nigeria, open Settings → Business and use the Nigeria Revenue Service (NRS) E-Invoicing tab.

  • Turn e-invoicing on or off per business
  • Optional sandbox mode so the server can call NRS sandbox URLs instead of production (when your deployment is configured for it)
  • Store API credentials per business (or rely on server defaults where supported)
  • Use Test connection to verify credentials and that the server can reach the NRS token/auth endpoint

Deployment note

Live NRS connectivity depends on server configuration (for example enabling NRS e-invoicing on the backend and setting the correct base URLs). Your hosting or IT partner configures production vs sandbox endpoints.

VAT Management

VAT on Sales:

  • Automatically calculated on invoices
  • Rate: 7.5% (default)
  • Can be customized per invoice

VAT on Purchases:

  • Recorded on expenses
  • Input VAT can be claimed
  • Net VAT = Output VAT - Input VAT

WHT Certificates

Withholding Tax Rates:

TypeRate
Services5%
Contracts5%
Consultancy10%
Dividends10%
Interest10%
Rent10%

PAYE Management

  • Automatically calculated in payroll
  • Based on Nigeria Tax Act (NTA) 2025 marginal annual bands (as implemented in the app)
  • Remitted monthly to Nigeria Revenue Service (NRS)

Filings, filing history & NRS submission history

  1. Go to Tax Compliance and use the Obligations tab to work on upcoming filings
  2. Open Filing history to review past filings, statuses, and NRS references
  3. Create or update filings for VAT, WHT, PAYE, CIT, and other supported types as your deployment allows
  4. For Nigeria: where the deployment supports it, you can submit to Nigeria Revenue Service (NRS) from the filing flow, or record a manual submission when you filed outside the app
  5. Each filing can show NRS submission history — an immutable audit trail of API and manual NRS-related submissions

Why this matters

The audit history gives you a clear record of what was sent or recorded for NRS, which helps reconciliation and compliance reviews.

NG remittance (Nigeria)

When your business tax jurisdiction is Nigeria, an extra tab NG remittance appears on Tax Compliance. It summarises statutory remittances (for example PAYE, pension, NHF, VAT, WHT) and due-date guidance for the selected period, and can link to the VAT return in Reports for the same month where applicable.

Accounting

In the app, this area is under Accounting in the sidebar (route /accounting). Here you manage your chart of accounts, journal entries, trial balance, balance sheet (same screen), and closing entries. The underlying books are your general ledger; individual rows are accounts (not a separate "Ledger" menu). You can deep-link a tab with a query string, for example /accounting?tab=chart-of-accounts or tab=journal-entries.

Chart of Accounts

In the app: go to AccountingChart of Accounts tab to view, search, filter, and add or edit accounts (each account has a code, name, type, and normal balance).

Server / developer seed (optional):

python setup_chart_of_accounts.py

This can seed 70+ standard GAAP/IFRS-style accounts on a new deployment.

Account Types:

  • Assets (1000-1999): Cash, Bank, Inventory, etc.
  • Liabilities (2000-2999): Accounts Payable, Loans, etc.
  • Equity (3000-3999): Capital, Retained Earnings
  • Income (4000-4999): Sales, Service Revenue
  • Expenses (5000-5999): COGS, Operating Expenses

Opening balances

WaZoBia Books does not use a separate “opening balance wizard.” You load balances in one of two ways: a bank-only amount when you create an operating bank account, or a full general ledger (GL) opening using one balanced manual journal entry (recommended when migrating from spreadsheets or another system).

A — Full GL opening (trial balance / go-live)

Use this when you need every balance sheet account (and optional detail) to match your opening trial balance as at a chosen date.

  1. Prepare an opening trial balance from your prior records (Excel, old software, or accountant sign-off).
  2. Go to AccountingChart of Accounts and ensure every account you need exists (Add Account if required). You need write permission (typically owner, accountant, or staff).
  3. Pick your opening date (often the first day you operate in WaZoBia Books, or the day after your last close elsewhere). Ensure that date falls in an open fiscal period — closed periods block new postings.
  4. Go to AccountingJournal EntriesNew Journal Entry.
  5. Set Date to the opening date and Memoto something clear (e.g. "Opening balances — as at [date]").
  6. Add one line per non-zero opening trial balance account:
    • Debit each account that had a debit balance on your opening TB (typically assets).
    • Credit each account that had a credit balance (typically liabilities and equity).
  7. Split equity across the right accounts (capital, retained earnings, etc.) to match your real opening statement — do not use a vague lump unless that is what your TB shows.
  8. Confirm total debits = total credits; save when the form shows the entry as balanced.
  9. Check AccountingTrial Balance and Balance Sheet with the as-of date set to your opening date (or latest after posting). Totals should match your opening TB and assets = liabilities + equity.

B — Bank account opening balance only

For cash at one bank on day one without posting the rest of the GL here:

  1. Open Bank Recon in the sidebar.
  2. Use Add bank account and enter the optional Opening balance field together with the ledger account code that matches your chart (e.g. bank/cash).
  3. Save.

Avoid double-counting cash at bank

Do not put the same bank balance in both a full opening journal (debiting your bank/cash GL account) and the opening balance on Add bank account unless your process explicitly clears one side. Choose one source of truth per bank GL line, or ask your accountant to align the two.

Journal Entries

  1. Go to Accounting → open the Journal Entries tab → add a journal entry
  2. Enter: Date, Memo/Description, Currency (default: NGN)
  3. Add Journal Lines:
    • Account (chart of accounts code)
    • Debit Amount
    • Credit Amount
  4. System ensures debits = credits
  5. Save

Trial Balance & Balance Sheet

  1. Go to AccountingTrial Balance or Balance Sheet tab
  2. Select date
  3. View:
    • All accounts
    • Debit balances
    • Credit balances
    • Total debits = Total credits

Closing Entries & period close

Close an accounting period by posting period-end closing entries (revenue and expense to retained earnings). Approvers can also reverse closing where the deployment allows.

  1. Go to AccountingClosing Entries tab
  2. Choose the period end date and run close period (or equivalent)
  3. After closing, new activity belongs in the next period; use reverse closing only with care — it affects financial statements

Important

Period locks are enforced at the model level and cannot be bypassed. Always ensure all entries are complete before locking a period.

Import Center

Open Import Center in the sidebar to migrate data from spreadsheets or other software using CSV / Excel files. The workflow is deliberately safe: upload, validate, review errors, then execute.

What You Can Import

  • Customers
  • Vendors
  • Chart of Accounts
  • Journal entries (debit/credit rows)
  • Invoices (created as drafts, one line per row)
  • Fixed Assets
  • Products (inventory)
  • Services (non-stock)
  • Staff

For each type, use the Template button to download a correctly formatted starting file.

Upload, Validate, Execute

  1. Choose the data type and click Create Workflow
  2. Select the import job, then Choose File (.csv, .xlsx, .xlsm) and click Upload — or paste CSV content directly
  3. Click Validate — the app checks every row and reports errors (with row numbers) without writing anything; progress is shown for large files
  4. Fix any reported issues in your file and re-upload if needed
  5. Click Execute to run the import
  6. Review the job list for status and history of past imports

Two safety options are available before executing: "Roll back entire execute on any row error" (all-or-nothing imports) and "Strict schema" (reject unknown or unmapped columns).

Nothing is written until you Execute

Validation is a dry run — you can upload and validate as many times as you need before committing.

Mapping Profiles

If your file's column names don't match the template, define a column mapping that tells the importer which column feeds which field. Save it with Save Profile as a reusable mapping profile per import type — and optionally tick "Set saved profile as default for this import type" so repeat migrations (for example monthly journal loads) reuse it automatically.

Migrating from Sage

The Import Center understands Sage cash book exports: upload the file (.xlsx or CSV with Date, Debit, Credit, Reference columns) under Journal entries and it is converted automatically — you then Validate and Execute as usual. A dedicated Sage import history lists previous Sage imports, and Delete imported journals lets you reverse a Sage import if something was wrong.

Backup & Data Export

Backup Overview

WAZOBIA-Books provides secure backup options to protect your business data:

How Backup Works

  • • Your primary data is stored securely in our cloud database
  • • You can backup your data to your own Google Drive
  • • Backups are stored as JSON files you own and control
  • • Enable automatic nightly backups for peace of mind

What gets backed up:

  • Business profile and settings
  • All customers and vendors
  • Invoices and payments
  • Expenses and categories
  • Employee and payroll data
  • Inventory and products
  • Journal entries and chart-of-accounts data
  • Tax filings and compliance records

Database Storage & OneDrive

In Settings → Backup & Storage, the Database Storage section lets you choose where your database lives:

  • Cloud database (default) — stored securely in the WAZOBIA-Books cloud
  • Your own Google Drive
  • Your own OneDrive

The same tab has Connect Google Drive and Connect OneDrive cards for linking your accounts. Cloud storage options depend on your plan — Google Drive backup is available from Grow, and OneDrive on the top tier.

Connect Google Drive

To enable backups to your Google Drive:

  1. Go to Settings → Backup & Export
  2. Click "Connect Google Drive"
  3. Sign in with your Google account
  4. Click "Allow" to grant access
  5. You'll be redirected back to WAZOBIA-Books

Your Data, Your Control

A folder called "WAZOBIA-Books-Data" will be created in your Google Drive. All backups are stored there and you have full access to them.

Privacy Note: WAZOBIA-Books only has access to files it creates in your Drive. We cannot see or access any other files in your Google Drive.

Manual Backup

Create a backup anytime you want:

  1. Go to Settings → Backup & Export
  2. Ensure Google Drive is connected (green status)
  3. Click "Backup Now"
  4. Wait for the backup to complete
  5. You'll see a success message with the backup name

When to Create Manual Backups

  • • Before making major changes to your data
  • • At the end of each business day
  • • Before closing a fiscal period
  • • Before tax filing deadlines

Backup File Naming:

  • backup_manual_20251218_143022.json - Manual backup with timestamp
  • latest_backup.json - Always contains the most recent backup

Automatic Backups

Enable automatic daily backups for worry-free data protection:

  1. Go to Settings → Backup & Export
  2. Find the "Automatic Backups" toggle
  3. Switch it to ON
  4. Backups will run automatically at 2:00 AM daily

Recommended

We highly recommend enabling automatic backups. This ensures your data is always protected without requiring any manual action.

Auto-backup features:

  • Runs every night at 2:00 AM (Lagos time)
  • Creates timestamped backup files
  • Updates latest_backup.json automatically
  • Sends notification if backup fails

View & Download Backups

Access your backup history:

  1. Go to Settings → Backup & Export
  2. Scroll to "Backup History"
  3. View list of all backups with dates and sizes
  4. Click on any backup to:
    • Download: Get the JSON file
    • View: See backup contents
    • Delete: Remove old backups

Access directly in Google Drive:

  1. Open Google Drive (drive.google.com)
  2. Navigate to WAZOBIA-Books-Data folder
  3. View all your backup files
  4. Download or share as needed
Backup TypeFile Name Pattern
Manualbackup_manual_YYYYMMDD_HHMMSS.json
Automaticbackup_auto_YYYYMMDD_HHMMSS.json
Latestlatest_backup.json

Export Data

Export your data for use in spreadsheets (Excel, Google Sheets):

  1. Go to Settings → Backup & Export
  2. Click "Export Data"
  3. Select what to export:
    • All Data
    • Invoices Only
    • Expenses Only
    • Payroll Only
    • Custom Selection
  4. Choose format: JSON or CSV
  5. Click "Download"

No Google Drive Required

Data export works without Google Drive connection. You can export your data anytime directly to your computer.

Common uses for exported data:

  • Create custom reports in Excel
  • Share data with your accountant
  • Import into other software
  • Audit and compliance purposes
  • Data analysis and visualization

WaZoBia Invoice ↔ WAZOBIA-Books

WaZoBia-Invoice is the operational app (sales, receipts, inventory in the field). WAZOBIA-Books is the accounting back office. They work as one workflow: Invoice writes JSON exports into your Google Drive (WaZoBia-Invoice folder), and Books imports those files into the general ledger via POS Integration. You can optionally notify Books immediately with an export-ready webhook instead of waiting for the next scheduled sync.

How the link works

  1. Same cloud folder: Invoice uploads data to Google Drive (default app folder name: WaZoBia-Invoice). Books must be configured to read the same folder for that shop's POS location (cloud path / provider on the location record).
  2. Matching JSON: Books discovers *.json files in that folder. The recommended path is a single merged bundle file named like wazobia-books-export-*.json in the root of that folder (written after a successful full sync when the optional Books bundle export is enabled in Invoice).
  3. Location code: Each POS shop in Books has a location code (e.g. LAG-001). The same value must be entered in Invoice's Books webhook settings so the webhook targets the correct shop.
  4. Webhook (optional): After a new export is saved, Invoice can POST to Books /api/v1/pos/webhooks/export-ready/ with a shared secret so Books queues a sync immediately.

One product, two apps

You do not merge the codebases — you align Drive folder, location code, and (if used) webhook URL + secret. Your Books deployment must allow browser calls from your Invoice origin (CORS); see Hosting & security below.

WaZoBia-Invoice (shop app)

  1. Connect Google Drive: In Invoice, open Settings and connect Google Drive / cloud backup so the app can write to your WaZoBia-Invoice folder (or the folder your deployment uses).
  2. Run a full sync: Perform a full cloud sync so customers, invoices, receipts, inventory, and related JSON land in Drive. This is what Books will list and import.
  3. Books bundle (recommended for Books import): When enabled, Invoice also uploads a single merged wazobia-books-export-*.json after a successful full sync. Your build may expose a toggle; otherwise enabling may require setting browser localStorage key wazobia_books_bundle_export to "true" — ask your administrator for the supported method in your environment.
  4. Webhook settings: Open Settings → the WAZOBIA Books tab (or /settings?tab=wazobiaBooks).
    • Webhook URL: full URL to your Books API, e.g. https://your-books-api.example.com/api/v1/pos/webhooks/export-ready/
    • Webhook secret: must match the Books server environment variable POS_EXPORT_WEBHOOK_SECRET
    • Location code: must match the POS location code configured in WAZOBIA-Books for this shop
    • Business ID (optional): Books business UUID — use if the same location code exists on more than one business
  5. Turn on notify on export if you want Invoice to call the webhook automatically after a bundle upload; use Test on that screen to confirm 202 Accepted or 200 OK from Books.

Webhook credentials are stored in the browser (localStorage) in standard setups — fine for single trusted devices; enterprises may prefer a server-side proxy.

WAZOBIA-Books (accounting)

  1. Open POS Integration: In the Books web app, go to POS Integration (sidebar). Complete any guided setup to connect Google Drive (or the cloud provider your deployment supports) for the business.
  2. Create or edit a POS location (shop): Set a unique location code — this is what you type into Invoice's webhook settings. Link the location to the same Drive folder Invoice uses for exports (folder path / ID as required by your Books admin UI).
  3. Set the webhook secret on the server: Configure POS_EXPORT_WEBHOOK_SECRET in the Books backend environment and redeploy. Without it, the export-ready endpoint returns 503.
  4. Discover: Use Discover on the location to confirm Books sees *.json files in the folder. You should see new files after Invoice has synced.
  5. Import: Run Import from cloud (or wait for automatic sync if your deployment schedules it). Review import history and fix any validation errors shown for failed rows.

Canonical webhook path: POST /api/v1/pos/webhooks/export-ready/. A legacy mirror may exist at /api/pos/webhooks/export-ready/ — use the URL your host documents.

Duplicates & reconciliation strategies

When Books imports POS data that may already exist (re-imports, overlapping exports), duplicates are resolved automatically. On each POS location you control Customer duplicate detection:

  • "Skip when name already exists (default)" — an incoming customer with a matching name is not duplicated
  • "Match by email when set; otherwise by name" — prefers email matching, falling back to name

Under the hood, the import engine supports several reconciliation strategies for matched records — skip (default: keep the existing record), update (overwrite with POS data), merge (combine both sources, e.g. add stock quantities), latest wins (keep the most recent by timestamp), and manual (flag conflicts for review). These are configured on the server per deployment rather than in the on-screen settings — ask your administrator if you need a different behaviour than skip.

After each import, the summary table shows counts per record type — Success, Failed, Skipped, Updated, and Merged — and warnings appear in the import history. Need a file to start from? Use the Excel Template and JSON Template buttons on the POS Integration page; Excel files upload via "Upload POS Data from Excel File".

Hosting & security (administrator)

  • CORS: If Invoice runs in the browser and calls the webhook directly, add the Invoice site origin(s) to Books CORS_ALLOWED_ORIGINS (comma-separated). Without this, the browser shows a CORS/network error even if the API works from curl.
  • HTTPS: Use TLS everywhere; the shared secret is sent in the X-POS-Webhook-Secret header.
  • Rotate secrets between staging and production; do not reuse staging keys in production.

Operator runbooks in the Books repository: docs/POS_WEBHOOK_ROLLOUT.md, docs/POS_SUPPORT_RUNBOOK.md.

Verify & troubleshoot

  • Invoice: Confirm Drive connection and that a full sync completed without errors; confirm a wazobia-books-export-*.json appears in the folder root when bundle export is enabled.
  • Books Discover: Should list matching JSON files; if the folder is empty, fix path mismatch or sync from Invoice first.
  • Webhook test: 401 = wrong secret; 404 = location code (or business id) not found; 503 = secret not set on server; CORS errors = add Invoice origin to Books CORS.
  • Logs: On Books, search structured logs for export_webhook_ events.

Settings

Settings Tabs Overview

Open Settings in the sidebar. It is organised into tabs (which tabs you see depends on your role):

TabWhat it does
BusinessCompany profile, tax jurisdiction, and business-level configuration
Team MembersInvite users and assign their role
Users & RolesFine-grained roles and per-module permissions (RBAC)
CurrenciesDefault currency and additional currencies
ProfileYour personal details
NRS E-InvoicingNigeria Revenue Service e-invoicing setup (see Tax Compliance chapter)
Bank DetailsBank accounts shown on invoice PDFs/emails (see Invoicing chapter)
PaymentsOnline payment provider setup for invoice payments
NotificationsEmail notification preferences
Backup & StorageBackups, database storage choice, Google Drive / OneDrive (see Backup chapter)
BillingYour WAZOBIA-Books subscription and receipts
API diagnosticsConnectivity checks (owners/administrators)
SecurityPassword and Two-Factor Authentication

Team Members, Users & Roles

  1. Go to Settings → Team Members to invite a colleague by email and assign a role (Owner, Accountant, Staff, Viewer)
  2. For finer control, open Settings → Users & Roles — define custom roles with per-module permissions (view, create, approve, etc. for invoices, bills, payroll, inventory, and more) and assign them to users

Sidebar follows permissions

Users only see the modules their role grants. Approval permissions also control who sees the Approvals queue.

Currencies

Set your default currency (NGN by default) under Settings → Currencies. On Grow tier and above you can enable additional currencies for multi-currency records.

Online Payments

Under Settings → Payments, connect your online payment provider (Flutterwave — Invoice payments) so customers can pay invoices online. Once connected, the tab shows your subaccount, settlement account, and connection status; invoices can carry a secure payment link (see Copy customer pay link on an invoice), and settled payments are recorded against the invoice automatically.

Partial online payments: tick Allow partial payments and optionally set a Minimum payment (₦) if you want customers to be able to pay invoices in installments online.

Notifications

Under Settings → Notifications, toggle email notifications:

  • Invoice Notifications — get notified when invoices are paid
  • Payment Reminders — receive reminders for upcoming payments
  • Tax Deadline Alerts — get alerted before tax filing deadlines

Security & Access

User Roles

WAZOBIA-Books has different access levels based on user roles:

RoleAccess Level
OwnerFull access to all features, settings, and user management
AccountantFull access to accounting features, limited admin access
StaffBasic access to transactions and data entry
ViewerRead-only access to reports and dashboards

2FA Required for Sensitive Roles

Owner and Accountant roles require Two-Factor Authentication (2FA) for enhanced security.

Beyond the four standard roles, Settings → Users & Roles supports custom roles with per-module permissions — see Team Members, Users & Roles.

Approvals Queue

Users with approval permission see Approvals in the sidebar — one queue for everything waiting on sign-off:

  • Expenses pending approval
  • Bills pending approval
  • Payroll periods awaiting approval
  • Inventory adjustments above the approval threshold
  • Period reopen requests (accounting)

Each item shows what it is and who requested it, with Approve and — where supported — Reject buttons. Owners and accountants can approve by default; other roles need the relevant approve permission from Users & Roles.

Two-Factor Authentication (2FA)

Enable 2FA for an extra layer of security:

  1. Go to Settings → Security
  2. Click "Enable 2FA"
  3. Scan the QR code with an authenticator app:
    • Google Authenticator
    • Microsoft Authenticator
    • Authy
  4. Enter the 6-digit code from your app
  5. Save your backup codes securely

Backup Codes

You'll receive 8 backup codes. Keep these safe - they can be used if you lose access to your authenticator app.

Password Security

Password requirements:

  • Minimum 8 characters
  • Mix of letters, numbers, and symbols recommended
  • Passwords are encrypted and never stored in plain text

Resetting Your Password

  1. Click "Forgot Password?" on login page
  2. Enter your email address
  3. Check your email for reset link
  4. Create a new password

Account Lockout

After 5 failed login attempts, your account will be temporarily locked for 30 minutes to protect against brute force attacks.

Session Management

Your login sessions are managed securely:

  • Sessions use secure HTTP-only cookies
  • JWT tokens expire and refresh automatically
  • Click "Logout" to end your session
  • Sessions expire after 24 hours of inactivity

Login & Activity

Open Login & activity in the sidebar (the page is titled Login History & Security) to review who has been signing in and what has changed:

  • Summary counts of total, successful, failed, and locked logins
  • Sign-in activity — each entry shows the date/time, IP address, and device (desktop or mobile); filter by All / Success / Failed / Locked
  • Business activity — an audit list of creates, updates, and deletes in your current company (invoices, expenses, ledger, payroll, and more)

Failed attempts warning

If failed login attempts are detected, the page highlights them — if you don't recognise the activity, change your password and enable 2FA.

AI Insights & Features

AI Overview

WAZOBIA-Books includes powerful AI-powered features to automate tasks, detect issues, and provide insights:

AI Features Available

  • Smart Categorization - Auto-categorize transactions
  • Payment Predictions - Predict when customers will pay
  • Fraud Detection - Detect duplicate/suspicious invoices
  • AI Reports - Generate narrative financial summaries
  • Cash Flow Forecasting - Predict future cash positions
  • Anomaly Detection - Find unusual transactions

Access AI features by clicking "AI Insights" in the sidebar navigation.

Smart Transaction Categorization

AI automatically categorizes transactions based on descriptions and patterns:

  1. Go to AI Insights from the sidebar
  2. Click "Auto-Categorize" in Quick Actions
  3. AI analyzes uncategorized transactions
  4. Review suggested categories with confidence scores
  5. Approve or reject suggestions

Learning System

The AI learns from your corrections. The more you use it, the more accurate it becomes.

Payment Predictions

AI predicts when customers will pay invoices based on historical patterns:

  1. Go to AI Insights → Payment Predictions
  2. Click "Generate Predictions"
  3. View predictions for all outstanding invoices
  4. See:
    • Predicted Payment Date - When payment is expected
    • Days Until Payment - Expected wait time
    • Risk Score - Low, Medium, or High risk
    • Confidence - AI's confidence in prediction

Risk Levels

Risk LevelDescriptionAction
LowExpected on timeNo action needed
MediumMay be delayedSend reminder
HighLikely late paymentProactive follow-up

Invoice Fraud Detection

AI scans invoices for potential fraud indicators:

  1. Go to AI Insights → Fraud Detection
  2. Click "Scan for Fraud"
  3. AI analyzes all invoices for:
    • Duplicate Invoices - Same amount and vendor
    • Unusual Amounts - Significantly higher than average
    • Suspicious Vendors - New vendors with large amounts
    • Timing Anomalies - Invoices at unusual times
  4. Review flagged invoices
  5. Mark as legitimate or investigate further

Fraud Indicators

  • • Duplicate invoices from same vendor
  • • Round number amounts (₦100,000 exactly)
  • • Amounts just below approval thresholds
  • • New vendors with immediate large invoices

AI-Generated Reports

Generate human-readable financial narratives:

  1. Go to AI Insights → AI Reports
  2. Click "Generate AI Report"
  3. Select report type:
    • Executive Summary - High-level business overview
    • Financial Health - Detailed financial analysis
    • Cash Position - Liquidity and cash flow analysis
    • Performance - Revenue and profitability trends
  4. Choose language: English or Nigerian Pidgin
  5. Download or share the report

Report Sections

AI reports include: Summary, Highlights, Concerns, Recommendations, and Key Metrics.

Cash Flow Forecasting

Predict future cash positions based on historical data:

  1. Go to AI Insights
  2. View the Cash Flow Forecast chart
  3. See predictions for:
    • Expected cash inflows (from receivables)
    • Expected cash outflows (from payables)
    • Net cash position projections
    • Seasonal patterns and trends
  4. Hover over chart points for details

Accuracy Improves Over Time

The more historical data available, the more accurate forecasts become. At least 3 months of data is recommended.

Anomaly Detection

AI monitors transactions for unusual patterns:

  1. Go to AI Insights
  2. Click "Scan for Anomalies"
  3. AI flags transactions that are:
    • Significantly larger or smaller than usual
    • From unusual vendors or customers
    • At unusual times (weekend, holiday, late night)
    • In unusual categories for the vendor
  4. Review flagged items in the Anomalies list
  5. Mark as reviewed to dismiss false positives

AI Configuration

Customize AI behavior in Settings:

  1. Go to AI Insights
  2. Scroll to AI Settings section
  3. Configure:
    • Confidence Threshold - Minimum confidence for auto-actions (default 70%)
    • Enable Auto-Categorization - Automatically categorize new transactions
    • Enable Fraud Alerts - Get notified of suspicious invoices
    • Enable Anomaly Alerts - Get notified of unusual transactions

Confidence Threshold Guide

ThresholdBehaviorBest For
90%+Very conservativeBusinesses needing high accuracy
70-89%Balanced (recommended)Most businesses
50-69%More suggestionsHigh volume, quick review

Lower Threshold = More False Positives

Setting a lower confidence threshold means more suggestions but also more items to review manually.

Tips & Best Practices

General Tips

  • Regular Backups: Enable automatic Google Drive backups
  • Reconcile Monthly: Reconcile bank accounts monthly
  • Review Reports: Check financial reports regularly
  • Keep Records: Maintain supporting documents
  • User Permissions: Assign appropriate roles to users

Security Tips

  • Enable 2FA: Set up Two-Factor Authentication for all Owner/Accountant accounts
  • Strong Passwords: Use unique, complex passwords of at least 12 characters
  • Save Backup Codes: Store 2FA backup codes in a secure location
  • Regular Logout: Log out when finished, especially on shared devices
  • Review Access: Periodically review which users have access to your business

Backup Tips

  • Enable Auto-Backup: Turn on automatic nightly backups to Google Drive
  • Backup Before Changes: Create a manual backup before major data changes
  • Verify Backups: Periodically check your Google Drive to confirm backups are running
  • Keep Multiple Copies: Don't delete old backups too quickly
  • Export Monthly: Download a local copy of your data each month

Tax Compliance Tips

  • TIN Required: Always add TIN for customers/vendors
  • VAT Basis: Choose accrual or cash basis consistently
  • WHT Certificates: Issue certificates when WHT is deducted
  • Filing Deadlines: Set reminders for tax filing due dates
  • Documentation: Keep all tax-related documents

Invoice Tips

  • Add Customers First: Create customers before creating invoices
  • Complete Details: Add customer TIN and address for professional invoices
  • Item Descriptions: Use clear, detailed descriptions for invoice items
  • Check Calculations: Review calculated totals before saving
  • Payment Reminders: Use recurring invoices for regular clients

AI Features Tips

  • Start with High Confidence: Set confidence threshold to 80%+ initially, then lower as AI learns
  • Review Regularly: Check AI predictions weekly to catch any issues early
  • Correct Mistakes: When AI makes errors, correct them - this helps the model improve
  • Use Fraud Detection: Run fraud scans monthly, especially before closing periods
  • Generate Reports: Use AI reports for quick executive summaries for stakeholders
  • Monitor Anomalies: Enable anomaly alerts to catch unusual transactions in real-time
  • Payment Predictions: Use predictions to prioritize collection efforts on high-risk invoices
  • Cash Flow Forecasting: Review forecasts weekly to plan for cash needs