Overview
The Journal Entry Accounts Receivable and Accounts Payable configuration syncs both revenue-side and expense-side activity from ServiceTitan to NetSuite using a combination of journal entries and native NetSuite documents.
Who uses this feature
Administrators, office employees, managers, accountants, and bookkeepers
Applies to all business types
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
This option is ideal for teams that:
Manage invoicing, payments, and refunds in ServiceTitan
Track purchasing, vendor bills, and inventory adjustments operationally
Require both AR and AP activity to be reflected in NetSuite for complete financial reporting
Includes all functionality from the Journal Entry Accounts Receivable configuration
No Accounts Payable (AP) data is synced in this configuration.
Core capabilities
This setup includes:
Business Unit to Subsidiary mapping: Business Units (BUs) in ServiceTitan are linked to corresponding NetSuite Subsidiaries to ensure financial entries are attributed to the correct legal entities.
Optional segment mapping: Each BU can also be mapped to NetSuite Department, Class, and Location dimensions for enhanced reporting and GL segmentation.
GL account sync and mapping: NetSuite accounts marked as Available to ServiceTitan are synced and then mapped to ServiceTitan accounts. This enables proper posting of all synced journal entries and helps prevent sync errors caused by unmapped accounts.
Customer relationship sync: This applies to detailed Journal Entry setup. Customers are synced from ServiceTitan to NetSuite automatically when detailed journal entries are enabled and the customer appears on a synced transaction. A customer relationship record is created in NetSuite to preserve entity context for each entry.
Summary vs detailed journal entries
You can configure each tenant to use either summary or detailed journal entries:
Summary journal entries: Consolidated by GL account and business unit. Each GL account appears as a single line per BU.
Detailed journal entries: Line-level detail is preserved. Each journal line shows individual components of a transaction, including:
Customer name for traceability
Amount and account detail
Dimension/segment, or department/class/location in ServiceTitan, stamping, if mapped
Customer creation in detailed mode
When detailed journal entry sync is enabled (instead of summary mode), ServiceTitan automatically creates or updates customer records in NetSuite based on transaction activity. In this mode, each transaction line keeps customer-level detail. To maintain accurate GL impact and reporting, the referenced customer must exist in NetSuite.
Because of this requirement, customer sync runs automatically as part of the detailed journal entry sync process. Customers are created or matched in NetSuite according to the customer sync logic described earlier, which includes:
Using the Legacy ID field
Checking the appropriate subsidiary
Creating a customer sync record
What syncs in this configuration
The following ServiceTitan Accounts Receivable (AR) transactions sync to NetSuite as journal entries, not native AR documents. Each journal entry posts to the mapped GL accounts based on your configuration and reflects the correct financial impact.
ServiceTitan transaction | NetSuite sync behavior |
|---|---|
Customer invoices | Sync as journal entries to record revenue and the accounts receivable impact. |
Customer payments | Sync as journal entries to reduce accounts receivable and increase cash or undeposited funds, based on configured destination accounts. |
Customer refunds | Sync as AR journal entries that reverse the original payment, reflecting refunds payable or cash reduction. |
Adjustment/negative invoices | Sync as journal entries for non-revenue adjustments, for example write-offs or corrected billing, typically crediting AR and debiting an adjustment or revenue account. Positive-value adjustments are also captured. |
Payment applications | When a payment is applied to invoices in ServiceTitan, the journal entry reflects the AR application and updates balances accordingly. |
Bank deposits | Deposits created in ServiceTitan sync as journal entries moving funds from undeposited funds to the bank account. |
Jobs | Jobs in ServiceTitan related to synced journal entries create Projects in NetSuite. Job/project references display where available. For example, detailed invoice journal entries. The SuiteApp syncs only those jobs with Scheduled, Dispatched, InProgress, or Hold statuses. The sync excludes jobs with Completed or Canceled statuses. |
All journal entries in NetSuite include the appropriate subsidiary and may also include mapped Department, Class, and Location segments, as well as customer references (when detailed mode is enabled).
Basic journal sync process overview
Before enabling journal entry sync, complete the following configuration steps to ensure proper alignment between ServiceTitan and NetSuite:
Step 1: Business Unit to Subsidiary mapping
Map each ServiceTitan Business Unit (BU) to its corresponding NetSuite Subsidiary. This ensures that financial transactions post to the correct legal entity in NetSuite.
Step 2: GL Account sync and mapping
Mark all GL accounts used in journal entries as Available to ServiceTitan in NetSuite and map them to their corresponding ServiceTitan accounts. This prevents sync errors and ensures proper account posting.
Step 3: Optional segment mapping
Optionally, map Business Units to NetSuite Department, Class, and Location segments to support segmented financial reporting.
Journal entry sync workflow
Journal entries in ServiceTitan are prepared based on your organization's configuration rules. These rules define when transactions are added to journal entries and how they are grouped or combined. The grouping can vary depending on your batching method (manual, semi-automated, or automated) and operational preferences.
To manually sync journal entries from ServiceTitan to NetSuite:
In ServiceTitan, go to the navigation bar, and click Accounting > Journal Entries.
Select one or more journal entries you want to sync.
From the Actions menu, choose Start Syncing. The selected entries are updated to a Pending sync status.
Sync the journal entries to NetSuite by either:
Manually triggering the sync in the NetSuite SuiteApp, or
Allowing the automated/scheduled sync process to run, if Auto-sync Journals is enabled in the SuiteApp configuration.
Out-of-Sync and empty journals
This section covers how the NetSuite SuiteApp handles Journal Entry sync discrepancies, empty journals, and zero-dollar entries between ServiceTitan and NetSuite.
Out-of-Sync journals
Journal entry records can become out of sync when differences exist between the corresponding entries in ServiceTitan and NetSuite. You can configure the NetSuite sync to identify journal entries with an OutOfSync status and attempt to update the corresponding records in NetSuite.

When you enable this feature, the SuiteApp identifies journal entries with an OutOfSync status and includes them in the sync process. This includes journals that were previously synced but now contain no lines, allowing recovery of journals that became out of sync due to edits.
When you disable this feature, only journal entries with an InProgress status in ServiceTitan are included in the sync.
Empty and zero-dollar journal entries
ServiceTitan's flexibility means there are scenarios where a journal entry might contain no lines or have lines with no value. The SuiteApp handles these scenarios as follows:
Empty journals: Empty journals are not created in NetSuite. If a journal with no lines that has not been previously synced is sent to NetSuite, the SuiteApp ignores the journal entry and sets its status in ServiceTitan to NotSynced.
Zeroed-out journals: If a journal entry was previously synced with lines, and subsequent changes in ServiceTitan result in the journal having no lines, the sync process detects this change. It zeros out the existing lines (sets line values to $0.00) on the corresponding journal entry in NetSuite and marks the journal entry in ServiceTitan as Synced.