Skip to main content
A NetSuite Administrator role is required to complete this setup — it involves enabling account features, editing role permissions, and creating an integration record.

Sign in to NetSuite

Sign in to NetSuite as an administrator before starting — enabling features, editing role permissions, and creating the integration record all require administrator access.

1

Sign in to NetSuite

Open the NetSuite login page and sign in.

  • Enter your Email address and Password, then click Log In.
  • Sign in to the same account (production or sandbox) that you want to connect.
NetSuite Log In screen with Email address and Password fields

Enable required features and permissions

Before creating the integration, make sure the account has the SuiteTalk REST API features enabled and that the connecting role can authenticate with OAuth 2.0.

1

Enable REST Web Services

In the top navigation bar, go to Setup > Company > Enable Features and open the SuiteCloud subtab. Under SuiteTalk (Web Services), check REST WEB SERVICES.

Enable Features SuiteCloud subtab, SuiteTalk (Web Services) section with REST Web Services checked
2

Enable OAuth 2.0

Still on the SuiteCloud subtab, scroll to Manage Authentication and check OAUTH 2.0. Click Save when done.

Enable Features SuiteCloud subtab, Manage Authentication section with OAuth 2.0 checked
3

Grant the role permissions

In the top navigation bar, go to Setup > Users/Roles > Manage Roles, then click Edit next to the role the connecting user will use. On the role page, open the Permissions subtab — it is split into sub-tabs by permission type (Transactions, Reports, Lists, Setup, etc.). Add the permissions below on the matching sub-tab, then click Save.

  • On the Setup sub-tab, add REST Web Services with Level set to Full.
  • On the Setup sub-tab, add Log in using OAuth 2.0 Access Tokens with Level set to Full.
  • Add record-level permissions (Level Full) for the data StackOne will access. A recommended baseline: Customers, Vendors, Employees, Invoice, Bills, Sales Order, Purchase Order, Journal Entry, Credit Memo, Customer Payment, Deposit, Items, Accounts, Subsidiaries, Departments, Currency — plus SuiteScript if you also enabled RESTlets.
Role Permissions subtab with the Setup sub-tab selected, showing REST Web Services and Log in using OAuth 2.0 Access Tokens set to Level Full

Create an integration record

Register StackOne as an OAuth 2.0 integration application in your own NetSuite account.

1

Open Manage Integrations

Go to Setup > Integration > Manage Integrations to open the Integrations list, then click New.

Integrations list with the New button highlighted
2

Enter a name for the integration

In the NAME field, enter a name to identify the integration (for example, StackOne Integration). Leave STATE set to Enabled.

  • Leave REFRESH TOKEN VALIDITY (IN HOURS) at its default of 168 (7 days). This is the standard NetSuite refresh-token lifetime and is suitable for StackOne — StackOne refreshes the token automatically before it expires. Setting it lower forces more frequent reconnection.

Configure OAuth 2.0

In the Authentication subtab, enable OAuth 2.0 with the Authorization Code Grant and register the StackOne redirect URI.

1

Enable Authorization Code Grant and set the Redirect URI

In the OAuth 2.0 section, check AUTHORIZATION CODE GRANT. In the REDIRECT URI field, enter the StackOne callback URL exactly.

  • Redirect URI: https://api.stackone.com/connect/oauth2/netsuite/callback
  • Leave PUBLIC CLIENT unchecked.
Integration form showing Authorization Code Grant, Redirect URI, and the REST Web Services scope
2

Select the REST WEB SERVICES scope

Enables actions: Create Account, Create Credit Memo, Create Customer, Create Customer Payment, Create Deposit, Create Employee, Create Expense Report, Create Inventory Item, Create Invoice, Create Journal Entry, Create Non-Inventory Sale Item, Create Purchase Order, Create Sales Order, Create Service Sale Item, Create Vendor, Create Vendor Bill, Create Vendor Payment, Delete Customer, Delete Invoice, Delete Journal Entry, Delete Purchase Order, Delete Sales Order, Delete Vendor, Delete Vendor Bill, Execute SuiteQL Query, Get Account, Get Credit Memo, Get Currency, Get Customer, Get Customer Payment, Get Department, Get Deposit, Get Employee, Get Expense Report, Get Inventory Item, Get Invoice, Get Journal Entry, Get Location, Get Purchase Order, Get Sales Order, Get Subsidiary, Get Vendor, Get Vendor Bill, Get Vendor Payment, List Accounts, List Credit Memos, List Currencies, List Customer Payments, List Customers, List Departments, List Deposits, List Employees, List Expense Reports, List Inventory Items, List Invoices, List Journal Entries, List Locations, List Non-Inventory Sale Items, List Purchase Orders, List Sales Orders, List Service Sale Items, List Subsidiaries, List Vendor Bills, List Vendor Payments, List Vendors, Update Account, Update Customer, Update Invoice, Update Journal Entry, Update Purchase Order, Update Sales Order, Update Vendor, Update Vendor Bill

Under SCOPE, enable REST WEB SERVICES so the integration can access the SuiteTalk REST API.

Save and copy your client credentials

Save the integration record and copy the generated client credentials — you’ll enter them
below, along with your Account ID, when connecting this account in StackOne.

1

Save the integration

Click Save. NetSuite creates the integration and displays the Client Credentials on the confirmation page.

2

Copy the Client ID and Client Secret

Copy the CONSUMER KEY / CLIENT ID and CONSUMER SECRET / CLIENT SECRET values — you’ll enter them into the Client ID and Client Secret fields below.

  • These values are displayed only once. After you leave this page they cannot be retrieved — if lost, reset the credentials to generate new values.
  • Scopes (optional): leave as the default rest_webservices unless you also enabled RESTlets, in which case enter rest_webservices restlets.
Client Credentials section showing the Consumer Key / Client ID and Consumer Secret / Client Secret with values redacted

Find your Account ID

StackOne needs your NetSuite Account ID to build the API URLs for your account.

1

Open your account settings

Sign in to your NetSuite account (or your account-specific URL, e.g. https://<account-id>.app.netsuite.com).

  • In the top navigation bar, go to Setup > Integration > SOAP Web Services Preferences.
2

Copy the Account ID

In the Primary Information section, copy the value shown in the ACCOUNT ID field, then paste it into the Account ID field below.

  • Format: 1234567 (production) or 1234567_SB1 (sandbox).
  • Enter the value in lowercase and replace underscores with hyphens — for example, 1234567_SB1 becomes 1234567-sb1.
SOAP Web Services Preferences page with the Account ID field highlighted and its value redacted

Linking the Account from the Hub

1

Navigate to the Hub

Use one of the three Linking Account Methods to access the Hub.
2

Fill out the fields

Fill out the following fields using details from your provider:
  • Account ID
  • Client ID
  • Client Secret
  • Scopes (Optional)
3

Connect

  • Click Connect
  • If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider’s authorization flow.
  • Once authorization is successful, you will see a confirmation popup

If the account linking is successful, you will see the newly linked account in your Accounts page.