Learn How To Recurrently Accept NetSuite Customer Payments and Deposits

This article is relevant if you are using NetSuite and you need a way to automatically charge a credit card, create a customer deposit or accept a customer payment.


During a recent NetSuite implementation, our client needed to setup a recurring payment solution to satisfy two key situations:

  1. Financing Property Sales:  a long-term asset was sold on an invoice and effectively financed.
  2. Funding Trusts: an interest-bearing mechanism to hold monies in advance for future services.

Their clients would like to pay for these situations with various payment methods. Two payment methods lend themselves to an automated payment program:

  1. Credit Card Payments: using NetSuite’s secure mechanism to hold credit cards, charge the card on file.
  2. Debit (ACH): trigger the collection of funds that are driven from other NetSuite payment methods.

NetSuite, however, does not have an easy-to-setup mechanism to simply accept payments in a recurrent pattern. Yes, there are different add-on modules that can automatically create invoices, but these did not quite fit right for our client. We needed to help our client automatically accept a payment and apply it against an invoice, or we needed to automatically create a customer deposit and link it to an estimate record (in our client’s case, we used estimates to act as a trust record). NetSuite offers no memorized transactions to help us.

Leveraging NetSuite’s Platform To Automate Recurring Credit Card and Charges

To get in front of the situation, we developed a Recurring Charge Generator system. The key to this structure is a custom record object that an end user can set up to hold the definition for a recurring charge; the record is attached to the customer and related source transaction (if any). The concept is to define the following:

  1. Target Type: Either we will produce a charge resulting in a Customer Payment or a Customer Deposit transaction.
  2. Amount to Charge: How much do we want to charge?
  3. Next Charge Date: Set the next charge date and automatically increment it one month once successful.
  4. Payment Method: Select the payment method used to produce the charge. The payment method defines the general ledger routing.
  5. Credit Card Reference: if the payment method is a credit card type, select the credit card that has been previously stored on the customer’s record.
  6. Maximum Amount to Charge: Charge up to a maximum amount preventing overcharge situations.
  7. Do Not Charge After: Stop charging after a specific date.

In day-to-day business, users will be working on source transaction records (e.g., an invoice or an estimate record). Once ready, they need to get the recurring charge record setup. Using another one of our technologies which will inspect the parameters on a URL during the creation of a new record (a topic for another article), we can help the user craft the recurring charge record by defaulting relevant information to get it in play.

NetSuite On Demand and Automated Scheduled Charges

To make the system scalable, there are two modes needed to drive the setup records to produce the charges:

  1. On Demand: a bulk processing tool to allow users to select recurring charge records and generate charges.
  2. Scheduled Workflow: a workflow driven mechanism that leverages saved search to make the record charge operation hands-free.

The record anticipates problems in creating charges. The classic example is a credit card that has expired. For any reason we can’t create a charge, we modify the record status and supply script processing notes to help the user stay informed. Thus dashboards and other alerts can be used to dial-in the practice for on going record care.

Get the Recurring Charge Generator

Since our commitment as a NetSuite Systems Integration Practice is to offer services that demand intellectual leadership, we know that our capacity to invent with the NetSuite platform combined with our strong business and accounting background represents our core competency. I help our clients understand we don’t actually offer products. Yet we have plenty to give to our clients. As such, we give all the tools we have built since 2008 to our clients license-free.  Should you be in a situation where our thinking and offerings may make a difference, 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

| Category: Accounting, ERP, NetSuite | 2 Comments


  1. Posted October 8, 2018 at 6:49 am | Permalink

    Hello, is there a way to do a mass update to all memorized transactions? We just changed credit card processors and do not want to edit each one individually

  2. Posted October 21, 2018 at 9:33 am | Permalink

    Hello Pete,

    There may be a method. But our attempts have not yielded results. It appears that memorized transactions are locked from API modifications. I may be mistaken though.


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>