---
title: "NetSuite Onboarding Part 1: Set up ServiceTitan for integration"
slug: "netsuite-onboarding-part-1-set-up-servicetitan"
updated: 2026-03-27T17:58:29Z
published: 2026-03-27T17:58:29Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://help.servicetitan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NetSuite Onboarding Part 1: Set up ServiceTitan for integration

## Overview

Using the NetSuite accounting integration with ServiceTitan integrates journal entries or document transactions depending upon your specific needs.

- **Account Receivable:** Journal entry or document-based. Includes invoices, payments, applied payments, and bank deposits
- **Accounts Payable:**Document-based. Includes purchase orders, receipts, vendor bills and vendor returns
- **Inventory Adjustments:** Journal entries

## 

---

### 

#### Who uses this feature

- Administrators, office employees, managers, accountants, and bookkeepers
- Applies to all business types
- Applies to all trades

#### Feature configuration

- This feature is currently in Private Preview and available for specific accounts. It is subject to change. If you want to enable this feature for your account, join the waitlist here.

## Things to know

- A ServiceTitan account can connect to only one NetSuite instance.
- Installation and configuration are required in both ServiceTitan and NetSuite. In ServiceTitan each tenant that needs to connect to NetSuite will need the ServiceTitan NetSuite API App installed. In NetSuite, you will need to install an configure a single ServiceTitan NetSuite SuiteApp.
- .Journal entries are synced to NetSuite based on a sync action taken by the user.
- Document transactions (invoices, payments, etc..) are batched and posted in order to be synced to NetSuite. Once synced, the transaction will be marked exported.
- When using this integration, we recommend:
  - Setting the *Export Type* of all transactions to *Journal Entry Summary* except for vendor bills in the [Journal Entries and Auto-Batching settings screen](/v1/docs/configure-journal-entries).
  - Setting the *Export Type of*vendor bills to *Document - General Ledger* in the [Journal Entries and Auto-Batching settings screen](/v1/docs/configure-journal-entries).

## What I need to get started

To use this integration, you must have the following features and access enabled:

- [Journal Entries](/v1/docs/configure-journal-entries)
- [Accounting Periods](/v1/docs/use-accounting-periods)
- [Inventory Module (if managing inventory)](/v1/docs/inventory-and-purchase-orders)
- ServiceTitan NetSuite API Integration App Permission, request through support
- ServiceTitan NetSuite SuiteApp Permission, request through support

## Overview

In this step, perform the following tasks in ServiceTitan:

1. Generate ServiceTitan Client ID and Client Secret
2. Prepare for the business unit mapping in NetSuite
3. Prepare for the mapping of GL accounts between ServiceTitan and NetSuite
4. Make sure pricebook items have correct GL accounts
5. Setup custom fields
6. Enable automated refunds and deposit workflows
7. Configure journal entries and auto-batching settings
8. Manually sync your journal entries

## Step 1: Generate ServiceTitan Client ID and Client Secret

When the NetSuite SuiteApp is installed you will need to provide a Client Id and Client Secret to securely provide access to ServiceTitan.

> [!NOTE]
> **Note:** A ServiceTitan account can connect to only one NetSuite instance.

To generate ServiceTitan Client ID and Secret:

1. On the navigation bar, go to **Settings ![](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/icon-gnav-settings-inactive.png)**.
2. In the side panel, go to **Integrations > API Application Access**.
3. Click **Connect New App**.
4. Select **ServiceTitan NetSuite SuiteApp**.
5. Review the scopes requested. Choose No restriction from the report category dropdown.
6. Click **Allow Access**.
7. Your *Tenant ID* and *Client ID* appear.
8. In the *Client Secret* section, click **Generate**.
9. Your Client Secret appears. Copy the Client ID and Client Secret information for use when configuring your account in the NetSuite SuiteApp.

![Application details for ServiceTitan NetSuite SuiteApp including client ID and secret.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/netsuite-onboarding-part-1-set-up-servicetitan-for-integration-image-1dhuyjz7.png)

## Step 2: Prepare for the business unit mapping in NetSuite

Business units need to be mapped in the NetSuite SuiteApp to a subsidiary and optionally to a department, class and location. All transactions and journal entries integrated will have these fields set according to this mapping.

Keep this in mind when creating your business units so you have the right level of granularity to support your NetSuite business segmentation.

For more on business units, see [What is a business unit?](/v1/docs/onboarding-faq-1#whats-a-business-unit) For more on creating business units, see [Add and edit business units](/v1/docs/add-and-edit-business-units).

![Form for editing HVAC Install business unit details including name, email, and division.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/netsuite-onboarding-part-1-set-up-servicetitan-for-integration-image-t2g923fg.png)

## Step 3: Prepare for the mapping of GL accounts between ServiceTitan and NetSuite

Map the Chart of Accounts in Netsuite to the [General Ledger (GL) accounts in ServiceTitan](/v1/docs/set-up-general-ledger-accounts). Account numbers should match between the two platforms.

For instructions on creating Chart of Accounts in NetSuite, see [Viewing the Chart of Accounts](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N1442506.html#procedure_N1442528) in the Oracle website.

> [!WARNING]
> **Caution:** Make sure the account numbers between ServiceTitan and NetSuite match so the mapping exercise during the NetSuite SuiteApp setup is simpler.

![Form to add a GL account with fields for number, name, type, and description.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/netsuite-onboarding-part-1-set-up-servicetitan-for-integration-image-go5ruaei.png)

## Step 4: Make sure pricebook items have correct GL accounts

Once you’ve mapped the GL accounts between ServiceTitan and Netsuite, make sure all your services, materials, and equipment in Pricebook are mapped to the correct GL accounts.

For more, see [Edit pricebook items](/v1/docs/edit-pricebook-items).

> [!NOTE]
> **Note:** Make sure when an item is marked as inventory, ensure all the general ledger account fields are filled out.

![Editing service details with highlighted general ledger account labeled as revenue.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/netsuite-onboarding-part-1-set-up-servicetitan-for-integration-image-9hswzia6.png)

## Step 5: Set up custom fields

Set up the following custom fields:

- accountingsystemsyncstatus
- accountingsystemsyncmessage

### Custom field for sync status

Create **accountingsystemsyncstatus**as a text field for the following entities:

- Invoices (API)
- Payments (API)
- Receipts (API)
- Bills (API)
- Returns (API)
- Inventory Adjustments (API)
- Inventory Transfers (API)

![Editing custom field settings for accounting system synchronization status and related records.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/netsuite-onboarding-part-1-set-up-servicetitan-for-integration-image-am1qrf3r.png)

### Custom field for sync message

Create **accountingsystemsyncmessage**as a text field for the following entities:

- Invoices (API)
- Payments (API)
- Receipts (API)
- Bills (API)
- Returns (API)
- Inventory Adjustments (API)
- Inventory Transfers (API)

![Editing custom field settings for accounting system synchronization options and types.](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/netsuite-onboarding-part-1-set-up-servicetitan-for-integration-image-hz9nozox.png)

For more on custom fields, see [Use custom fields](/v1/docs/use-custom-fields).

## Step 6: Enable automated refunds and deposit workflows

Automated refunds automatically creates the proper accounting transactions on your behalf based on your responses to a series of refund questions. This saves you time and ensures proper GL accounting. To set up the automated refund workflow, follow the instructions in [Set up automated refund workflow](/v1/docs/set-up-automated-refund-workflow).

The Deposit workflow lets you apply deposits to a customer’s account without reducing your accounts receivable. To set up the Deposit workflow, follow the instructions in [Enable Deposit Workflow](/v1/docs/enable-deposit-workflow).

## Step 7: Configure journal entries and auto-batching settings

Go to **Settings > Accounting > Journal Entries and Auto-Batching**to access the *Journal Entries and Auto-Batching* settings screen to enable the settings.

### Accounts Receivable only journal entry

The table below outlines recommended settings, assuming you **do not** have the Inventory module enabled.

| **Transaction Type** | **Export Type** | **Journal Entry Cadence** | **Sync Frequency** | **Batch Cadence** | **Separate by Business Unit *** | **Separate by Payment Type** |
| --- | --- | --- | --- | --- | --- | --- |
| Invoices﻿ | Journal Entry Summary﻿ | Daily or Weekly﻿ | Manual﻿ | Daily*﻿ | No﻿ | N/A |
| Payments (Invoices) | Journal Entry Summary﻿ | Daily, Weekly, or Monthly | Manual﻿ | Daily*﻿ | No﻿ | No﻿ |
| Applied Payments | Journal Entry Summary | Daily, Weekly, or Monthly | Manual﻿ | Transaction type cannot be batched | No﻿ | No﻿ |
| Bank Deposits﻿ | Journal Entry Summary | Per Transaction﻿ | Manual﻿ | Transaction type cannot be batched | No﻿ | N/A |
| Vendor Bills﻿ | Document** | Daily, Weekly, or Monthly | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |
| Returns﻿ | Document** | Daily, Weekly, or Monthly | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |
| Receipts﻿ | Document**﻿ | Daily, Weekly, or Monthly | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |

*If you are mapping your business units to more than one NetSuite Subsidiary in a ServiceTitan tenant, this must be set to Yes. The reason is that NetSuite cannot sync journal entries with more than one referenced subsidiary. **Synced to NetSuite using the *Batch Transactions* screen. For more, see [Batch, post, export transactions](/v1/docs/batch-post-and-export-transactions).

### Accounts Receivable document-based

The table below outlines recommended settings, assuming you **do not** have the Inventory modules enabled.

| **Transaction Type﻿** | **Export Type﻿** | **Journal Entry Cadence﻿** | **Sync Frequency﻿** | **Batch Cadence﻿** | **Separate by Business Unit*﻿** | **Separate by Payment Type** |
| --- | --- | --- | --- | --- | --- | --- |
| Invoices﻿ | Document﻿ | Daily﻿ | N/A | Daily﻿ | Yes﻿ | N/A |
| Payments (Invoices) | Document | Daily﻿ | N/A | Daily﻿ | No﻿ | No﻿ |
| Applied Payments | Document | Daily, Weekly, or Monthly | Manual | Transaction type cannot be batched | No﻿ | No﻿ |
| Bank Deposits | Journal Entry Summary | Per Transaction﻿ | Manual﻿ | Transaction type cannot be batched | No﻿ | N/A |
| Vendor Bills | Document**﻿ | Daily, Weekly, or Monthly | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |
| Returns | Document**﻿ | Daily, Weekly, or Monthly﻿ | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |
| Receipts | Document** | Daily, Weekly, or Monthly | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |

*If you are mapping your business units to more than one NetSuite Subsidiary in a ServiceTitan tenant, this must be set to Yes. The reason is that NetSuite cannot sync journal entries with more than one referenced subsidiary. **Synced to NetSuite using the *Batch Transactions* screen. For more, see [Batch, post, export transactions](/v1/docs/batch-post-and-export-transactions).

### Accounts Receivable document-based with the Inventory module

The table below outlines recommended settings, assuming you have the Inventory modules enabled.

| **Transaction Type﻿** | **Export Type﻿** | **Journal Entry Cadence﻿** | **Sync Frequency﻿** | **Batch Cadence﻿** | **Separate by Business Unit*** | **Separate by Payment Type** |
| --- | --- | --- | --- | --- | --- | --- |
| Invoices﻿ | Document﻿ | Daily﻿ | N/A | Daily﻿ | Yes﻿ | N/A |
| Payments (Invoices)﻿ | Document﻿ | Daily﻿ | N/A | Daily﻿ | No﻿ | No﻿ |
| Applied Payments﻿ | Document﻿ | Daily, Weekly, or Monthly | Manual﻿ | Transaction type cannot be batched﻿ | No﻿ | No﻿ |
| Bank Deposits | Journal Entry Summary | Per transaction | Manual﻿ | Transaction type cannot be batched | No﻿ | N/A |
| Vendor Bills﻿ | Document**﻿ | Per transaction﻿ | Manual﻿ | Daily, Weekly, or Monthly | No﻿ | N/A |
| Inventory Adjustments﻿ | Document**﻿ | Daily, Weekly, or Monthly | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |
| Returns﻿ | Document**﻿ | Daily, Weekly, or Monthly | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |
| Inventory Transfers﻿ | Document**﻿ | N/A | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |
| Receipts﻿ | Document**﻿ | N/A | N/A | Daily, Weekly, or Monthly | No﻿ | N/A |

*If you are mapping your business units to more than one NetSuite Subsidiary in a ServiceTitan tenant, this must be set to Yes. The reason is that NetSuite cannot sync journal entries with more than one referenced subsidiary.

**Synced to NetSuite using the *Batch Transactions* screen. For more, see [Batch, post, export transactions](/v1/docs/batch-post-and-export-transactions).

### Sync Start Date

Add the *Sync Start Date*. This date should be a future date. If any historical journal entries need to be synced, select the journal entries in the *Journal Entries* screen and click **Actions > Start Syncing**to perform a manual sync.

> [!WARNING]
> **Caution:** Do not select **Group journal entries by cadence and export type**.

### Auto-Batching Start Date

Add the *Auto-Batching Start Date*. Batches are automatically created and can be found on the *Batch Transactions* screen.

> [!WARNING]
> **Caution:** Do not select **Group batches by cadence**.

## Step 8: Manually sync your journal entries

When you are ready to sync the journal entries, use the manual sync action in the *Journal Entries* screen.

1. Go to the navigation bar and click **Accounting ![](https://cdn.document360.io/961862ab-d0f2-4d91-bb62-a62ee8184eff/Images/Documentation/icon-gnav-accounting-inactive.png)**.
2. In the side menu, click **Journal Entries**.
3. On the *Journal Entries* screen, select journal entries you want to sync.
4. Click **Actions > Start Syncing**.
5. When the journal entries have been synced, the status on the *Sync Status*column will be *Synced*.
6. If journal entries are later updated after they have been synced, and need to be resynced, the status on the *Sync Status*column will be *OutofSync*.

## Impact on accounting workflows

When using the NetSuite integration with ServiceTitan, the following changes take place:

- ServiceTitan becomes the Accounts Receivable sub-ledger, when using Journal Entries for AR integration.
- ServiceTitan provides the total sales tax liability, and sales tax by jurisdiction for compliance and remittance is available in ServiceTitan reporting.
- All inventory counts and individual SKUs are managed in ServiceTitan. The inventory value is available on the financial statements in NetSuite.

## Want to learn more?

- See [Accounting integrations](/v1/docs/accounting-integrations)
- See [NetSuite integration](/v1/docs/netsuite)
- See [NetSuite Onboarding Part 2: Authenticate NetSuite with ServiceTitan](/v1/docs/netsuite-onboarding-part-2-authenticate-netsuite-with-st)
- See [NetSuite Onboarding Part 3: Install and configure the ServiceTitan SuiteApp](/v1/docs/netsuite-onboarding-part-3-install-and-configure-suiteapp)
- See [NetSuite Onboarding Part 4: Configure sync settings](/v1/docs/netsuite-onboarding-part-4-configure-sync-settings)
