Implementing OAuth REST Connections for NetSuite in SSIS Processes

25 April 2025
KingswaySoft Support

When working with NetSuite, integrations have traditionally relied on its SOAP-based web service interfaces. While functional, SOAP can be verbose, complex, and more rigid in terms of service interoperability, and it is especially challenging when handling authentication and working with custom objects. NetSuite’s newer REST API, by contrast, offers a modern, lightweight, and more flexibility in how objects are handled and processed, which makes it more secure and more efficient. In SSIS (SQL Server Integration Services) practice, many of our clients have used our NetSuite toolkit with great success using the SOAP connection that has been available since the initial release of the toolkit. The great news is, that we have recently introduced support for REST connections that work with OAuth authentication in the toolkit which provides the following benefits that make it more future-proof.

  • OAuth is a modern application authentication and authorization infrastructure that provides a secure way to access your application data, it allows for scope-constrained access, and its token lifecycle management makes it more secure, as a token can only a limited lifecycle, and it can be revoked at any time if necessary.
  • REST uses a simpler request/response structure, and offers better performance which makes it a preferred choice over SOAP, especially in modern ETL workflows that might deal with a large number of records.

In this blog post, we’ll walk through a working example of how to set up and integrate with NetSuite REST using OAuth token-based authentication leveraging the newly introduced features in an ETL process. We hope that this blog post can serve as a quick guideline on how to establish a successful connection to your NetSuite instance, allowing you to start your integration development.

Before we start, here is a brief summary of the steps that are required in order to achieve the connection with your NetSuite instance.

  1. Enable the REST Web Services feature in NetSuite.
  2. Create an integration record in NetSuite, generate consumer key and secret.
  3. Create a role in NetSuite and set permissions.pla
  4. Assign the role to a user.
  5. Generate the access token in NetSuite.
  6. Acquire the Account ID.
  7. Lastly, configure a NetSuite Connection Manager in SSIS.

In Your NetSuite Instance

Step 1: First, we will need to enable the REST Web Services features to be able to work with Token-Based authentication. To do so, we would log in to NetSuite as an admin, navigate to Setup > Company, and find the Enable Features option in the menu.

Enable Features

There will be an option to work with NetSuite REST-based Web Services, we should turn on this option by having it checked in order for the REST-based connection to work. Once done, we can save the setting (found near the bottom).

Enable REST Web Services

Step 2: The second step would be to create your Integration Record Setup. The section can be found under the Setup Manager: Setup > Integration > Manage Integrations and select the New option to create a new integration record.

An important note about the Consumer Key and Secret, they are only visible. They would be no longer available as soon as you have left the page. It is time to save both the Key and Secret which will be later used in the connection manager.

Client Credentials

For required fields on this page you will need to ;name your new integration and set its State to Enabled in the dropdown. Under the Token-based authentication, we need to enable the TOKEN-BASED AUTHENTICATION option.

If you are editing an existing integration and working with a previous form of authentication you may leave the below settings configuration as default, since it will not affect the token-based authentication (the same integration record can be used for more than one authentication type). The Consumer Key and Secret may be regenerated with a new set of values using the Reset Credentials option when needed.

    Integration Setup

    Step 3: The third step would be to create a new role or reuse an existing one. In our example we are creating a new role under the Setup Manager > Users/Roles > Manage Role and select New. The REST Web services feature does not use the same permissions as SOAP, in which case you would need record-specific permissions just like the UI roles. Permission to access records via REST lets you choose in a more fine-grain manner. This has the benefit of only needing to select the objects you intend to work with and provide just the required access level for each. When managing the role we would need to add Setup Permissions REST Web Services and Log in using Access Token and verify they are set to Full.

    Note: Accounts object permission would need to be set as our connection manager calls this endpoint when you test the connection.

    Permission REST Web Services

    Permission login using access tokens

    Step 4: Next we will be assigning the role to a user. To do so, we can go to Lists > Employees > Employees, edit the user, and add the role to their access tab.

    Add roles to user

    Step 5: Within the NetSuite environment we will be generating the Token ID and Token Secret. This can be found under the Setup Manager > Users/Roles > Access Tokens and selecting New. To generate the new token we will need to provide the information below and then click to save. It is important to note, a new token will only be visible until we leave the page. If you have ever lost the token, you will have to create a new one if the ID or Secret are lost as they cannot be regenerated.

    • Application Name: Select the Integration Records created previously.
    • User: Select the user assigned to the role.
    • Role: We select the 'API Role' role we created previously.
    • Token Name: Give any name to keep track of the token.

    Access Token

    Step 6: Lastly we can acquire the Account ID which will be the first portion in the browser URL when logged into your NetSuite environment.

    Account ID

    Configure the Connection Manager in SSIS

    Step 7: Once you have completed the setup in NetSuite we can perform the last step by heading to your Integrations Services Project to complete the connection setup. We can create a new NetSuite Connection Manager, as shown below, you can use the information gathered earlier to fill out the connection properties for the REST Endpoint connection. The Consumer Key and Consumer Secret we have saved from step 2, and the Token ID and Token Secret saved from step 5. The Account ID can be copied over from step 6. Once you have the details we will be able to test the connection to ensure it is successful.

      Connection Manager Configuration

      After the connection manager has been created, you can then add NetSuite Source and NetSuite Destination components in your data flow process to achieve data read and write purposes.

      Closing Notes

      We hope this guide has been helpful in getting you started with NetSuite REST integration. By following the steps above, you should now have a working connection using REST and OAuth authentication within SSIS. We briefly covered why REST is more efficient and secure, and how its token-based model is a strong improvement over the legacy SOAP approach.

      Archive

      April 2025 3 March 2025 1 February 2025 1 January 2025 2 December 2024 1 November 2024 3 October 2024 1 September 2024 1 August 2024 2 July 2024 1 June 2024 1 May 2024 1 April 2024 2 March 2024 2 February 2024 2 January 2024 2 December 2023 1 November 2023 1 October 2023 2 August 2023 1 July 2023 2 June 2023 1 May 2023 2 April 2023 1 March 2023 1 February 2023 1 January 2023 2 December 2022 1 November 2022 2 October 2022 2 September 2022 2 August 2022 2 July 2022 3 June 2022 2 May 2022 2 April 2022 3 March 2022 2 February 2022 1 January 2022 2 December 2021 1 October 2021 1 September 2021 2 August 2021 2 July 2021 2 June 2021 1 May 2021 1 April 2021 2 March 2021 2 February 2021 2 January 2021 2 December 2020 2 November 2020 4 October 2020 1 September 2020 3 August 2020 2 July 2020 1 June 2020 2 May 2020 1 April 2020 1 March 2020 1 February 2020 1 January 2020 1 December 2019 1 November 2019 1 October 2019 1 May 2019 1 February 2019 1 December 2018 2 November 2018 1 October 2018 4 September 2018 1 August 2018 1 July 2018 1 June 2018 3 April 2018 3 March 2018 3 February 2018 3 January 2018 2 December 2017 1 April 2017 1 March 2017 7 December 2016 1 November 2016 2 October 2016 1 September 2016 4 August 2016 1 June 2016 1 May 2016 3 April 2016 1 August 2015 1 April 2015 10 August 2014 1 July 2014 1 June 2014 2 May 2014 2 February 2014 1 January 2014 2 October 2013 1 September 2013 2 August 2013 2 June 2013 5 May 2013 2 March 2013 1 February 2013 1 January 2013 1 December 2012 2 November 2012 2 September 2012 2 July 2012 1 May 2012 3 April 2012 2 March 2012 2 January 2012 1

      Tags