Skip to main content

 

 

Coupa Success Portal

NetSuite Integration Playbook

This article covers Coupa integration with NetSuite, including:

  • P2P Dataflow and Integration Points

  • Integration Method

  • Coupa Approved (OK to Pay) Invoices to NetSuite Vendor Bill

  • Coupa Approved (OK to Pay) Expense Reports to NetSuite Expense Report

  • Coupa Approved (OK to Pay) Expense Reports to NetSuite Vendor Bill

  • Coupa SIM to NetSuite Vendor

  • NetSuite Vendor Bill Payments into Coupa

  • NetSuite Vendor to Coupa Suppliers

  • NetSuite Subsidiary/Department/Class/GL Account/Location to Coupa Account Segments

  • Datamapping

P2P Dataflow and Integration Points

This section of integrate.coupa.com is to help clients using NetSuite understand best practice and considerations when integrating with NetSuite. The diagram below indicates the most common integration points between NetSuite and Coupa. Typically we have master data - suppliers, account segments and transaction data - bill payments coming from NetSuite into Coupa and transaction data - Approved Invoices going from Coupa into NetSuite.

Integration Method

Coupa integrates seamlessly with NetSuite using the Coupa REST API and NetSuite’s Suitescript.

Coupa provides rich, robust access to read, edit, or integrate data via a RESTful API. This UTF-8 XML based interface allows you to create, update, and take action on individual records within Coupa by making an HTTP request call.

Built on industry standard JavaScript that ensures portability and rapid developer productivity, SuiteScript enables full-featured application-level scripting capabilities throughout NetSuite. Suitescript provides a complete set of flexible scripting models to support customization needs, including user event-based scripts and scheduled scripts.

The Coupa NetSuite Integrations have been built to meet and comply with the documented practices for architecture, development, privacy and security of the NetSuite SuiteCloud platform and is certified and approved by the “BUILT FOR NETSUITE” program.

Coupa Approved (OK to Pay) Invoices to NetSuite Vendor Bill

This integration brings over approved Invoices from Coupa into NetSuite. The integration is run as a scheduled suitescript on NetSuite’s SuiteCloud platform. During each scheduled run, the integration script queries (HTTP GET) Coupa for any approved but un-exported Invoice(s) and creates Vendor Bill(s) in NetSuite. Once an Invoice is successfully created in NetSuite, it is marked as exported in Coupa. The nlapiRequestURL function is used to query Coupa and the nlapiCreateRecord('vendorbill') function is used to create the vendor bill in NetSuite. For each Invoice line in Coupa an Expense line is created in the NetSuite vendor bill. All the data transformations are built within the script

Coupa Approved (OK to Pay) Expense Reports to NetSuite Expense Report

This integration brings over approved Expense Reports from Coupa into NetSuite. This integration is run as a scheduled suitescript on NetSuite’s SuiteCloud platform. During each scheduled run, the integration script queries (HTTP GET) Coupa for any approved but un-exported Expense Report(s) and creates Expense Reports(s) in NetSuite. Once an Expense Report is successfully created in NetSuite, it is marked as exported in Coupa. The Expense Reports require Coupa Expenses Users to be set up in NetSuite as Employees, and Expense categories to be a one to one match. The nlapiRequestURL function is used to query Coupa and the nlapiCreateRecord(‘expensereport’) function is used to create the vendor bill in NetSuite. For each Expense line in Coupa an Expense line is created in the NetSuite Expense Report.. All the data transformations are built within the script.

Coupa Approved (OK to Pay) Expense Reports to NetSuite Vendor Bill

This integration brings over approved Expense Reports from Coupa into NetSuite as Vendor Bills. This integration is useful if clients want to pay their employees in a currency other than the "functional currency" of the employee's subsidiary in NetSuite. It is a scheduled suitescript. To use this solution, you will need to make sure that Coupa Expense Users are set up as Vendors in NetSuite. The integration can skip Expense Reports created from Credit Card Integrations, if desired. 

Coupa SIM to NetSuite Vendor

This integration takes a Coupa SIM record and uses it to either create or update a Vendor in NetSuite. Coupa SIM allows users to better manage supplier information using Coupa's user friendly UI. It allows you to request additional supplier information directly in Coupa, while keeping the ERP as the source of truth for supplier data. This integration is a scheduled suitescript. Every hour or so (depending on your configuration), the integration will look for all SIM records in Coupa that are approved and have not been exported. It will then process each SIM record one at a time and either create or update the corresponding Vendor in NetSuite. As part of the SIM integration, the following sub records are brought over to NetSuite: Primary Contact, Addresses, & Bank Payment Records. 

NetSuite Vendor Bill Payments into Coupa

This  integration updates the payment status of Invoice in Coupa once the vendor bill payment is made in NetSuite. The integration is run as a scheduled suitescript on NetSuite’s SuiteCloud platform. During each scheduled run, the integration script queries NetSuite for any vendor bill payments using the NetSuite search functionality and then updates the payment status on the Coupa Invoices. The nlapiSearchRecord( 'vendorpayment', null, filters) function is used to search NetSuite for vendor bill payments and the nlapiRequestURL function is used to do a HTTP PUT on the Invoice record in Coupa and update the payment status on the Invoice.

NetSuite Vendor to Coupa Suppliers

This integration syncs up Vendor records between NetSuite and Coupa. NetSuite is the vendor master and the records flow from NetSuite into Coupa. User Event Suitescript is used to capture the “create” and “update” events and then based on the event type either a new Supplier is created in Coupa or an existing Supplier in Coupa is updated. This integration is real time as the Coupa API call to create/update the supplier record is called as soon as the NetSuite user event is captured. The nlapiLoadRecord('vendor', recordid) function is used to read the NetSuite vendor record and the nlapiRequestURL function is used to do a HTTP POST/PUT to create/update the supplier record in Coupa.

NetSuite Subsidiary/Department/Class/GL Account/Location to Coupa Account Segments

This integration syncs up account code segments between NetSuite and Coupa. NetSuite is the master for the individual accounting segments. The Coupa COA can be configured to have multiple account segments with each segment mapping to an individual object (Subsidiary/Department/Class/GL Account) in NetSuite. There is one Coupa COA created per subsidiary, and they should leverage the Dynamic Accounting feature. User Event Suitescript is used to capture the “create” and “update” events and then based on the event type either new account segment(s) are created or existing account segments(s) in Coupa are updated. The nlapiLoadRecord('subsidiary/account/classification/department/location', recordid) function is used to read the NetSuite record and the nlapiRequestURL function is used to do a HTTP POST/PUT to create/update the account combination in Coupa.

  • Was this article helpful?