Solved: NetSuite Customer Deposits and Advance Payment Accounting

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:

  1. 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.
  2. 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.

Be Sociable, Share!

Marty Zigman

Holding all three official certifications, Marty is Southern California's NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 25 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

More Posts - Website - Twitter - Facebook - LinkedIn - Google Plus - YouTube

| Tags: , | Category: Accounting, NetSuite | 4 Comments


  1. Posted July 22, 2016 at 1:19 am | Permalink

    Hi there,

    do you charge for this bundle?



  2. Posted July 22, 2016 at 3:27 am | Permalink

    Hi Lee,

    We offer this bundle without charge to end customers. We do have a service charge for implementation. We do not offer the bundle through other NetSuite partners.


  3. Sarah Anderson
    Posted August 9, 2017 at 4:07 am | Permalink

    Do you have any affliliated netsuite providers in Australia? We currently use J Curve as our provider.

  4. Posted August 13, 2017 at 7:49 pm | Permalink

    Hello Sarah,

    I think this is off topic. Please send your request here so we can have conversation:

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>