Source: https://atomic-works-test.docs-staging.pageloop.ai/integrations/overview/oracle-netsuite-integration

# Oracle Netsuite Integration

---
description: >-
  Connect Oracle NetSuite to Sprinto to securely sync user and role data using
  token-based authentication for automated access reviews and compliance checks.
---

# Oracle NetSuite Integration

### Overview

The Oracle NetSuite integration allows Sprinto to securely read user and role information from your NetSuite account to support automated access reviews and compliance monitoring.

This integration uses **token-based authentication** and the **Unified User Directory API**. Sprinto only reads the minimum user and role metadata required for compliance checks. No financial, payroll, or transactional data is accessed.

**Prerequisites**

* Admin access to Oracle NetSuite (required to configure roles and tokens)
* Ability to enable REST and SOAP web services in NetSuite

***

### Permissions required

Sprinto follows the principle of least privilege and requires minimum, read-only access wherever possible.

### On Oracle NetSuite

Sprinto requires the following permissions to read user and organisational data and authenticate using access tokens.

To configure permissions:

1. Go to **Setup → Users/Roles → Manage Roles.**
2. Select the role used for the integration and click **Edit.**
3. Navigate to the **Permissions** tab.

#### Setup tab

<table><thead><tr><th width="257.26171875">Permission</th><th width="106.65625">Level</th></tr></thead><tbody><tr><td>SOAP Web Services</td><td>View</td></tr><tr><td>Records Catalog</td><td>View</td></tr><tr><td>REST Web Services</td><td>View</td></tr><tr><td>Log in using Access Tokens</td><td>Full</td></tr><tr><td>User Access Tokens</td><td>Full</td></tr><tr><td>Company Information</td><td>View</td></tr></tbody></table>

#### Lists tab

<table><thead><tr><th width="172.0390625">Permission</th><th width="95.5859375">Level</th></tr></thead><tbody><tr><td>Employees</td><td>View</td></tr><tr><td>Employee Record</td><td>View</td></tr><tr><td>Perform Search</td><td>View</td></tr><tr><td>Locations</td><td>View</td></tr><tr><td>Subsidiaries</td><td>View</td></tr><tr><td>Departments</td><td>View</td></tr><tr><td>Classes</td><td>View</td></tr></tbody></table>

#### Reports tab

<table><thead><tr><th width="215.1484375">Permission</th><th width="91.44140625">Level</th></tr></thead><tbody><tr><td>SuiteAnalytics Workbook</td><td>View</td></tr></tbody></table>

{% hint style="warning" %}
#### Important

* Full access is required only to enable token-based authentication:
  * Log in using Access Tokens.
  * User Access Tokens.
* All other permissions are read-only and used strictly for compliance monitoring.
* Sprinto does not create, update, or delete users in NetSuite.
* Sprinto does not access accounting, payroll, or financial records.
{% endhint %}

### On Sprinto

* Admin access is required to configure integrations

***

### How it works

Once connected, Sprinto uses token-based authentication to securely connect to Oracle NetSuite and read user and role data.

* Sprinto fetches employee records and associated role information.
* The data is used to power access reviews and user-related compliance checks.
* Sprinto performs an initial post-connect validation to confirm permissions and data availability.
* Subsequent syncs run automatically to keep user data up to date.

If required permissions are missing or credentials are invalid, Sprinto surfaces an error on the integration status page.

***

### Connect Oracle NetSuite to Sprinto

#### Steps in Sprinto

1. Sign in to the Sprinto dashboard.
2. Go to **Settings**.
3. Select **Integrations** (the _Available_ tab opens by default).
4. Search for **Oracle NetSuite**.

<figure><img src="../../.gitbook/assets/Screenshot 2025-12-23 at 13.58.11.png" alt="" width="563"><figcaption></figcaption></figure>

5. Select **Connect**.
6. Review the permissions and data usage details, then select **Next**.

<figure><img src="../../.gitbook/assets/Screenshot 2025-12-23 at 13.59.35.png" alt="" width="563"><figcaption></figcaption></figure>

7. Confirm that you have admin access to your Oracle NetSuite account.
8. Select **Connect to Oracle NetSuite**.

<figure><img src="../../.gitbook/assets/Screenshot 2025-12-23 at 14.00.40.png" alt="" width="375"><figcaption></figcaption></figure>

Sprinto opens a secure connection window where you must enter your NetSuite credentials.

***

#### Steps in Oracle NetSuite

You must generate the required credentials in Oracle NetSuite before completing the connection.

**Step 1: Find your NetSuite subdomain**

* Log in to Oracle NetSuite.
* Check your browser URL.
  * Example: `https://1234567.app.netsuite.com`
  * Your subdomain is `1234567`.

<figure><img src="../../.gitbook/assets/netsuite1.webp" alt=""><figcaption></figcaption></figure>

**Step 2: Enable required features**

1. Go to [**Enable Features**](https://system.netsuite.com/app/setup/features.nl).
2. Under **SuiteTalk**, enable:
   * SOAP Web Services
   * REST Web Services
3. Under **Manage Authentication**, enable:
   * Token-Based Authentication

**Step 3: Create a custom role**

1. Go to **Create Role**.
2. Enter a name for the role (for example, _Sprinto Integration Role_).
3. Set **Accessible Subsidiaries** to **All**.
4. Enable **ALLOW CROSS-SUBSIDIARY RECORD VIEWING**.

<figure><img src="../../.gitbook/assets/netsuite2.webp" alt="" width="494"><figcaption></figcaption></figure>

5. Select ALL under SELECTED ACCOUNTING BOOKS.

<figure><img src="../../.gitbook/assets/netsuite3.webp" alt="" width="378"><figcaption></figcaption></figure>

5. Assign the permissions listed in the [**Permissions required**](oracle-netsuite-integration.md#permissions-required) section above.
6. Save the role.

**Step 4: Assign the role to a user**

1. Go to [**Manage Users**](https://system.netsuite.com/app/setup/listusers.nl?whence=).
2. Select an existing user or create a new one.
3. Open the **Access** tab and assign the role you created.
4. Save the changes.

**Step 5: Create an integration record**

1. Go to [**Integrations**](https://system.netsuite.com/app/common/integration/integrapp.nl?whence=).
2. Create a new integration record.
3. Enable:
   * Token-Based Authentication
   * REST Web Services
4. Save the integration and securely copy the **Consumer Key** and **Consumer Secret**.

<figure><img src="../../.gitbook/assets/netsuite4.webp" alt="" width="563"><figcaption></figcaption></figure>

**Step 6: Generate an access token**

1. Go to [**Access Tokens**](https://system.netsuite.com/app/setup/accesstoken.nl?whence=).
2. Create a new token using:
   * The user you assigned the role to
   * The custom role you created

<figure><img src="../../.gitbook/assets/netsuite5.webp" alt="" width="563"><figcaption></figcaption></figure>

3. Save and securely copy the **Token ID** and **Token Secret**.

<figure><img src="../../.gitbook/assets/netsuite6.webp" alt="" width="563"><figcaption></figcaption></figure>

***

#### Confirm successful connection

Return to Sprinto and enter the following details:

* NetSuite subdomain
* Consumer key
* Consumer secret
* Token ID
* Token secret

Select **Connect**.

Once successful, the integration status updates to **Connected**, and the initial data sync begins.

***

### Post-integration behaviour (PCF flow)

After the connection is complete:

* Sprinto runs an initial validation to confirm permissions.
* User and role data is synced from NetSuite.
* The integration status shows the last successful sync time.
* Any permission or authentication issues are flagged as errors on the integration page.

Data updates automatically on subsequent syncs to keep access reviews current.

***

### Troubleshooting

#### Issue: Integration fails during connection

**Cause:** Incorrect credentials or missing token-based authentication.\
**Resolution:** Verify that Token-Based Authentication, REST Web Services, and SOAP Web Services are enabled in NetSuite and re-enter valid credentials.

***

#### Issue: Users are not syncing

**Cause:** Missing `Employees – View` permission.\
**Resolution:** Confirm that the custom role includes the required permission and regenerate the access token.

***

#### Issue: Authentication error after initial setup

**Cause:** Token revoked or expired in NetSuite.\
**Resolution:** Generate a new access token in NetSuite and update it in Sprinto.
