This article is relevant if you need a way to produce and generate invoices for NetSuite customer deposit requests.
I find many NetSuite organizations who need to send a customers a Proforma Invoice in advance of fulfillment find themselves in a precarious situation. I often see this in international operations because overseas companies need a Proforma invoice to represent what is coming or due. In my practice, I ask for professional service retainers to start engagement work; this is in advance of services. Â NetSuite’s invoice model coupled from a Sales Order is fundamentally designed for recognizing revenue after a fulfillment, not before. While there are some options for tweaking the timing for when invoices can be generated, there is not a well described method to produce a Sales Order and then ask a customer for funds up front before the fulfillment gets started while making accounting an operations smooth.
Common Approach to NetSuite Proforma Invoice, Retainer and Deposit Invoice Requests
One common approach, for which I have prescribed at clients in the past, is to use a NetSuite Estimate record to act like a form generator. From the estimate, we generate a PDF that is branded as an “invoice” for customer presentation purposes. The key weaknesses in this approach follows:
- There is no aging associated with the estimate record; yet saved searches can emulate it. Usually, the estimate records need to be managed in some type of manual method.
- There is no record to process against when a customer payment comes in. Hence cash receipt operations are cumbersome.
Ultimately, when the monies do arrive, I often suggest using NetSuite’s Customer Deposit record to properly record the liability and book the cash. If the Customer Deposit is bound to the Sales Order, it will automatically be applied to subsequently generated invoices. This is handy!
Solving the NetSuite Customer Deposit Invoice Request Flow
Before I describe the solution, I want to offer that we have two methods (simple and advanced) included in one NetSuite SuiteBundle. Here, I will discuss the advanced method because it fully solves the accounting flows and operating logistics. We call it the “Advance Payment” model because it is about getting monies in Advance of fulfillment.
Step 1: Advanced Payment Invoice Generator
The first step produces an enhancement on the Sales Order that allows you to select a user-configurable percentage of the total invoice amount in advance. Expressed in percentage terms, which can be 100% (all monies due up front), once the Sales Order is saved, a linked invoice is generated which produces an accounting as follows:
Dr AR: a user-configurable AR account to help you distinguish your earned from unearned receivables
Cr Clearing: a balance sheet account that can be used to effectively wash out financial impact from the AR account.
The invoice is special in that it has all the product lines but it also has a payment item reference. These elements help you produce specific customer bill presentation. Importantly, you can, if you choose, leave the Sales Order in an Unapproved state. The benefit of option is that inventory is not committed and no fulfillment will start.
Step 2: Cash Receipt Invoice Payment Operations
Because we now have an invoice from Step 1, all the benefits of that record exist. You can age these invoices against your customers. Importantly, your cash receipt operations smooth out. Simply, cash comes into the organize and it needs to applied. No need to lookup and find “off balance sheet” invoices that were generated from the estimate or otherwise. Here, the accounting is as follows:
Dr AR: the user-configurable AR account used in Step 1
Cr Cash: the account you use to deposit monies received
Step 3: Generate Customer Deposit
As soon as the invoice payment is received, the solution will automatically generate a customer deposit record. Yet, it is intelligent about the work that was done in Step 1. In this case, we need the Customer Deposit to link up to the Sales Order and we need to finish up the accounting as follows:
Dr Clearing: the balance sheet account that was used in Step 1.
Cr Customer Deposit Liability: this is NetSuite’s standard liability account to recognized unearned revenue
In addition to the automated Customer Deposit accounting, we also update specific status information on the Sales Order about the Advance payment. With this status updates, if you so choose, you can then use workflows to automatically approve the Sales Order so that fulfillment can begin.
Get the NetSuite Advance Payments SuiteBundle
We offer this bundle (#100126) without charge to our clients who need this specific type of accounting and record handling. Like all the work we do, we help our clients configure the flows. Many times, the solution opens up the possibility of new work practices which were previously troublesome. Because we are experts with the NetSuite technology platform and accounting, we are often asked to help fit the solution to specific requirements. If you have a similar concern in your operation, let’s have a conversation.