Receipt (Sale)
The customer has already paid. You record it in the POS. The receipt is a confirmation of money received.
A customer invoice is a formal request for payment. You send it before the customer has paid, share the link via WhatsApp or SMS, and your customer pays you by bank transfer at their convenience. SabiBooks tracks every status change — Draft, Sent, Partially paid, Paid — so you always know who owes you and how much.
Three different concepts. Easy to mix up.
Receipt (Sale)
The customer has already paid. You record it in the POS. The receipt is a confirmation of money received.
Invoice
The customer has not yet paid. You send an invoice as a request for payment, with a due date and your bank details.
Credit
A trusted customer takes goods now and pays later — usually informal, no formal document. Tracked under Credit Management.
Open Invoices
Tap the “More” menu in the bottom navigation, then tap “Invoices”. You’ll land on the Invoices list.
Tap New Invoice
Tap the “New Invoice” button (top right on desktop, floating button on mobile).
Pick a customer
Tap Customer and search by name or phone. If the customer doesn’t exist yet, add them first (see Customers).
Choose the type
In the Type section, pick:
Set the dates
Add line items
For each item you’re billing, search your products by name or SKU. Or add an ad-hoc item for one-off charges like “Delivery fee” — type a name, set a price, set a quantity. Discount per line is optional.
Save as Draft
Tap “Save as Draft”. The invoice is created but not yet visible to the customer.
Drafts only become real invoices once you share them. Sharing changes the status to Sent and decrements your stock for the items on the invoice.
Open the draft
From the Invoices list, tap the invoice you want to share.
Tap Share
Tap the “Share” button. A modal opens with sharing options.
Pick a channel
Once an invoice is in the Sent state, the button changes to “Reshare”. Resharing is safe — it does not double-decrement stock and does not send a second email automatically.
When the customer taps the share link, they see a clean public payment page with:
The page works without login — your customer just opens the link and pays you by bank transfer.
When the customer pays, record it on the invoice.
Open the invoice
Tap the invoice in the Invoices list.
Tap Record payment
The button is available when the invoice status is Sent or Partially paid.
Enter the payment details
| Field | Description | Example |
|---|---|---|
| Amount | How much was paid (defaults to the full balance) | ₦25,000 |
| Payment method | Bank transfer / Cash / POS / Payment link / Other | Bank transfer |
| Reference | Optional — bank transaction reference, etc. | ”TRF-99221” |
| Notes | Optional — anything worth remembering | ”Part payment” |
Save
The invoice balance updates immediately.
You can cancel a Draft or Sent invoice. Cancelling a Sent invoice also restocks the items.
For a fully paid invoice, Refund reverses the entire transaction in one step.
What happens behind the scenes:
A Proforma is a formal quote — useful when a customer asks “how much will this cost?” before committing.
A Proforma:
INV-YYYY-#### formatWhen the customer accepts the quote, convert it to a real invoice:
The new invoice gets a fresh invoice number, copies all line items and the customer verbatim from the Proforma, and starts as a Draft — ready for you to share. The original Proforma is kept (linked) for your records.
If your business is VAT-registered, you can enable Tax Invoice mode to issue invoices with your TIN and VAT registration number stamped on them — required by FIRS for VAT-registered MSMEs.
Once enabled, the Type section on the invoice form gains a Tax Invoice option. Pick it when you need to issue a VAT-compliant invoice. Plain Invoice and Proforma still work as before.
Set these once under Settings → Invoicing, and every new invoice picks them up automatically.
| Field | What it does |
|---|---|
| Bank name, account number, account holder name | Shown to your customer on the public invoice page so they can pay you by transfer. All three must be filled, or the bank panel is hidden entirely. |
| Default payment terms (days) | How many days from invoice date is payment due, by default. Each invoice can override it. |
| Invoice number prefix | Defaults to INV. Change it if you prefer something like INVL or your initials. Numbers reset every January. |
Stock decrements when you share a Draft invoice for the first time (Draft → Sent). It does not decrement when you save a draft. If you cancel a Sent invoice, the stock is restocked. If you edit items on a Sent invoice, SabiBooks recomputes the difference.
Proforma quotes never decrement stock.
Invoices and credit are tracked separately because they’re different mental models. An invoice is a formal payment request with a due date; credit is an informal “pay-me-later” arrangement on a sale already handed over. Don’t expect an unpaid invoice to show up under Credit and Debtors — check the Invoices page for the unpaid balance.
Yes. Tap Edit on a Sent invoice’s detail page. If you change line items, SabiBooks recomputes stock by the difference. The customer sees the updated invoice the next time they open the share link. You cannot change the invoice type after creation — to convert a Proforma to an Invoice, use the Convert to invoice action instead.
Existing invoices are not retroactively recalculated. Already-shared invoices keep the rate they were created with. New invoices use the new rate.
A converted Proforma is a special case: its totals are locked to the accepted quote, so a mid-flight rate change does not affect a Proforma you converted last week.
Yes — tap Reshare. It does not double-decrement stock and does not send a second auto-email to the customer. Use it for friendly reminders.
No. Invoices are unlimited on every SabiBooks plan, including the free tier. No per-invoice fee, no transaction fee from us.
Read the long-form story with worked examples and the customer scenarios that make invoices feel natural: