In this issue we’ll discuss Invoice statuses and the OFBiz Invoice processing workflow supported in the Apache Ofbiz Accounting application. Like other business documents/objects in Ofbiz, Invoices are an important part of the broader Ofbiz system, and changes to its status have direct impact on General Ledger (GL), billing accounts, payments and other accounting functions. Of all statuses, the ‘Ready’ and ‘Paid’ status are unique in that they trigger GL transactions.
As you read this article please keep one very important thing in mind about Ofbiz, it’s designed and built to be fully customizable. Like most other workflows in Ofbiz, OOTB workflow for Invoice processing is very flexible and should be easy to use for most enterprises. If your business uses different statuses (and processing workflow), don’t worry, customizing workflow is very easy.
Now coming back to the Invoice status.
In-Processes: When an Invoice is created it’s always in ‘In-Process’ status. A user can add/edit invoice items and update other invoice attributes like billing party or due date, without impacting any other part of system. This is comparable to a ‘Work-In-Progress’ or ‘Draft’ status you might have used in other workflows.
Approved: Move an Invoice to ‘Approved’ status when you are done preparing (discuss and review), and the Invoice is ready to be finalized. Once in ‘Approved’ status an Invoice cannot be edited. In the event you need to make any updates to an Invoice, it needs to be moved to the ‘In-Processes’ status.
Sent: There’s little flexibility after an invoice is sent. An Invoice can be moved to ‘Sent’ status from ‘In-Processes’ or ‘Approved’ status. Given the flexibility, use of this status in Invoice processing workflow is open for interpretation. It can be used to support the “Sent for Approval” or “Sent to Customer” step in workflow. An Invoice in ‘In-Process’ status can be moved to “Sent” status to support the “Sent for Approval” step in workflow. Alternatively, we can Approve the invoice and then move it to ‘Sent’ status, marking it as “Sent to Customer.”
Ready: An Approved invoice can be moved to Ready status and is a very important step in workflow. Moving an Invoice into Ready status triggers the process of posting the Invoice to GL. What happens on the GL side of the system is governed by Organizations Accounting Preferences and the GL setup.
Paid: Somewhere between creating an Invoice and moving it into ready status, an organization may receive payment (for AR invoices) or send payment (for AP invoices). Once Payment is received (or sent) and applied to the Invoice, and the total amount of payment applications covers the Invoice grand total, the Invoice can then to be moved into Paid status. Moving the Invoice to Paid status triggers GL transactions. A valid status change after the Ready status is ‘Paid’, ‘Write Off’ or ‘Cancel’.
Write Off: If an accounting manager sets the invoice status as ‘Write Off’, then the Invoice becomes non-collectible in the system.
Canceled: An Invoice in ‘Ready’ status can canceled. Any Invoice cancellation event triggers the reversal of the related GL transaction entries and the Payment application, though the Invoice will remain in the system as non-editable.
Anil Patel is COO at HotWax Systems as well as an OFBiz project committer, PMC member, and active community contributor. He also studies yoga. Anil will join other HotWax Systems team members and advisors in periodically posting thoughts here related to OFBiz, eCommerce, ERP, and other related topics.