Deep Dive - Configure Coding for NetSuite

Matt Moore
Matt Moore Expensify Customer, Expensify Success Coach - Admin, Expensify Team, Expensify Student Ambassador Posts: 132 Expensify Team
edited February 2023 in Deep Dive Docs
The Coding tab is where NetSuite information is configured for Expensify. This will allow employees to code expenses and reports accurately.
  • Expense Categories
  • Tags
  • Tax
  • Custom Segments
  • Custom Records
  • Custom Lists

Expense Categories

Expensify's integration with NetSuite automatically imports NetSuite Expense Categories as Categories in Expensify. To set Category Rules (e.g. receipt requirements or comments) go to the categories page in the policy. Expenses can be automatically categorized with expense categories using Auto-Categorization. 

Please note that each expense has to have a category selected in order to export to NetSuite. The selected category has to be imported in from NetSuite and cannot be manually created within the policy settings. 

If an expense category is updated in NetSuite it will update in Expensify. Categories selected on expenses in Expensify that haven't yet been exported will be flagged as "out of policy" and need to be updated before export. Simply select the correct category and save before export.


The NetSuite integration allows for NetSuite Customers, Project, Departments, and Classes and/or Locations to be set up as line-item expense classifications, which are called "Tags" in Expensify.

If you have defaults on the employee record in NetSuite, we will create a rule that automatically applies the default to the tag on all expenses created for that employee. These can be edited if a different tag needs to be applied.

Report Fields

The NetSuite integration allows for NetSuite Customers, Projects, Departments, Classes and/or Locations to be set up as report-level classifications, which are called "Report Fields" in Expensify.

NetSuite Employee Default

The NetSuite integration allows Departments, Classes and/or Locations to be set according to the NetSuite Employee Default for expenses exported as both Expense Reports and Journal Entries. These fields will need to be set in the employee(s) record(s) in NetSuite for them to be successfully applied upon export to NetSuite.

Note: the employee default setting cannot be used with a vendor bill export unless you have both a vendor and an employee set up for the user under the same email address and subsidiary.


  • Our tax tracking feature allows you to apply a tax rate and tax amount to each expense.
  • Only Tax Groups can be imported from NetSuite. If you are not currently using these, you will first need to set them up in NetSuite under Setup > Accounting > Tax Groups.
  • Once added go to the NetSuite connection configuration page, Settings > Policies > Group > [Policy Name] > Connection > NetSuite > Coding, refresh the subsidiary list, and the Tax option will appear.
  • Enable the Tax option, save and sync the connection, and all tax groups set up for the connected NetSuite subsidiary will be imported into Expensify as taxes
  • After syncing, go to Settings > Policies > Group > [Policy Name] > Tax to see the tax groups imported from NetSuite.
  • Use the enable/disable button to choose which taxes to make available to your employees.
  • Select a default tax to apply to the policy. This will automatically apply to all new expenses. 
  • Read more about Tax tracking with NetSuite in our Community here.

Custom Segments

We can add any custom segment to your policy by locating three required fields in your NetSuite account:

  • Segment Name
  • Internal ID
  • Script/Field ID

Note: You must be logged in as an administrator in NetSuite in order to locate the required fields.

To find the list of custom segments in NetSuite click customization > Lists, Records, & Fields > Custom Segments.

Segment Name:

Internal ID:

To find the Internal ID first make sure you have internal IDs enabled by going to Home > Set Preferences

Next, back in the custom segment, click the Custom Record Type hyperlink.

Here you will find the internal ID:

Script/Field ID:

This field depends on your mapping selection in Expensify and if the Segments were created before or after NetSuite release 2019.1. 

For Segments created before the NetSuite release 2019.1: You will need to go to the custom segment screen and click on the Application & Sourcing tab. 

If you are mapping these as report fields, use the Field ID on the Transactions tab:

For mapping as tags, use the Field ID on the Transaction Columns tab:

If it was created after 2019.1, you just need the ID from the Primary Information section of the Segment.

Once you've located this information in NetSuite, navigate in Expensify to Settings > Policies > Group > [Policy Name] > Connections > Configure > Coding tab. Select if you want to import your custom segment as either tags or report fields, and fill out the three fields, Segment Name, Internal ID, Script ID. Submit.

You'll now see the values for your custom segment available under tag or report field settings in Expensify. 

Note: We do recommend that you don't use the "Filtered by" feature on your custom segments. We don't have the ability to make these dependent on other fields. 

If you do have a filter selected, we suggest switching that filter in NetSuite to "Subsidiary" and enabling all subsidiaries to make sure you don't receive any errors upon export. 

Custom Records

Custom records can be added through the custom segments feature.

You will need three items:

  1. Label
  2. Internal ID
  3. Transaction Column ID

You can get the internalID of the Record from the URL in NetSuite.

The record will need to be set up as a Transaction Column Field if you want to be able to put it on Expense Reports:

The script ID is taken from the Transaction Column Field entry:

Once you've located this information in NetSuite, go back to Expensify and navigate to Settings > Policies > Group > [Policy Name] > Connections > Configure > Coding tab. Select if you want to import your custom records as either tags or report fields, and fill out the three fields, Segment Name, Internal ID, Script ID. Submit.

Custom Lists

There are three things you will need to import your custom lists.

  1. The name of the record
  2. The ID of the Transaction Line Field that holds the record.
  3. Decide if you want to import as tags or report fields.

  1. In Expensify under Settings > Policies > Group > [Policy Name] > Connections > Configure > Coding tab The name of the record will be populated in a dropdown list. If you don't see the one you are looking for, click "Refresh Custom List Options".
  2. In NetSuite search "Transaction Line Fields" to get the ID:

Open the one that is holding your record to get the Field ID:

3. Enter the ID you located in NetSuite back in Expensify in the Configuration screen.
4. Select if you'd like the custom list to import as tag or report field and click "Submit" to save your configuration

Removing Tags
If you want to delete tags you'll need to do this from NetSuite. Categories, tags, and report fields must be added and/or modified on the accounting side first and synced to your Expensify settings.

That said, once imported, you will have the option to enable/disable any that you don't want to use. This can be done from the respective sections of your policy settings by toggling the categories or tags you desire.

Related Articles

Deep Dive - Configure Export Settings for NetSuite
Deep Dive - Configure Advanced Settings for NetSuite