Sync option: Document-based AR transactions

Prev Next

Overview

The Document-based sync option allows ServiceTitan to create native NetSuite transaction records that directly mirror operational documents from ServiceTitan. This configuration supports Accounts Receivable (AR) workflows, so teams can manage day-to-day operations in ServiceTitan while keeping transaction-level financial records synchronized in NetSuite.


Who uses this feature

  • Administrators, office employees, managers, accountants, 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.

Core capabilities

This setup includes:

  • Business Unit to Subsidiary mapping: Each ServiceTitan Business Unit (BU) must be mapped to a corresponding NetSuite Subsidiary to ensure proper legal and financial alignment.

  • Optional segment mapping: Business Units can also be mapped to NetSuite Department, Class, and Location segments to support dimensional reporting and accounting control.

  • GL account sync and mapping: NetSuite GL accounts marked as Available to ServiceTitan are synced and mapped to the appropriate ServiceTitan accounts to ensure accurate transaction posting.

What syncs in this configuration

AR transactions are synced as NetSuite transactions or documents.

ServiceTitan transaction

NetSuite sync behavior

Customer invoices

Synced as NetSuite Invoices to record accounts receivable and revenue impact.

Customer payments

If applied, synced as Customer Payments to reduce AR and increase cash or undeposited funds. If unapplied, synced as Customer Deposits to record the deposit liability and increase cash or undeposited funds.

Customer refunds

Synced as an AR Journal Entry. Depending on the refund scenario, a negative customer payment and a corresponding journal may also be created.

Adjustment/negative invoices

Synced as a Credit Memo if negative, and as a regular Invoice if positive.

Payment applications

Applies unapplied Customer Payments or Customer Deposits against NetSuite Invoices.

Bank deposits

Synced as Journal Entries that move funds from undeposited funds to the appropriate bank account.

Additional operational data

ServiceTitan transaction

NetSuite sync behavior

Jobs

Jobs sync to NetSuite as projects during the next integration run. The sync creates the project and linked customer, even without related transactions. Later transactions, such as invoices, automatically link to the existing project. The SuiteApp syncs only those jobs with Scheduled, Dispatched, InProgress, or Hold statuses. The sync excludes jobs with Completed or Canceled statuses.

Inventory adjustments

Synced as journal entries, reflecting the financial impact of the adjustment, for example, shrinkage, damage, corrections.

Accounts receivable (AR) document sync behavior

The AR document sync in ServiceTitan creates corresponding native NetSuite transactions such as invoices, customer payments, credit memos, and customer refunds.

ServiceTitan transaction

NetSuite sync behavior

Standard invoices and positive adjustment invoices

Sync as NetSuite Invoices to record AR and revenue impact

Negative adjustment invoices

Sync as Credit Memos

Customer payments

Sync as Customer Payments if applied to an invoice, or as customer deposits if applied to the customer account.

Customer refunds

Sync as Customer Refunds

Payment applications

Reflected by how payments are applied to open invoices in NetSuite

ServiceTitan uses a batching workflow to group AR transactions, post batches, and trigger the sync to NetSuite via the SuiteApp.

  • Transactions can be batched automatically based on configuration or added manually.

  • Access batching in Accounting > Batch / Export Transactions in ServiceTitan.

To manually sync AR transactions:

  1. Navigate to Accounting > Batch / Export Transactions > Create Batch.

  2. Add the desired transactions to the batch.

  3. From the batch dropdown, select Post Batch.

  4. In NetSuite, open the SuiteApp and start the sync for the tenant.

This approach gives your team control over how and when AR records are pushed to NetSuite, while maintaining financial alignment across systems.

Invoice sync

Invoices are created in ServiceTitan when a job is completed and billed. These invoices sync to NetSuite as native Invoice transactions, including:

  • Service items, material items, inventory items, and other billable components

  • Associated Customer records (created automatically in NetSuite if not already mapped)

  • Header and line-level details, including segmentation (Class, Department, Location) if configured

  • Job/project association, if the invoice is linked to a job that syncs as a NetSuite Project

To manually sync an invoice:

  1. Add the invoice to a batch.

  2. Post the batch.

  3. Run the sync from the NetSuite SuiteApp.

The resulting NetSuite Invoice includes the customer, project (if applicable), full financial data, and detailed line-level items.

Adjustment invoices

Once an invoice is created and exported in ServiceTitan, adjustment invoices can be attached to the original invoice. These invoices may contain similar detail to a regular invoice, and may be positive or negative in value.

Positive adjustment invoice sync

Positive adjustment invoices in ServiceTitan add additional charges to an invoice that has already been exported or marked as exported.

  • Can only be created after the original invoice is exported or marked exported

  • Sync as new NetSuite Invoices

  • Maintain job/project relationship

  • NetSuite adds a suffix to the invoice number to indicate it's an adjustment        

    • Example: INV-4500-2 for the second adjustment for original invoice 4500

To sync a positive adjustment invoice:

  1. Add the adjustment invoice to a batch.

  2. Post the batch.

  3. Run the sync from the SuiteApp.

Negative adjustment invoice sync

Negative Adjustment Invoices reduce or reverse charges from a previously exported invoice.

  • Appear as negative invoices in ServiceTitan

  • Sync to NetSuite as Credit Memos

  • Maintain job/project association

  • NetSuite appends a suffix to the Credit Memo to link it to the original invoice        

    • Example: INV-4500-1 for the first negative adjustment for original invoice 4500

Adjustment invoices with different customers

You can create adjustment invoices from an original invoice, and ServiceTitan allows the customer on the adjustment to differ from the original. When this occurs, the NetSuite sync creates a new transaction using the customer specified on the adjustment invoice:

  • Positive adjustments: A new invoice is created in NetSuite.

  • Negative adjustments: A new credit memo is created in NetSuite.

  • No job reference: The newly created transaction does not include a job reference.

Customer payment sync

Customer Payments are created in ServiceTitan when funds are collected. These sync as NetSuite Customer Payments:

  • Applied payments: When payments that have been applied to a transaction in ServiceTitan are synced, they are applied to the matching open invoice in NetSuite.

  • Unapplied payments: When payments that have not been applied to a transaction in ServiceTitan (and have instead been applied against the customer account) are synced, a Customer Deposit is created that increases the customer's balance in NetSuite.

The sync includes:

  • Payment method

  • Customer

  • Amount

  • Segment values (Class, Department, Location) if configured

Customer refund sync

Customer refunds are created in ServiceTitan when funds are returned to the customer. Typically after an overpayment, unapplied credit, or refund request.

  • Sync to NetSuite as Journal Entries, tied to the original deposit, payment, or a newly created credit memo

  • Include customer, amount, and any segment values (Class, Department, Location)

Payment applications in ServiceTitan

In ServiceTitan, a payment can be applied to invoices at the time of collection or later on. Whether the payment is immediately applied or left unapplied, ServiceTitan tracks the payment's application status and syncs it accordingly to NetSuite using the SuiteApp.

When a payment is collected but not applied, it syncs to NetSuite as a Customer Deposit. Later, when you apply the payment to an invoice in ServiceTitan, the SuiteApp automatically syncs the updated application status—without requiring you to re-sync the payment manually.

When to apply a payment

You may need to apply a payment if:

  • The payment was collected before the invoice was posted

  • The payment was collected at the job or customer level without specifying an invoice

  • The payment was intentionally left unapplied to hold the balance

  • A payment was synced to NetSuite as a Customer Deposit, and you now want to apply it to an open invoice

How ServiceTitan handles payment applications

This section explains how ServiceTitan manages the sync of unapplied and applied payments with NetSuite.

Initial sync (Unapplied)

  • When a payment is not applied to an invoice in ServiceTitan, it is still eligible for sync.

  • During the initial sync, the SuiteApp sends the payment to NetSuite as a Customer Deposit, which sits on the customer's account with no linked invoice.

After the payment is applied

  • When you later apply the unapplied payment to an invoice in ServiceTitan, the platform records the update internally.

  • You do not need to resync the payment manually.

  • The next time any record related to that customer is synced (e.g., a new invoice, PO, bill), ServiceTitan includes the updated application data.

  • The SuiteApp locates the existing Customer Deposit in NetSuite and applies it to the correct invoice.

In NetSuite

  • The Customer Deposit is now applied to the invoice, reducing or closing its balance.

  • This change happens seamlessly and silently, requiring no user action in NetSuite.

Example workflow

  1. You post an invoice in ServiceTitan for $1,000.

  2. The customer pays $1,000, but the payment is not applied to the invoice.

  3. The payment syncs to NetSuite as a Customer Deposit, not attached to any invoice.

  4. Later, in ServiceTitan, you apply the payment to the invoice.

  5. During the next sync (such as when syncing a PO), ServiceTitan includes the updated payment application.

  6. The SuiteApp updates the existing Customer Deposit in NetSuite and applies it to the correct invoice.

  7. The invoice balance is reduced to $0, and no manual steps are required in NetSuite.

Refund automation overview

ServiceTitan automates refund workflows based on Refund Reasons. Each reason can trigger a different refund process. The SuiteApp syncs refunds to different record types based on the refund reason chosen in ServiceTitan:

ServiceTitan Refund Transaction

NetSuite Refund Transaction

A Negative Invoice + Negative Payment

ServiceTitan Refund Record + Credit Memo

A Negative Payment

ServiceTitan Refund Record

The SuiteApp introduces two components to support these processes:

  • ST Refund Record: Stores refund details and manages credit application

  • Refund Check Writing tool: Simplifies refund check creation in NetSuite

ServiceTitan Refund Record

The ServiceTitan Refund Record is a custom NetSuite transaction. The SuiteApp creates one for each refund to bridge the differences between ServiceTitan and NetSuite.

The ServiceTitan Refund Record:

  • Links payments, refunds, and credit memos (e.g., when a credit memo is created, the system links it to the refund record and applies it automatically)

  • Tracks unapplied refund amounts

  • Controls how and when refunds are applied

  • Tracks refund status, including check payments

Each refund in NetSuite has a status:

  • Pending Refund: This refund is ready to be paid via the Refund Check Writing app in NetSuite

  • Check Refunded: A refund check has been written for this refund

  • Complete: This refund has been paid/processed outside of NetSuite

  • Bypass: A status that indicates to NetSuite that this ServiceTitan Refund should be ignored (manually set by user

These refund statuses determine if a refund is open for payment via check, or has already been paid (in NetSuite or elsewhere).

ServiceTitan refund entry showing status as complete with relevant financial details.

Set up refund processing

Set up is required in both ServiceTitan and NetSuite.

Enable refund processing in ServiceTitan

  1. Go to Setup > Invoicing > Payment Collections.

  2. Turn on the Automated Refund Workflow toggle.

Set the Refund Payment type ServiceTitan

The refund payment type you select for the Check Refund Method determines how the refund record appears in NetSuite after it syncs. If the payment type is set to create a pending refund, the record syncs as Pending Refund and is available for a refund check to be written against it.

If the payment type is set to mark the refund as complete, the record syncs as Complete and is not available for a refund check. You'll select the payment type the SuiteApp uses to set the refund status in the next step.

  1. Select the Refund Payment Type for the Check Refund Method

  2. Map the GL accounts for each refund scenario:

    1. For credit card or ACH refunds, Refund and an Undeposited Funds account is recommended.

    2. For check refunds, Refund Check and a Customer Refunds Payable account (current liability) is recommended.

Note: Make sure you have each GL account mapped in NetSuite

Assign payment types for refunds, including credit card and check options.

Set up refund processing in NetSuite

  1. Go to Setup > Company > Enable Features.

  2. Select Custom Transactions.

Refund check payment type

On the Tenant Settings page, the Check Refund Payment Type Name field defines which ServiceTitan payment type the SuiteApp treats as a check refund.

Enter the payment type you want to use for check refunds. During sync, any refund with a matching payment type is set to Pending Refund in NetSuite and is available for processing through NetSuite's check writing feature. Refunds with a different payment type are set to Complete and are not available for check writing.

ServiceTitan tenant settings with highlighted K-Coin payment type and various configuration options.

Instructions for enabling automated refunds workflow in ServiceTitan with highlighted fields.

Refund processes

ServiceTitan supports different refund workflows depending on the scenario.

  • Unapplied payments: Refunded directly through a negative payment (refund check).

  • Applied payments: Follow one of two methods based on the selected refund reason:        

    • Revenue-reversing refunds: Create a credit memo (negative invoice) and negative payment. Revenue is reversed.

    • Non-revenue refunds: Create a negative payment only. No credit memo is created. The original invoice can reopen.

Unapplied payments

When a payment is not applied to a transaction:

  • The payment syncs to NetSuite as a Customer Deposit

  • The refund creates a negative payment and an ST Refund Record

  • The system credits the customer AR balance and records a refund payable

  • The refund is marked as unpaid and appears in the Refund Check Writing tool

Applied payments (revenue impacting)

This refund process creates a credit memo (negative invoice) and negative payment in ServiceTitan.

Refund paid by check

  • The SuiteApp creates an ST Refund Record with the status Pending Payment

  • A credit memo and negative payment are created

  • The credit memo is automatically applied to the refund record

  • The refund appears in the Refund Check Writing tool

  • The status updates to Refunded after the check is paid

Refund information form showing reasons, amounts, and methods for processing refunds.

Refund paid by credit card (outside ServiceTitan)

  • The same records are created

  • The refund is marked as paid externally

  • The refund does not appear in the Refund Check Writing tool

Applied payments (non-revenue impacting)

This refund process creates only a negative payment in ServiceTitan.

Refund paid by check

  • The SuiteApp creates an ST Refund Record with the status Pending Payment

  • A negative payment is created

  • The refund is marked as payable and appears in the Refund Check Writing tool

Form for processing refunds, including reasons and methods for refunding payments.

If a credit memo is later created

  • The system links and applies it to the refund record

Refund paid by credit card (outside ServiceTitan)

The refund is marked as paid externally.

  • The refund does not appear in the Refund Check Writing tool

Refund applied payments with a tax line

When refunding a payment that includes tax:

  1. Create an adjustment invoice in ServiceTitan. Use the same item as the original invoice with a negative value. This ensures tax is calculated.

  2. Apply a negative payment to the adjustment invoice.

During sync, the SuiteApp:

  • Creates an ST Refund Record and credit memo in NetSuite

  • Applies the credit memo to the refund record

  • Sets the refund record status to Credit Card Refunded

To issue a refund check instead:

  1. Open the ST Refund Record in NetSuite.

  2. Change the status from Credit Card Refunded to Pending Refund.

Write refund checks

The Refund Check Writing tool creates NetSuite checks from ST Refund Records that have not yet been paid. Checks follow your organization's existing NetSuite approval and printing processes.

  1. Go to ServiceTitan > Integration > Write Refund Checks.

  2. Set filters to narrow the displayed refunds, then select Apply Filters.

  3. Select the Bank Account to pay the refunds from.

  4. Select To Be Printed if checks should go to the NetSuite print queue.

  5. Select one or more refund records, verify the memo details and amounts, then select Create Checks.

  6. Review the check creation summary, then select Create Checks to confirm.

  7. Close the confirmation window. The list of created NetSuite checks opens.

ServiceTitan interface for creating refund checks with various filter options displayed.

Group refunds by customer

The Refund Check Writing tool can combine multiple refunds for the same customer into a single check.

  1. Select Group by Customer in the Refund Check Writing tool.

  2. Select the refunds to include. The tool groups them by customer.

  3. Select Create Checks. One check is created per customer group.

Memo fields

The Refund Check Writing tool supports configurable memo fields:

  • Header Memo: Populates the header memo on the NetSuite check

  • Line Memo: Populates the line memo on the NetSuite check

ST Refund Record updates

The ST Refund Record tracks the lifecycle of each refund.

  • After the refund is paid, the status changes to Refunded

  • Refunded records no longer appear in the Refund Check Writing tool

  • Credit card refunds processed outside ServiceTitan also do not appear in the tool

Refund check validations

The Refund Check Writing tool validates payment amounts during check creation.

  • The Amount to Pay field defaults to the full refund amount

  • The amount can be reduced but cannot exceed the refund amount

  • Partial payments create a short-paid refund

  • The ST Refund Record remains open to reflect the remaining balance

Want to learn more?