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

  • 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 integraiton 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.

NetSuite Vendor Bill Payments into Coupa

This  integrations 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?