Sync option: Journal Entry Accounts Receivable

Prev Next

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:

  1. In ServiceTitan, go to the navigation bar, and click Accounting > Journal Entries.

  2. Select one or more journal entries you want to sync.

  3. From the Actions menu, choose Start Syncing. The selected entries are updated to a Pending sync status.

  4. Sync the journal entries to NetSuite by either:        

    1. Manually triggering the sync in the NetSuite SuiteApp, or

    2. 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.

ServiceTitan tenant settings with transaction sync options and highlighted include outofsync journals.

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.

Want to learn more?