Tutorial 9 — By business type

NairaFlow is one product with different screens for different kinds of business. This guide is the difference between them, and what each kind of business should focus on.


What you get, at a glance

Every business gets: sales, purchases and expenses · contacts · debts · invoices · reports · staff · feature requests

Each class adds the screens below on top of that universal set:

Class Screens beyond the universal set
Retail Inventory · supplier invoices · leads · stock locations · batches & expiry · shifts
Distribution & Wholesale Inventory · supplier invoices · stock locations
Fuel Station Inventory · supplier invoices · stock locations · shifts
Pharmacy Inventory · supplier invoices · batches & expiry
Food & Drinks Inventory · supplier invoices · batches & expiry
Vehicle & Equipment Hire Bookable resources · bookings · maintenance · shifts
Salon / Clinic / Workshop Service catalogue · appointments · reviews · jobs · leads · shifts
Hospitality Properties · bookings · maintenance · reviews
Creative Agency Service catalogue · leads · projects
School / Estate / Membership Billing periods (terms, cohorts, arrears)
Crypto / Financial Leads

If you are not sure which you are, leave it blank. Nothing is locked, and you can set it in Settings whenever you want. GET /business/vertical-options is the machine version of this table — the app, WhatsApp and Telegram all read their menus from it, so the list you see is the list the platform actually supports.


Tax and documents — for every business

These live in Settings → Business profile and apply to every invoice you issue:

  • TIN and VAT number print on the invoice header. If you are not VAT registered, the document says so rather than leaving the reader to guess.
  • VAT rate and VAT registered decide the tax. When you are registered, VAT is computed from the invoice lines at your rate (7.5% by default) and itemised on the PDF. NairaFlow will not accept a tax figure that contradicts its own arithmetic beyond one kobo — it tells you the computed value instead.
  • Invoice prefix starts your customer invoice numbers (INV-001 by default). Supplier bills number separately as SI-001, so paying a supplier never consumes a customer-facing number.
  • Payment terms (days) set the due date on an invoice when you do not give one.
  • Fiscal year start month decides where "year to date" begins. It is January unless you change it, which is what a school or an estate billing on a different cycle needs.

Product Seller (Retail)

Gadgets, fashion, perfume, mini-importing, Instagram vendors

Stock is the centre of this business. Everything else follows from it.

What to set up first

  • Categories that match how you actually think: Accessories, Phones, Fashion, Home.
  • Products with a cost price on every one. This is the number that tells you whether you are actually making money, and it is the one most people leave blank.
  • A low-stock threshold on each product, set to what you would actually want to know about.

The habits that matter

Sell from your product list, not from memory. When the product is linked, stock comes down automatically and your margin is captured. A quick sale skips that — and a quick sale has no cost attached to it, so it does not count towards profit.

Watch the low-stock alerts. On a product you sell every day, the threshold is the difference between reordering on Tuesday and running out on Saturday.

Use the sales channel. Every sale can be tagged Instagram, WhatsApp or Walk-in. After a month, filter the cash book and you will know exactly where to put your effort.

Convert your leads. When an enquiry becomes a purchase, tap Convert on the lead. That turns them into a contact with their history, instead of you keeping two records for one person.

The trap

Discounting without checking. Give a discount and NairaFlow handles it correctly — the sale is worth less, and the reports know it. But discount too often and you will find that your sales are up and your profit is not. Compare the two in the Period Summary each month.

Variants are child products. A phone case in three colours is one parent with three children, each with its own stock, code and price. Create the child with parentProductId and variantAttributes (for example {"colour": "red"}); the parent's detail read reports the roll-up, and each variant still sells and moves stock on its own.


Food & Delivery

Restaurants, cloud kitchens, food vendors, frozen-food and chicken suppliers

This is a hybrid, and getting the split right is the whole trick.

The two kinds of thing you sell

How to record it Why
Prepared food — jollof, suya, fried rice A menu item with Track stock off, or a quick sale You do not track "one plate of jollof" as 200 g of rice. Counting it would be wrong by the second plate
Raw supplies — frozen chicken cartons, drinks, ingredients, packaging A product with Track stock on These you do buy in cartons and count. Getting the stock wrong here costs you real money

The test: would you be surprised to find a different number on the shelf than the app says? If yes, turn tracking off.

What to set up first

  • Two categories at least: Main Dishes and Drinks, plus Supplies if you sell raw stock.
  • Menu items with selling prices and tracking off.
  • Supply products with cost prices, stock levels and tracking on.

The habit that matters

Reconcile the cash book daily. Food businesses move fast and the numbers drift. A few minutes each evening — sales in, expenses in, and the day's cash counted — is what keeps a food business's books worth anything.

Supplier invoices matter here more than anywhere else

Supplies come in bulk, and bulk purchases have paperwork. A supplier invoice records the bill properly — the supplier's number, the items, the due date, and a PDF you can keep.

A supplier invoice does not move your stock. If you need the stock up, record a purchase as well. Many food businesses record both: the invoice for the paperwork, the purchase for the stock.


Shortlet (Hospitality)

Apartments, short stays, guest houses

The unit is the asset. A booking is a reservation of that unit for a period of time.

What to set up first

  • Properties — one per unit you rent out. Each needs a name, a type, a rate and the unit that rate is charged in — daily for a room, but hourly, weekly, monthly, per trip or per event for a vehicle, a hall or a machine. The daily rate is also the fallback when the chosen unit has no rate of its own. A weekend rate and a cleaning fee are optional but worth adding.
  • Contacts for your guests, as you would for any customer.

The habit that matters

Log the maintenance instead of only changing the status. An open maintenance record withdraws the asset: any booking that overlaps its window is refused with RESOURCE_UNAVAILABLE, and resolving the maintenance releases the dates. The cost you enter posts as an expense against that asset, and a later correction posts only the difference. NairaFlow also flips a property to Occupied when you add a booking, and back to Available when you cancel the last one.

Deposits are normal

Most bookings are paid in two parts. Record the deposit when you create the booking, and the booking shows as Part payment with the balance outstanding. The invoice route works the same way.

Paying twice is refused

A booking can have a linked invoice. Recording a payment on the booking and a payment on the invoice used to create two records of the same money. The second record is now refused with 409 MONEY_ALREADY_RECORDED, naming the transaction that already holds it — you do not have to remember which route you used first.

Cancel, do not delete

Cancelling a booking keeps it and marks it cancelled. Deleting it removes it and its reviews permanently. A cancelled booking is also a record you may need later.

NairaFlow refuses: a booking that overlaps another for the same property or the same practitioner (409 BOOKING_COLLISION, naming the colliding booking), a booking inside an open maintenance window (409 RESOURCE_UNAVAILABLE), and a check-out date that is not after the check-in date. All are reported clearly.

The plan reality

Properties and Bookings are on Growth. Maintenance and Reviews are on Enterprise. Reviews need a booking to attach to, which is how the property and the guest stay connected.


Freelancer / Agency

Agencies, consultants, designers, developers, logistics

Your work spans weeks or months, so you need two things: a catalogue of what you offer, and a way to track each engagement.

The service catalogue trick

List your services as products with Track stock turned off.

Brand Identity Design         Services    ₦500,000
Monthly Social Media Retainer Services    ₦300,000
Website Redesign              Services    ₦800,000

You get a priced list you can sell from in one tap, without a stock count that would always be zero. This is the single most useful habit for a freelancer in NairaFlow.

Projects track the work. Invoices collect the money.

A project An invoice
What it is The engagement The bill
Has a deadline Yes No
Has a client Yes Yes
Posts to your cash book No Yes

This split is deliberate, and it matters. A project tracks the work — the deadline, the status, how much has come in against the contract. An invoice is the document you send and the money that arrives.

Two things to know. Project tasks cannot be managed in NairaFlow — there is no task list, so do not go looking for one. And updating a project's amount paid does not post to the cash book. If you want the money in your books, send an invoice.

Recurring invoices for retainers

If you charge monthly, set the invoice to recurring with a monthly frequency. NairaFlow generates the next instance on the recorded date by itself, marks it as a charge for that period, and advances the template to the next occurrence. A sweep that runs twice for the same period produces one bill, not two — never create the repeat yourself.

Your costs are expenses

Software subscriptions, advertising, subcontractor fees, internet — record these as expenses, not purchases. They hit your cash book and your period summary, so you can see what a project actually earned you.


Crypto / Financial Services

P2P trading, USDT merchants, FX bureaux

NairaFlow works entirely in naira. Crypto amounts and rates are noted in descriptions — there is no multi-currency field, no rate field, and no per-counterparty trading ledger. If you price in dollars, the naira equivalent goes in the description.

Every trade is a quick sale

You do not hold stock, so there is no product list. A trade is a quick sale:

Field Example
Amount ₦1,560,000
Payment method Transfer
Description "Sold 1,000 USDT @ 1560/USD"
Customer Ahmed Trader

The description is your ledger. It is the only place the asset and the rate are recorded, so make it a habit you can read back later:

Sold 1,000 USDT @ 1560/USD
Bought 500 USDT @ 1580/USD
Sold 0.05 BTC @ 108,000,000/BTC

Keep counterparty balances clean

Every counterparty should be a contact, so that when you check their balance you can see the running total across every trade. A trade recorded against a name with no contact record cannot be totalled later.

An unsettled trade is a receivable

Sold on credit and it creates a debt — money owed to you — exactly as it would for a shop. When the money arrives, record the payment and it lands in your cash book.

Platform fees and running costs

Trading fees, data, internet and electricity are expenses. They are the difference between a large-looking revenue and an actual profit, and they are the numbers worth watching most closely in a trading business.


Not built yet, in any business

So you do not plan around something that does not exist:

Not yet
Bulk CSV import You can export your data. You cannot paste a spreadsheet in
Multi-currency Everything is naira
Product variants Built: a colour-size variant is a child product with its own stock and code
Serial / IMEI tracking No per-unit tracking for phones and laptops
Project tasks Projects exist; task lists do not
Menu modifiers No "extra fish" or "without onion" on a menu item
Delivery management No driver allocation or delivery tracking
Interactive booking calendar Bookings are created by form, not on a calendar. Rates by unit and maintenance that blocks a booking are built.
Automatic weekend pricing The weekend rate is a field you set, not a rule
Smart maintenance blocks You set a property to Maintenance yourself

Back to Tutorials → · Glossary →