Skip to content

Invoice Statuses

Every invoice in Hisaabo has a status that reflects where it is in the billing lifecycle. Statuses help you track what is outstanding, what has been paid, and what needs follow-up.

StatusMeaning
draftThe invoice has been created but not yet sent to the party. It is still being worked on.
unfulfilledThe invoice has been issued but the goods or services have not yet been delivered.
sentThe invoice has been sent to the party and is awaiting payment.
paidThe invoice is fully paid — the total amount paid equals the total amount due.
partialOne or more payments have been received but the full amount is not yet paid.
overdueThe due date has passed and the invoice is not fully paid.
cancelledThe invoice has been cancelled or soft-deleted. Cancelled invoices do not appear in reports.

The most common path for a sale invoice is:

draft → sent → partial → paid

Or for a cash-on-delivery sale:

draft → paid (record the full payment immediately)

For purchase invoices where you need to track fulfilment:

draft → unfulfilled → sent → paid

You can manually change an invoice’s status at any time by opening the invoice and selecting a new status from the Status dropdown. This is useful when you send an invoice by email and want to mark it as sent, or when you agree with a customer to waive a balance and want to mark it as paid.

When you record a payment against an invoice:

  • If the payment covers the full remaining balance → status becomes paid
  • If the payment is partial → status becomes partial
  • If you delete a payment that brought the invoice to paid → status reverts to partial or sent

The dashboard and invoice list show overdue invoices based on their due date. The status is not automatically updated to overdue in the database — the UI derives this from the due date field. If you filter by overdue in the invoice list, you see invoices where the due date is in the past and the status is not paid or cancelled.

Deleting an invoice (available to Admin users) sets the status to cancelled and soft-deletes the record (the deleted_at field is set). Cancelled invoices:

  • Do not appear in the default invoice list
  • Do not count in GST reports
  • Do not affect party balances
  • Do not reverse the stock adjustment

An invoice can be freely edited (line items, party, date, charges) while its status is anything other than paid.

If an invoice is paid, the system blocks editing with the message: “Cannot edit a paid invoice. Remove payments first.” To edit a paid invoice:

  1. Open the invoice
  2. Delete or reduce the payment(s) that paid it
  3. The status reverts automatically
  4. Edit the invoice
  5. Re-record the payment
ActionMinimum role required
Change statusSeller
Delete (cancel) invoiceAdmin
Delete invoice within 2 hours (unpaid)Seller Manager

Seller Managers can only delete unpaid invoices created within the last 2 hours. Admins and Superadmins can delete any invoice regardless of status or age (except already-paid invoices require manual payment deletion first). Accountants can view invoices but cannot change their status or delete them.

I want to mark an old unpaid invoice as “written off” without recording a payment. How do I do that? Change the status manually to cancelled. This removes it from the outstanding receivables view. It will still appear in the invoice history but not in active reports. Alternatively, record a payment with mode other and amount equal to the outstanding balance, then add a note “Written off”.

Can I restore a cancelled invoice? Change the status back to draft, sent, or whichever status is appropriate. The invoice data is not deleted (it is a soft delete), so all the line items and party details are intact.

Why does the invoice list show “Overdue” for some invoices but the status shows “Sent”? The “Overdue” label in the list view is computed on the fly: any invoice with status = sent or status = partial and a past due date is visually shown as overdue. The database status field itself is not changed automatically.