Items
- Go to Items and click New item to build a reusable catalog — name, description, and a default unit price.
- Pick an item straight off a document line later instead of typing it every time, or skip the catalog and type a one-off line directly on a document.
- Turn on track inventory for an item to record stock quantity and get warehouse/stock features on it (needs the Inventory module).
- A composite item bundles other items together under one catalog entry — useful for kits or bundles you sell as one line.
- Use Price lists to offer different prices for the same items to different customer groups.
- Sell by the carton, pack or piece — under Other selling units on an item, add a unit (e.g. Carton), how many of the item it holds (24), and optionally its own price and barcode. Stock is always counted in the item's own unit, so selling 2 cartons of 24 takes 48 off stock. (Create units first under Items → Units.)
Customers
- Go to Customers → New customer. Only a name is required — email, phone and address are optional but recommended so documents and email delivery work.
- Pick a customer when you create a document, or leave it blank for an anonymous quick sale.
- Editing a customer later never changes documents you already issued to them — every document keeps a snapshot of the customer's details as they were on that day.
- Contact persons — on a customer's page (and in Vendors → Contacts), add the people you deal with: name, role, email and phone. Mark one as primary: document emails go to them when the customer has no email of its own, and the others can be ticked as CC when you email a document.
Quotes, invoices & receipts
This is the heart of the system. All sales paperwork lives under one Documents list and shares the same flow — a document can move forward through the lifecycle below:
Quotation → Sales order → Proforma invoice → Invoice → Receipt
Credit notes and retainer invoices sit alongside this flow rather than in it — see the last two points below.
| Type | Code | What it's for |
|---|---|---|
| Quotation | QUO | A non-binding price quote before the order is confirmed |
| Sales order | SO | Confirms the items and prices a customer has agreed to |
| Proforma invoice | PI | Lets a customer arrange payment before the final invoice |
| Invoice | INV | The official request for payment |
| Receipt | RCT | Proof that payment has been received |
| Credit note | CN | Credits a customer's account — returns, cancellations, overcharges |
| Debit note | DN | Charges a customer more — an undercharge, late fee or extra cost |
| Delivery challan | DC | Sends goods out without a sale (on approval, job work, returnable) |
| Retainer invoice | RET | Bills an advance that becomes credit once paid |
The code is part of every document number, e.g. OINL/INV/2026/0001 — business code / type code / year / a running number that resets each year.
- Go to Sales → All documents (or a shortcut like Invoices/Quotes in the sidebar) and click New, then pick the document type you want.
- Choose a customer (optional), an issue date, and add line items — pick from your item catalog or type one-off lines with a quantity and price.
- Add terms, payment terms, validity text and any custom fields if you need them — these default from your business settings but can be changed per document.
- From the document page you can:
- Download a PDF or an image
- Email it straight to the customer
- Convert it to the next type in the flow — lines carry over, and a link back to the original is kept
- Credit notes create credit for a customer — apply it to a later invoice from the invoice's "Apply credit" action.
- Debit notes are paid and tracked like an invoice and post to receivables. Delivery challans record goods leaving without a sale — pick the challan type, and convert it to an invoice if the customer keeps the goods.
- Retainer invoices bill an advance payment that becomes credit once paid, applied to invoices the same way.
- Select several documents — or every one matching your current filter — from the Documents list and bulk delete them in one go.
- If your business requires sign-off before a document can go out, see Document approvals, and if you want customers to pay online, see Payment links.
Document approvals
Off by default — turn it on only for the document types that need a second pair of eyes before they go out.
- An owner/admin turns on an approval rule per document type from Admin console → Approval rules, with 1–3 levels and one or more named approvers at each level.
- With a rule active, creating that type of document leaves it as a normal draft — click Send for approval when it's ready, and it moves level by level.
- Any approver at the current level can Approve (moves it to the next level, or finishes it if it was the last) or Reject with a reason, which sends it back to draft for changes and resubmission.
- Each approver has their own queue at My approvals, reachable from anywhere regardless of their usual role — no need for accounting or sales access just to approve.
- A document can't be emailed — or paid online, if you use payment links — until every level has signed off. The full history of who submitted, approved or rejected shows on the document page.
- No rule set for a type means it's approved automatically the moment it's created, exactly as before — turning approvals on never changes existing documents.
Recording payments
- Open an invoice or proforma invoice and use Record payment — enter the amount, date and bank account (if you track banking).
- A document's status moves automatically between Sent → Part paid → Paid as payments come in; the balance shown updates the same way.
- If your business has auto GL posting switched on, both the invoice and the payment are posted to your general ledger automatically — see Accounting.
Payment links
- Let customers pay an invoice, proforma invoice or retainer online instead of chasing a bank transfer. Plug in your own Paystack or Flutterwave account from Admin console → Payment links (owner only) — enter your public and secret key, then switch it on.
- Once it's on, an approved document that's in Naira and still has a balance shows a Payment link button — copy it and send it however you like (email, WhatsApp, SMS).
- The customer opens the link, enters their name and email and pays — no Cashflow account needed on their end.
- Money settles straight into your own gateway account, not Cashflow's. The payment is recorded, the document's status updates, and the customer gets a receipt by email automatically once the payment clears.
- Naira documents only for now, and — if your business uses approval rules — a document must be fully approved before its payment link works.
Recurring invoices
- Go to Recurring invoices → New, build the invoice template (customer, lines, terms) and set how often it should run.
- A new invoice is generated automatically on schedule — no need to log in on the day. Click Run now to generate one immediately instead.
- Pause or resume a schedule any time from its page.
- Overdue and upcoming invoices can also send automatic reminders — set the rules under an invoice's reminder settings or your business's reminder rules.
WhatsApp: share and send documents
There are two ways to use WhatsApp.
Share on WhatsApp — every plan, no setup
Invoices, quotes, receipts, standalone payment links and online orders all have a WhatsApp button. It opens WhatsApp on your phone or computer with the message and a link already typed in, so you just press send. The link opens the "Pay online" page for an invoice that can be paid online, and the PDF for anything else.
Send from your WhatsApp Business number — paid plans
- An owner or admin connects the business's own WhatsApp Business number from Admin console → WhatsApp. You'll need the phone number ID, the WhatsApp Business Account ID and a permanent access token from your Meta app. The page lists where to find each one.
- We submit four message templates to Meta for approval: documents, payment reminders, order updates and receipts. Approval usually takes a few minutes; Refresh shows the status.
- Then, on any document, WhatsApp → Send delivers it straight from your number.
- Turn on any of these to send automatically:
- Online store order updates, with a tracking link
- Payment reminders, alongside your email reminders
- Point of sale receipts, for customers with a phone number
- Paste the callback URL and verify token into your Meta app's webhook settings, and add your app secret. Each message in the log then shows sent, delivered, read or failed, and customers' replies appear there too.