Marty Zigman Marty Zigman
Prolecto Labs Accelerator Templates

Add a NetSuite Default Payment Method to Customers and Vendors

Accounting NetSuite Technical



This article is relevant for those looking to enhance the efficiency of NetSuite’s cash receipt (customer payments) and bill payment processes.

Background

NetSuite provides a list of payment methods applicable to both cash collection and payment disbursements. Interestingly, there isn’t a built-in linkage for this list to Customers or Vendors. Many of our clients express a desire to manage vendor payments based on the type of payment. Similarly, customers generally use consistent payment methods to pay their invoices.

To address this, introducing a new NetSuite custom entity field, coupled with straightforward scripting, enables us to replicate the desired default functionality. This enhancement is not just beneficial for our clients; we at Prolecto Resources also leverage this functionality for our customer payments and cash receipts.

Thus, this article will help you learn how to implement this desired capability.

Implement a Default Payment Method for NetSuite Customers and Vendors

To establish a default payment method for NetSuite customers and vendors, follow these steps that leverage NetSuite’s flexibility:

  1. Create an Entity Field: Design a new entity field that links to NetSuite’s built-in payment methods. Make sure this field is accessible for both vendors and customers, allowing for a unified payment method reference across entities.
  2. Update Vendors and Customers: Utilize a saved search to identify the payment methods previously utilized in customer payments and vendor bills. Then, employ the CSV import functionality to update the vendor and customer records with the new field, ensuring consistency and accuracy in payment method preferences.
  3. Improve Customer Payment Process: Implement a simple script that automatically selects the default payment method based on the customer’s preference when processing payments. This streamlines the payment process, enhancing efficiency and user experience.
  4. Optimize Bill Payment Workflow: Integrate the new custom payment method field within NetSuite’s bulk payment feature. This allows for the easy identification and selection of bills eligible for payment via the preferred method, simplifying the bill payment process and improving operational efficiency.

By following these steps, you can significantly enhance the payment handling process in NetSuite, making it more user-friendly and efficient. Below are more details about this process.

Craft the Custom Entity Field for Vendors and Customers

To create the custom entity field for both vendors and customers, leverage NetSuite’s user-friendly customization interface. Follow these steps to establish the new payment method field and make it visible within vendor and customer records:

  1. Navigate to NetSuite’s customization options and select the option to create a new entity field.
  2. Define the field, specifying it as a payment method field. Ensure that the field type is a list referencing the NetSuite native payment method.
  3. In the field settings, enable visibility for both vendor and customer records, ensuring the field is accessible where needed.
  4. Save and apply the changes, making the new payment method field active and visible on the specified records.

By following these steps, you effectively integrate the missing payment method field into your NetSuite environment, setting up the default payment processes for vendors and customers.

Click the image to see the definition.

Update Customers and Vendors with Default Payment Methods

To update the payment methods for customers and vendors with the new custom field, follow this process:

  1. Construct a Saved Search: In NetSuite, create a transaction-based saved search specifically designed to identify the payment methods previously utilized by your customers and vendors. This search should capture the last or most frequently used payment method for each entity to ensure accuracy in default payment method assignment.
  2. Export Search Results: Once the saved search is finalized and run, export the results to a CSV file. This file will contain the essential data needed to update the payment methods for each customer and vendor in your records. I recommend exporting the internalid of the customer as this eases updates.
  3. Utilize CSV Import Tools: With the exported CSV file, use NetSuite’s CSV import functionality to update the records. Map the fields appropriately, ensuring that the new custom payment method field is correctly aligned with the data from your saved search. Be sure to use the “name” field type.
  4. Update Records: Execute the import and confirm the records are updated as expected.

Click the image to see an inspiration-based saved search definition.

Enhance the Customer Payment Interaction

Using some simple script (SuiteScript version 1.0 shown below), update the default interaction on the customer payment screen. The same technique can be used for customer deposit records. See the code below and click the image to see the resulting set. In the Prolecto use case, we wanted to have the default check number for electronic methods use the transaction date to drive a meaningful string.

/* use custom payment method to help drive default values;
for electronic payment methods, as distinguished by a "-" in name,
add the transaction date in the format: yyyymmdd */

function formFieldChange(type, name) {
	switch (name) {
	case 'paymentmethod' :
		setCheckNum(nlapiGetFieldText(name), nlapiGetFieldValue('trandate'))
		break;
	
      case 'customer' : 
    	var f = ['custentity_pri_entity_paymentmethod']  //lookup field[s]       
        var v = nlapiLookupField('customer', nlapiGetFieldValue(name), f, true)
		
        if (v) {
			if (v.custentity_pri_entity_paymentmethod) {
				nlapiSetFieldText("paymentmethod", v.custentity_pri_entity_paymentmethod);
			}
        }
		break;
        
    case 'trandate' :
		setCheckNum(nlapiGetFieldText('paymentmethod'),nlapiGetFieldValue(name)) 
		break;
		
	default :
    };
}

function setCheckNum(p,t){
	// p = payment method
	// t = trandate
	// assumes that the hypen denotes an electronic payment method
	if (p){
		if (p.indexOf(' -') > -1 ){
			var prefix = p.substr(0, p.indexOf(' -'))
			var d = new Date();
			if (t) {
				d = nlapiStringToDate(t);
			}
			var val = (prefix) ? prefix + ' ' + d.yyyymmdd() : '';
			nlapiSetFieldValue("checknum", val)
		}
	}	
}

Date.prototype.yyyymmdd = function () {
	return this.toISOString().slice(0,10).split('-').join('')
}

Click the image to see how the integration works on the customer payment screen.

Enhance the Native Pay Bills Bulk Processor Screen

In this case, we are lucky. The native NetSuite Pay Bills screen can be modified for a custom filter to expose the reference to the custom payment method. Click the image to see how it should look. Note, I have spoken before about overcoming the challenges with NetSuite bulk generators in my 2020 article, See How to Craft Fast and Flexible NetSuite Bulk Record Generators.

Leverage the NetSuite Platform to Drive Optimized Processing

This article is a great illustration of how you can use the platform to streamline operational processing. With the images, code snippets, and the narrative, this should be within the reach of most NetSuite Administrators. Naturally, as a NetSuite Systems Integration Firm since 2008, our organization excels at optimizing our client’s NetSuite configurations. This solution is what we call a “quick win” to help gain efficiency in the 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 like to have a similar solution implemented in your NetSuite configuration, let’s have a conversation.

Marty Zigman

Holding all three official certifications, Marty is regarded as the top 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 30 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 - YouTube

About Marty Zigman

Marty Zigman

Holding all three official certifications, Marty is regarded as the top 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 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

Biography • Website • X (Twitter) • Facebook • LinkedIn • YouTube

2 thoughts on “Add a NetSuite Default Payment Method to Customers and Vendors

  1. Alessandro Arnulfo says:

    Why no to directly set the default payment terms for a customer or vendor directly on the Customer (or Vendor) record under the Financial Tab?

  2. Marty Zigman says:

    Hello Alessandro,

    This solution is not about the terms. It is about the payment method.

    Marty

Leave a Reply

Your email address will not be published. Required fields are marked *