# 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 role data and authenticate using access tokens.

**Lists tab**

<table><thead><tr><th width="132.9296875">Permission</th><th width="118.48046875">Level</th></tr></thead><tbody><tr><td>Employees</td><td><strong>View</strong></td></tr></tbody></table>

**Setup tab**

<table><thead><tr><th width="233.03515625">Permission</th><th width="100">Level</th></tr></thead><tbody><tr><td>User Roles</td><td><strong>View</strong></td></tr><tr><td>REST Web Services</td><td><strong>Full</strong></td></tr><tr><td>Log in using Access Tokens</td><td><strong>Full</strong></td></tr></tbody></table>

**Important**

* `Full` access is required only to enable REST APIs and authenticate using access tokens.
* Sprinto does **not** create, update, or delete users in NetSuite.
* Sprinto does **not** access accounting, payroll, or financial records.

#### 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="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FHLQXrDn5JdTR78uD9AgP%2FScreenshot%202025-12-23%20at%2013.58.11.png?alt=media&#x26;token=0ce0d68a-fec9-4119-b0b6-240c500bb0a6" alt="" width="563"><figcaption></figcaption></figure>

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

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FQlUKxPZuyK3RvFnrrMEa%2FScreenshot%202025-12-23%20at%2013.59.35.png?alt=media&#x26;token=5bbbf462-b04b-4871-adc9-4808c7d8a929" 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="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FYPYBujuWSjx6GYF0ZWQc%2FScreenshot%202025-12-23%20at%2014.00.40.png?alt=media&#x26;token=476a9184-ae77-4d63-8516-bc4cb538ce47" 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="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FZTV8q3oqnqvqhoaRrNPL%2Fnetsuite1.webp?alt=media&#x26;token=b1c6f667-349f-4948-bcc5-f6cddb697fbe" 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="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2F4QqoD9IdpTnYtGGzBYT0%2Fnetsuite2.webp?alt=media&#x26;token=d00b6676-6c7e-49ac-baf0-a4ff92eb5471" alt="" width="494"><figcaption></figcaption></figure>

5. Select ALL under SELECTED ACCOUNTING BOOKS.

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FFjkcxTIJ5y0k049D2hWK%2Fnetsuite3.webp?alt=media&#x26;token=e488338d-500d-444a-b110-fb0164253d48" alt="" width="378"><figcaption></figcaption></figure>

5. Assign the permissions listed in the [**Permissions required**](#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="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FocFrHBxRvlcnOYEqYh1v%2Fnetsuite4.webp?alt=media&#x26;token=10f4afcc-de26-484e-93cd-189c1539e2d2" 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="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FS6bMKbyND6T5kqCWhCic%2Fnetsuite5.webp?alt=media&#x26;token=14731955-c6bb-4761-bd99-97214044422d" alt="" width="563"><figcaption></figcaption></figure>

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

<figure><img src="https://3220032727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEsyn5VMU6e0OyGjRtKgx%2Fuploads%2FlCeUBZCxI4CT6nQ02I70%2Fnetsuite6.webp?alt=media&#x26;token=6e74d0d7-f533-4e98-b7ff-7c96abac2b1e" 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.
