Integrate Directly with NetSuite

Companies with Team or Corporate policies can integrate Expensify with NetSuite. Expense categories, departments, locations, classes, customers, tax groups, projects and employees can all be imported from NetSuite. The expense data in Expensify can then be exported to NetSuite as expense reports and journal entries.

Having problems with your NetSuite connection? First, take a look at the NetSuite Troubleshooting page, then if you're still having issues just email and we'll work with you to resolve this issue.

Important Notes

  • Ensure that your policy's report output currency setting matches the NetSuite Subsidiary default currency.
  • You'll need to make sure that you have the Expense Reports module enabled under Time & Expenses. To do this Setup > Company > Enable Features > Employees then "check" Expense Reports.
  • You will need to have your employees set up in NetSuite's Employee Record, which should include the email address that they use for Expensify. Note that this does not mean that your employees need to have NetSuite access or that you will need to buy additional seats in NetSuite. 
  • If you choose to sync people, all employee under the Subsidiary that you are syncing will be brought in to Expensify.
  • You'll need to have Expense Categories set up in NetSuite. To set these up, search "Expense Categories" in NetSuite and then click New.
  • If you want to track tax in Expensify, you will need to have Tax Groups set up in NetSuite.  To set these up, search "Tax Groups" in NetSuite and then click New.
  • If people sync is used, Expensify will set the “expense approver” in NetSuite as the approver in Expensify. If an expense approver doesn’t exist in NetSuite then the supervisor will be used.

Configure NetSuite settings

Before creating the NetSuite-Expensify connection there are a few settings you will need to make sure are enabled within NetSuite.

Step 1: Enable SuiteSignOn and Web Services

To do this, log into NetSuite as an administrator and click through to Setup > Company > Enable Features > SuiteCloud tab. Make sure you have SuiteSignOn and Web Services enabled.

Step 2: Install Expensify Bundle

To do this, log into NetSuite as an administrator, click through to Customization > SuiteBundler > Search & Install Bundles, and search for “Expensify”. Then, install the Expensify bundle.

Step 3: Ensure all expense capture fields are selected

  1. In your Netsuite account, please visit Customization > Forms > Transaction Forms.

  2. From there, look for "Standard Expense Report" and "Standard Journal Entry"

  3. Are you seeing any other custom expense report or journal entry types, an example being "<Company> Custom Expense Report"? If so, it's possible that it is attempting to export into one of these expense report templates.  Follow these next steps for both once inside each expense report and journal entry template.

  4. Click Customize or Edit on the far left column on the page next to the expense report template or journal entry template to change template settings.

Step 3A: Ensure Journal Entry Templates are Configured Properly

  1. Select the Screen Fields tab, and Main. Please verify that the 'Created From' label exists, and that the circled settings match.
  2. Next, select the subtab Lines, scroll to the bottom and verify that the 'Show' column for 'Receipt URL' is checked.
  3. Go back to Customization > Forms > Transaction Forms and ensure that all other "Journal Entry" templates have this configured as well.


Step 3B: Ensure Expense Report Templates are Configured Properly

  1. Please follow the same instructions for Expense Report templates. You need to verify that 
    1. Created From has "Show" checked and is of Display Type "Normal" under Screen Fields > Main
    2. Receipt URL field has "Show" checked under Screen Fields > Expenses
    3. Go back to Customization > Forms > Transaction Forms > Edit > make sure that all "Expense Report" templates have this configured as well.
    4. Also, under Customization > Forms > Transaction Forms > Edit > make sure the field "Class" [Location, Receipt URL or Department] has the "Show" checkbox checked.

Step 4: Add Expense Categories

  1. Expensify imports NetSuite Expense Categories, which you can find on NetSuite under Setup > Accounting > Expense Categories
  2. Expense categories are essentially aliases to entries under your main Chart of Accounts. When Expensify reports are exported to NetSuite, expense reports use the expense categories, while journal entries created by the export use the aliased G/L account from the Chart of Accounts.
  3. If you cannot find Expense Categories from the setup menu, please contact your NetSuite representative to ensure that you have the expense report module enabled.

Step 5: Set up Tax Groups (only required if you want to track taxes)

  1. Expensify imports NetSuite Tax Groups, which you can find in NetSuite under Setup > Accounting > Tax Groups
  2. Tax Groups are essentially aliases to Tax Codes and can contain one or more Tax Code (for UK subsidiaries please ensure Tax Groups do not have more than one Tax Code)
  3. We recommend naming Tax Groups so they are easily understood by your employees (both the name and rate will display in Expensify)
  4. Ensure Tax Groups can be applied to expenses by going to Setup > Accounting > Set Up Taxes and set the Tax Code Lists Include preference to Tax Groups And Tax Codes (if this field does not display then it does not need to be set for that country)

Step 6: Enable Expense Reports in NetSuite

Enabling Expense Reports is required as part of Expensify's integration with NetSuite. If you search "Expense Categories" in the NetSuite global search and that does not pull up this module, then you'll likely need to enable Expense Reports in NetSuite. To do this, go to Setup > Company > Enable Features > Employees > "check" Expense Reports.

Connect Expensify and NetSuite

In order to connect to NetSuite you will need to have a Corporate expense policy. Once you have done this, navigate to the Connections section of the policy settings (Admin > [Policy Name] > Connections) and click “connect to NetSuite”. You must connect using a NetSuite account with an administrator role. 

You can choose whether you want to connect to your production or sandbox environment. You will need to enter the NetSuite Account ID associated with the environment you are choosing to connect with. You can find the Account ID in NetSuite by going to Setup > Integration > Web Services Preferences.

The Account ID is not the same as the password you use to login to the NetSuite website.

You will then be asked to log into NetSuite using your administrator credentials. If you have multiple NetSuite user accounts, you will need select the appropriate role. The administrator credentials are only required to establish the initial connection, per NetSuite's documentation.  After you log in, you'll be presented with an option to select the appropriate role for subsequent operations related to the Expensify integration.  Please select the "Expensify Integrations" role, or if you prefer to create your own custom role, ensure that role has the following permissions:

  • “View” permissions for: Classes, Departments, Locations, Subsidiaries, Expense Categories, Currency, Accounts, Employees under “Lists”.
  • “Full” permissions for: Expense Report, Make Journal Entry under “Transactions”.
  • “Full” permissions for: Web Services under “Setup”.

You will then be redirected to the NetSuite dashboard. You will want to click Sign Out from here to be taken back to Expensify.

Configure the connection

Now that the policy is connected to NetSuite. Click Configure to choose what information is imported from NetSuite and how information will be exported out of Expensify.

Coding (import settings)

The Coding tab is where you can set which information you want to import from NetSuite for your employees to code to their expenses:

Expense Categories

Expensify's integration with NetSuite brings over NetSuite Expense Categories as Categories in Expensify. To set these up in NetSuite, simply search Expense Categories in the global search in NetSuite and then hit the New button to start creating new Expense Categories. As you can see each Expense Category is associated with a specific Expense Account in NetSuite.


Our NetSuite integration allows for NetSuite Customers, Projects, Departments, Classes and/or Locations to be set up as line-item expense classifications, which we call Tags in Expensify. Please note that if you want any of these classifications to be brought over to Expensify, they must first be set up in NetSuite.

Report Fields

Our NetSuite integration allows for NetSuite Customers, Projects, Departments, Classes and/or Locations to be set up as report-level classifications, which we call Report Fields in Expensify. Again, these will need to be set up as NetSuite classifications in order to be brought over with our integration.

NetSuite Employee Default

Our 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. Remember, these classifications need to be set in the employee record in NetSuite if they are going to be applied.


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 then you will first need to set them up in NetSuite (Setup > Accounting > Tax Groups) - see step 5 in Configure NetSuite Settings above
  • Go to the NetSuite connection configuration page (Admin > [Policy Name] > Connection > NetSuite > Coding) and Refresh the subsidiary list and the Tax option will appear
  • Enable the Tax option, save and sync the connection and all Tax Groups setup for the connected NetSuite subsidiary will be imported into Expensify as Taxes
  • After syncing, go to Admin > [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)

For more details on Tax tracking see our help page


The option will keep your Expensify information fresh and reduce the number of errors you experience with out-of-date NetSuite data, as well as saving you time with syncing. We'll automatically import expense categories, departments, classifications, locations, customers, tax groups, projects and employees once you've enabled Auto-sync. Don't worry: you can control what we import through the NetSuite configuration.

Enable Auto-Sync by going to Admin > Policy > [Policy Name] > Connections > NetSuite > Configure then in the Advanced tab, enable Auto Sync.

Invite Employees

This option allows us to import your employees from the selected NetSuite subsidiary and invite them to your Expensify policy. When we import new people, we'll send them an email informing them that they have been added to the policy. You can also optionally import your NetSuite approval workflows into Expensify. By NetSuite convention, if no expense approver exists, Expensify will map to the supervisor.

Automatically import employees by going to Admin > Policy > [Policy Name] > Connections > NetSuite > Configure then in the Advanced tab, enable Invite Employees.


Reimbursable Expenses: Expense Reports

Expensify transactions will export reimbursable expense as Expense Reports. Expense Reports will post to the payables account specified in NetSuite. In some cases you may want to change this to credit a different account. 

The steps to do this in NetSuite OneWorld are the following:

1. Navigate to Setup > Company > Subsidiaries
2. Click Edit on the subsidiary that you want to update
3. Click the preferences tab
4. Select the preferred account under Default Payable Account for Expense Reports
5. Click Save

The steps to do this in non-OneWorld are the following:

1. Navigate to Setup > Accounting > Accounting Preferences
2. Click Time & Expenses tab
3. Under Expenses section, there is a field for Default Payable Account for Expense Reports, choose the preferred account.
4. Click Save.

Reimbursable Expenses: Journal Entries

Expensify transactions will export as journal entries in NetSuite and will map to the subsidiary associated with this policy. All the transactions will post to the payable account specified in the policy. You can also set an approval level in NetSuite for the journal entries.

Non-Reimbursable Expenses: Journal Entries

Expensify cash transactions will export as journal entries in NetSuite and will map to the subsidiary associated with this policy. All the transactions will post to the payable account specified in the policy. You can also set an approval level in NetSuite for the journal entries and expense reports.

Non-reimbursable company card transactions will post to the payable account specified in the policy. Want to export to multiple credit card accounts in NetSuite? We support that in our company card exportYou can also set an approval level in NetSuite for the journal entries and expense reports.

Note: If "no preference" is selected in the Export Preferences section of the configuration dialogue the default NetSuite settings for requiring Accounting and Supervisor approval will be applied.

Exporting Reports to NetSuite

Reports are not automatically sent to NetSuite. You can trigger an export to NetSuite by navigating to the Reports page, checking the boxes for the reports you want to export and clicking Export To > NetSuite.

Once the reports have been exported, the NetSuite icon will show in the Exported column in the Reports table.

Finding Expensify Reports in NetSuite

Exported reports can be found in NetSuite by searching for the Expensify Report ID. Type the Report ID into the search bar at the top of the NetSuite page. You will see all entries containing that number.


There will also be a link back to the Expensify report in the "Created From" field of the record:


Still need help?

Our friendly success team is here to help! Send us an email to and we'll get back to you within 24 hours.