Accounting in Noviship is actually fairly simple. However it does not map precisely on to traditional accounting, partly because it is fundamentally simpler and because it is just a component in your organisation’s accounting process.
In Noviship there are only two objects involved in accounting: Transactions and Invoices.
An earlier article provided a quick introduction and this article expands on it.
Transactions
Transactions are objects representing an amount of money. Transactions identify the customer to whom the amount applies and also the type of the transaction. There are three flavours of transactions: “Customer” (which affects the customer’s balance), “Reseller” (which affects the reseller’s balance) and “Cost” (which reflect charges billed by the carrier).
For accounting purposes, the flavour of transaction isn’t really important. What you do need to know is that “Cost” transactions go on a “Cost” invoice while the rest go on a “Customer” invoice.
Noviship keeps a journal of all transactions. Transactions cannot be edited or deleted once created. Negating a transaction is accomplished by creating an equal negative transaction.
Transactions are created at several stages. First when a shipment (or pickup or other billable object) is created and again when the price of the object is adjusted (typically during reconciliation). There are also manual transactions which are created outside the scope of a billable objects.
Transactions are “billable” if they connect to a reconciled shipment in a billable state, for a billable customer. So transactions for non-billing shipments or non-billing customers are not “billable”.
Invoices
Invoices are very simply a list of transactions. Transactions can only be attached to a single invoice. We call this step “Posting a transaction to an invoice”. The amount on the invoice is simply the sum of all transactions attached to it.
Invoices are usually created by gathering all the billable transactions for a customer and attaching them to the new invoice object. This is called “Posting an invoice”. It is not the same as Posting to a Ledger in Accounting – it is just an expression that has a similar meaning.
Posting an invoice typically includes sending that invoice out as a PDF by e-mail to its recipient. We have another operation called “Filing an Invoice” which is the same thing but no e-mail is generated.
We have a concept called “Reference Invoices“. These are just invoices that are not meant to reach the customer. We put transactions here that we don’t want to end up in the accounting system. Remember that transactions cannot be deleted or modified so when we need to get rid of them, putting them in a Reference invoice is a good way to keep track.
Cancelling an Invoice
The expression “Cancelling an Invoice” is very important to understand. It doesn’t mean the customer isn’t going to pay it or that you want the invoice to go in the trash. It specifically means the transactions are detached from the invoice and go back into the billing queue. They are now available to be posted to future invoices.
The distinction is important. If you cancel an invoice and post another invoice for the same customer the transactions will simply go on the new invoice instead. Cancelling an invoice does not delete or negate transactions. You do this simply to release transactions for another invoice.
Sum to Zero
When rendering (drawing or writing) an invoice, if the transactions for an object (such as a shipment) add up to zero, the object does not appear on the invoice. This is important: if you want to remove a shipment from an invoice, just make sure the transactions on that invoice for that shipment sum to zero.
This means if you refund a shipment, negative transactions will be created such that they all add up to zero. If the positive transactions were already posted to an invoice, it leaves the negative transactions for the next invoice which will appear as credits.
If, however, you cancel the invoice with the positive transactions then the next invoice will include those positive transactions bringing the price to zero, hiding the shipment.
Select Invoices
This is discussed further here. Essentially this is a technique to limit which transactions (the selected ones) go on an invoice. It is a tool to separate transactions for some reason. Sometimes you need to get rid of transactions so selecting them and filing a Reference Invoice gets the job done.
Carry Forward Transactions
This is a special case. Customers can be set to “Carry Forward” mode or “Credit” mode. Credit mode means that if the sum of all transactions on an invoice is negative, the invoice becomes a Credit Note.
Carry Forward mode prevent Credit Notes from being created by creating a positive transaction on the invoice to make the total zero, and an equal negative transaction that will go back into the billing queue for future invoices. You would use this mode if you want to carry a running balance for a customer. For example, the customer pays $100 in advance making their first invoice (if there are no shipments) -$100. Carry Forward makes this invoice $0 and puts a -$100 transaction back into the queue for the next invoice.
The Summary
Transactions go on Invoices. This procedure is called “Posting”. Cancelling an Invoice releases those transactions.