This article is relevant if you want to convert accounts receivable credits to NetSuite customer deposits.
Background
Since 2008, I have written a large number of articles on NetSuite customer deposits. Indeed, our leadership produced the ability to create Customer Deposit Invoices against Unearned Revenue allowing for proper aging and simplified cash receipt operations. Readers that have customer deposit operations will be interested in my 2016 article, Solved: NetSuite Customer Deposits and Advance Payment Accounting with many related articles.
In a recent implementation with a client that has two types of customers: “Terms” and “Prepay”, they partition their billing operations depending on the customer type. Thus, the way they see their world is that terms-based customers have an account receivable balance and they (we really all do) expect these to be debits. The Prepay-based customers use Customer Deposits and we expect these to be credits on the balance sheet in the current liability section. Because of the client’s billing operations, the goal is to avoid net accounts receivable credits and instead have these re-classed as customer deposits.
Situations Driving Accounts Receivable Credits
There are times that customers, of both types (deposits or accounts receivable), end up with a net accounts receivable credit balance even if the customers are Prepay (customer deposit) based:
- Credit Adjustments: the classic example for generating a credit is if a customer makes a request for various types of reasons. Terms-based customers may end up simply owing fewer funds and still be in a net accounts receivable debit balance. However, Prepay customers will have had their invoices paid by the application of customer deposits — credit memos simply create accounts receivable credits.
- Customer Overpayments: When customers mistakenly overpay on amounts due, it is easy to end up with an unapplied customer payment record. This results in a natural accounts receivable credit.
While there are more situations, these general classes of situations illustrate that accounts receivable credit balances may be addressed in most accounting operations.
How to Convert NetSuite Accounts Receivable Credits to Customer Deposits
There is no built-in way to convert NetSuite accounts receivable credits to customer deposits. However, we can get there through a general ledger account devoted to “clearing” sometimes called “netting”. The goal is to ensure that the accounts receivable credit leaves the accounts receivable aging reports and shows up as a natural customer deposit. Here is what to do:
- Create a Zero-Balance Cash Type General Ledger Account: create a cash account that should always have a zero balance. The purpose of this account is to clear transactions that we will use in this operation. Ideally, build a saved search control to help you confirm that this account is always zero. Readers may be interested in my 2019 article, Solve NetSuite Foreign Currency Cash Operations with the Prolecto Account Clearing Transaction Bundle, which illustrates the pattern.
- Craft a Customer Refund: produce a NetSuite Customer Refund record against the Zero-Balance Cash account to “pay out” the accounts receivable credit(s). The record supports sublists that show all the credits available to be refunded. Ideally, indicate in the memo field that the operation is to convert the credit(s) to a customer deposit.
- Craft a Customer Deposit: Now create a related customer deposit for the total amount of the customer refund record using the Zero-balance Cash account. Likewise, indicate in the memo that the operation was a result of the customer refund credits; provide a descriptive reference to the customer payment record.
In many of our client implementations, as we help them design their NetSuite-driven accounting practices, this clearing technique is prescribed as a general pattern to solve NetSuite bookkeeping puzzles. We often create a custom Transaction Body field that allows each record to reference the other. Meaning, we can create a record pointer from the Customer Deposit record to the Cash Payment record; and vice versa.
The Issue with Accountants’ Hammer-Nail Journal Entry Approach
A fundamental accountant skill is to use debits and credits to reclass and fix bookkeeping situations. Thus the NetSuite journal entry represents the tool to get the job done. Yet, I frequently challenge our staff and our clients to think about how to avoid journal entries in NetSuite for various reasons. In our case here, what’s the big deal with creating the following transaction?:
Dr Accounts Receivable XX (reference customer name) Cr Dr Customer Deposit XX (reference customer name)
While the journal entry above will get the job done, from a general ledger impact, it misses important considerations:
- Netting out Accounts Receivable Credits: the journal entry will now float; yes the customer aging will show a zero balance, but detailed aging reports will show open transactions. Another transaction, namely a zero balance customer payment will need to be recorded to get all the transactions to apply to each other and thus fall off the aging.
- Missing Customer Deposits Function: while the general ledger may be correct, the customer deposit application will now not apply the journal entry based customer deposit credit. Worse, NetSuite’s customer record will not show the correct deposit balance. You need a native Customer Deposit transaction to keep the customer deposit ledger system reporting correctly and process subsequent transactions as designed.
I believe it is important to be judicious when working with Journal Entries in large-scale accounting operations. When working with NetSuite’s accounting architecture, there is no separate general ledger as one might expect in older-world accounting applications. Instead, there is an array of transaction types that have reference to general ledger accounts. To generate a balance sheet, you simply summarize all posting transactions grouped by balance sheet account (see my related 2016 article, How to Produce a NetSuite Trial Balance with Saved Searches). In many respects, specific transaction types represent sub-ledger functionality. The goal then, for an internal control and ease-of-explanation practice, is to keep the general ledger balance supported by the specific transaction types pure to minimize side effects (the classic is the “-no name-” reference in reports) and allow for related transactions to apply-to-each-other to help close out the transaction cycle.
Thus, the practice described works to help the accounting operation not have an “out-of-band” transaction that then may need more special work that is further differentiated from day-to-day recurring bookkeeping operations and closing procedures.
Connect to NetSuite Support Leadership
The key to the powerful use of the NetSuite platform is to understand the built-in transaction types provided and the impact of using non-standard transactions to achieve particular bookkeeping. With more thought and innovation, you can use native transaction types with the account clearing pattern to solve many bookkeeping puzzles. Working with our firm and our professionals that have both accounting background and NetSuite experience, we bring these practices to our clients to help them lower their ongoing accounting operations.
If you found this article relevant, feel free to sign up for notifications to new articles as I post them. If you would to connect with professionals dedicated to bringing recognized best practices NetSuite leadership to your business operation, let’s have a conversation.
Our A/R aging has entries going back several years – both for named customers and no customer/project entries. I’d like to explore a project to clean up the aging and establish a go-forward process for accounting for monthly pre-payments.
Hello Paul,
Yes, of course we can help. This can be a challenge. Please contact us here: https://www.prolecto.com/contact-us/
Marty