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:
Navigate to Accounting > Batch / Export Transactions > Create Batch.
Add the desired transactions to the batch.
From the batch dropdown, select Post Batch.
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:
Add the invoice to a batch.
Post the batch.
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:
Add the adjustment invoice to a batch.
Post the batch.
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
You post an invoice in ServiceTitan for $1,000.
The customer pays $1,000, but the payment is not applied to the invoice.
The payment syncs to NetSuite as a Customer Deposit, not attached to any invoice.
Later, in ServiceTitan, you apply the payment to the invoice.
During the next sync (such as when syncing a PO), ServiceTitan includes the updated payment application.
The SuiteApp updates the existing Customer Deposit in NetSuite and applies it to the correct invoice.
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).

Set up refund processing
Set up is required in both ServiceTitan and NetSuite.
Enable refund processing in ServiceTitan
Go to Setup > Invoicing > Payment Collections.
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.
Select the Refund Payment Type for the Check Refund Method
Map the GL accounts for each refund scenario:
For credit card or ACH refunds, Refund and an Undeposited Funds account is recommended.
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

Set up refund processing in NetSuite
Go to Setup > Company > Enable Features.
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.


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

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:
Create an adjustment invoice in ServiceTitan. Use the same item as the original invoice with a negative value. This ensures tax is calculated.
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:
Open the ST Refund Record in NetSuite.
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.
Go to ServiceTitan > Integration > Write Refund Checks.
Set filters to narrow the displayed refunds, then select Apply Filters.
Select the Bank Account to pay the refunds from.
Select To Be Printed if checks should go to the NetSuite print queue.
Select one or more refund records, verify the memo details and amounts, then select Create Checks.
Review the check creation summary, then select Create Checks to confirm.
Close the confirmation window. The list of created NetSuite checks opens.

Group refunds by customer
The Refund Check Writing tool can combine multiple refunds for the same customer into a single check.
Select Group by Customer in the Refund Check Writing tool.
Select the refunds to include. The tool groups them by customer.
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