Accept Credit Cards without a NetSuite Web Site

This article is relevant if you are looking to accept credit cards in your NetSuite account but you don’t want to host a web site or use the built-in NetSuite customer center.


Many of our clients need to process credit cards. ¬†When we lead the planning for a NetSuite implementation, we often suggest to our clients to work with some of the providers that have done a good job integrating their credit card payment platforms to NetSuite. ¬†I won’t go into that here as there are many other articles on this subject. ¬†The great news is that the NetSuite platform is compliant with all PCI and related regulations. ¬†And, the NetSuite API, where my team holds expertise, has standardized the use of calling these payment platform gateways.

Generally, once our client knows they are going to accept credit cards on NetSuite leveraging an integrated ¬†payment processor, they then start to think about how they will actually collect payment. ¬†The general way this is approached is: a) if you have a NetSuite driven eCommerce site, you will use the built-in cart check out system; or b) you accept the credit card over the phone and enter it on behalf of the customer; or c) if you don’t have a hosted NetSuite web site, you can use the built-in NetSuite customer center to have the customer pay an open invoice.

I have found that for those customers that do not have a hosted NetSuite web site, many customers are not interested in setting up the NetSuite customer center as it requires password management; further, the built-in customer center is not easy to produce a fully branded experience (although this is getting easier with the add-on implementation elements provided with NetSuite Suite Commerce Advanced add-ins).

Leveraging the NetSuite SuiteScript Platform

The good news is that the NetSuite SuiteScript platform provides tools to effectively invent ways to collect credit card information in a compliant manner. ¬†They key here is to ensure that you follow NetSuite’s guidelines for how to collect and store sensitive credit card information. ¬†If you follow the guidelines as dictated by the terms of NetSuite licensing, you should be fine (due diligence: each customer must do their homework to confirm they interpret the use of working with credit card information complies with all industry and regulatory guidelines).

NetSuite Invoice Credit Card Acceptance

After helping a number of customers solve this common challenge, we began to see a recurring pattern.  The most interesting use case is when you have traditional terms based invoicing and you want to offer the option to pay with credit card.  Here, clients need a convenient way to distribute an invoice via email with a secure link to an encrypted web form that collects the credit card, validates it, and applies the payment to the invoice.   Other use cases are accepting payment when the total due is more than a single invoice to be satisfied.   In all cases, the customer experience should be branded to produce a trustworthy customer experience.  Much of the brand experience is dictated by the marketing standards held by each of our clients.

We solved this by producing the following key capacities which can be adapted if necessary:

  1. Unique Link: each invoice has a unique link to pay just that invoice.  A token key is used to prevent url tampering.  The link is available on the transaction and can be used in invoice PDF operations (see our Content Renderer for full invoice presentation control).
  2. Link Expiration: to prevent misuse, each link will expire after issuance by a user defined time interval.
  3. Two modes: Quick logo change or full branded experience: if you like the existing presentation, we developed a mechanism that allows a quick change to a company logo to effectively make it done (click image for sample).  However, if you want full control over the user experience, such as multi-language or locale references, we have an html template that is decoupled from the server side business logic.
  4. Credit Card Wallet: NetSuite makes it easy to properly store the credit card in the provided customer wallet which can help facilitate future processing.
Some of these features are options because the basic rule for avoid holding credit card data is to not hold it any longer then you need to process a transaction.  As always, clients need to be responsible for how they work with credit card information.

Get the NetSuite Credit Card Suitelet Bundle

The application was built using NetSuite Suitelet technology and is available to all standard NetSuite accounts.  We offer the Suitelet without a typical license charge but we do ask for a nominal consultation and implementation fee.   Our goal is to help our clients understand the power of NetSuite platform and learn they can turn to us for any of their requirements for NetSuite innovations or enhancements.  If you are interested in obtaining the bundle, drop me a message so we can 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, Infrastructure, NetSuite | 10 Comments


  1. Posted March 1, 2017 at 8:02 pm | Permalink

    i am interested in learning more about the credit card link you mention above. i am not sure if it would/could apply to how our business is setup. We have a brick and mortar showroom where we have a Moneris credit card machine and then we manually enter payment transactions into Netsuite and apply to a so or invoice. We also have a big website grshop that is on magento – currently we are manually charging cards through ns using payflow pro and paypal.. looking to update this process.

  2. Posted March 18, 2017 at 6:17 am | Permalink

    Our tool leverages the fact that NetSuite exposes an API to call out to the underlying payment gateway. In your case, you sound like you have a number of disconnected payment gateways and thus, this does not sound applicable.

    When we are helping our clients get the most of NetSuite, we solve for these challenges during an implementation. In your case, we would be looking at a) how to get the brick and mortar sales into NetSuite and the Magento sales and b) properly account for the disconnected payment work.

  3. Posted April 8, 2017 at 2:46 pm | Permalink

    I am interested in adding the function to have a pay link on our invoices send out via Netsuite. Please let me know what is the implementation fee.


  4. Posted April 8, 2017 at 9:33 pm | Permalink

    Hi Lucas,

    Please contact me at so we can discuss your specific situation to confirm it will work for you.

    The bundle is free yet we ask for a brief implementation engagement.


  5. Posted April 25, 2017 at 9:22 am | Permalink

    Hi Marty,

    I’m a developer working on a NetSuite integration and have landed on your site a number of times now!

    When I store a credit card, there is no address data on the credit card object model. Is there a clear way to associate an address to a credit card using the NetSuite API?

    I have more detail out here:

    The docs are very minimal and have not found a clear answer to my question. The data schema does not show a field for addressBookList or similar.

    Any advice you might have is appreciated! Thanks.

  6. Posted April 25, 2017 at 11:22 pm | Permalink

    Hello Cameron,

    I understand it as follows:

    1) When you charge the card, it is against a bill-to address.
    2) This typically is the defaulted on the customer record address sublist.
    3) This may be overridden by the address information on the specific transaction.

    Hence, store address information in the bill-to address record on the customer entity and mark it the default. Use it during your transactional work.


  7. Jordan Patterson
    Posted August 14, 2017 at 9:14 am | Permalink

    Is there any concern about a customer entering a credit card number on a non-authenticated web page? Do you encrypt the credit card data before submitting to NetSuite or anything like that?

  8. Posted August 26, 2017 at 11:25 am | Permalink

    Hello Jordan,

    The page is secure via https, like you would experience during an eCommerce shopping cart (non authenticated). The data goes right into the NetSuite’s PCI compliant credit card wallet.


  9. Posted July 30, 2018 at 4:38 pm | Permalink

    Would it be possible to add the suitelet to an existing “Online Customer Form” (Setup->Marketing->Online Customer forms) in order to take credit card details when signing up a new lead?

    Or is there some way to adapt the existing suitelet you have, so it takes new lead information?

  10. Posted August 5, 2018 at 8:28 am | Permalink

    Hello Alex,

    Under the technique we are suggesting, we would approach it as a replacement for NetSuite’s new lead collector and have it all integrated. It’s entirely possible in the framework to create a lead record and store a related credit card in NetSuite’s secure wallet.


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>