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.
Setting the Export Type of vendor bills to Document - General Ledger in the Journal Entries and Auto-Batching settings screen.
What I need to get started
To use this integration, you must have the following features and access enabled:
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:
Generate ServiceTitan Client ID and Client Secret
Prepare for the business unit mapping in NetSuite
Prepare for the mapping of GL accounts between ServiceTitan and NetSuite
Make sure pricebook items have correct GL accounts
Setup custom fields
Enable automated refunds and deposit workflows
Configure journal entries and auto-batching settings
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: A ServiceTitan account can connect to only one NetSuite instance.
To generate ServiceTitan Client ID and Secret:
On the navigation bar, go to Settings
.In the side panel, go to Integrations > API Application Access.
Click Connect New App.
Select ServiceTitan NetSuite SuiteApp.
Review the scopes requested. Choose No restriction from the report category dropdown.
Click Allow Access.
Your Tenant ID and Client ID appear.
In the Client Secret section, click Generate.
Your Client Secret appears. Copy the Client ID and Client Secret information for use when configuring your account in the NetSuite SuiteApp.

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? For more on creating business units, see Add and edit business units.

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. Account numbers should match between the two platforms.
For instructions on creating Chart of Accounts in NetSuite, see Viewing the Chart of Accounts in the Oracle website.
Caution: Make sure the account numbers between ServiceTitan and NetSuite match so the mapping exercise during the NetSuite SuiteApp setup is simpler.

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.
Note: Make sure when an item is marked as inventory, ensure all the general ledger account fields are filled out.

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)

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)

For more on custom fields, see 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.
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.
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.
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.
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.
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.
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.
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.
Go to the navigation bar and click Accounting
.In the side menu, click Journal Entries.
On the Journal Entries screen, select journal entries you want to sync.
Click Actions > Start Syncing.
When the journal entries have been synced, the status on the Sync Status column will be Synced.
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.