Table of Contents
ToggleCustomer Hurdles
The task of processing payments for customers selecting credit card payment is performed manually and demands considerable time from the NetSuite user. This manual nature of the process risks missing invoices or charging customers inaccurate amounts.
Workflow Before Automation
#1. The AR Clerk compiles a list of outstanding invoices in NetSuite for customers opting to pay by credit card.
#2. Next, they navigate to the Braintree payment platform, a distinct application from NetSuite, to manually charge the customer’s credit card for each listed invoice.
#3. Finally, they return to NetSuite to create the payment transactions manually.
About the Customer
Location: San Francisco, California
Categories: Web Infrastructure, Internet Security, Enterprise Software
Stage: IPO/Public
Number of Employees: 500 – 1000
Number of NetSuite Users: 150-200
Number of Subsidiaries: 5
Project duration: 1 month
Proposed Solution
The recommended solution involved constructing a custom screen within NetSuite utilizing NetSuite Suitelet to group customer invoices and designate them for automatic processing through a NetSuite <> Braintree Integration. This solution enabled the AR Clerk to process invoices in bulk without logging into a separate application for individual processing. This automated system also generated the Payment transaction in NetSuite as soon as the invoice was processed successfully in the Braintree payment platform.
Manually handling credit card payments consumes around 5 minutes for each invoice. Processing 40 to 50 invoices would take 4 hours of the AR Clerk’s time, which is significantly inefficient and not scalable. With the new integration, 50, 100, or even 1000 invoices could be processed in mere minutes, rather than hours.
An Intelligent Approach Using NetSuite Suitelet UI and Automation Features
Firstly, Suitelet serves as an excellent method for establishing a custom UI that enhances user workflows. In this instance, it allows users to create a list of invoices by applying various criteria, selecting them for payment through Braintree-all from a single screen.
Another advantageous aspect of this Suitelet is that it is based on a saved search. This enables business users to modify, add, or remove result columns and search criteria without needing a developer’s assistance to alter the Suitelet code.
Workflow After Automation
#1. The AR Clerk accesses the Suitelet screen, selects invoices to include in the payment batch, and then clicks the “Submit” button.
#2. Upon submission, the NetSuite <> Braintree integration automatically charges the customer’s card via Braintree.
#3. If the payment is successfully processed in Braintree, the integration script automatically generates a Payment transaction for that invoice in NetSuite. If there is a failure in payment processing at Braintree, the user is notified by email, and no payment is created in NetSuite. Additionally, error details and handling mechanisms are embedded in the automation to support users in managing exceptions directly from the Suitelet screen.
With this optimization project, our client can now bill credit cards promptly, eliminating manual efforts and reducing potential errors.
NetSuite Customization and Technical Features
Suitelet
A Server Widget Form serves as a custom NetSuite page displaying a grid of all invoices due for payment. A submit button is placed at both the top and bottom of the form. Upon submission, the Suitelet transmits the necessary information to Braintree to process payments for all selected invoices.
Integration
An HTTP POST request is sent to Braintree, employing the GraphQL architecture. This request comprises structured information regarding the invoices and seeks payment processing. Upon receiving a response to the HTTP POST request, the Suitelet interprets the response to distinguish between invoices that were successfully paid and those that were declined or encountered errors. The system invokes a Map/Reduce script, sending invoice details via Script Parameters to generate the appropriate Payment transactions. The system then sends an email to selected users based on a predefined NetSuite email template.
Map/Reduce Script (triggered by the above Suitelet script)
#1. Reads and processes the information supplied by the Suitelet as script parameters.
#2. Reviews the invoices to create the corresponding payment transactions.
#3. If a payment transaction creation fails, the script logs the invoice and notifies the user via email.
For more information, please reach out.


