NetSuite integration

Overview SetupSetup mappingsManage your integrationTransaction exportJournal entry creationSubsidiariesDefault fieldsCustom fieldsMap to vendorsCustom user roleDisconnect NetSuiteTroubleshootingMultiple entities


Brex's integration with NetSuite streamlines financial data management by providing real-time visibility, easy customization, and eficient management of fields and workflows. The integration allows you to control spend, export financial data, and automate the import of your chart of accounts. Mapping rules help auto-categorize transactions, simplifying the financial management process. Custom rules manage edge cases and custom workflows to reduce manual review and ensure accurate transaction routing. This comprehensive guide walks you through setting up the integration, whether you're a current NetSuite user or considering it as a future option. Connecting Brex to your NetSuite account takes less than 10 minutes, and exporting data can be completed in as little as 15 minutes, depending on the complexity of the customization and configuration.


Account admins, card admins, and bookkeepers can integrate their Brex account with NetSuite by following the steps below. Step 1: In your dashboard, go to Accounting and click Get started. Step 2: Click Connect under NetSuite and follow the prompts, which are also outlined below. Note: If you’re already integrated with another accounting software, you’ll need to disconnect it before you can proceed. Step 3: Sign in to your NetSuite account and go to Setup > Company > Enable Features > SuiteCloud.

CX: netsuite-integration-1
CX: netsuite-integration-2

Step 4: In the SuiteCloud tab, go to the SuiteTalk section to make sure that Soap Web Services is checked. Under Manage Authentication, token-based authentication should also be checked.

CX: netsuite-integration-3

Step 5: Go to Customization > SuiteBundler > Search & Install Bundles and search for “Brex.” When it appears, install the bundle.

CX: netsuite-integration-4
CX: netsuite-integration-5

Step 6: Go to Customization > Forms > Transactions Forms. Find the journal entry format you use and click Edit.

CX - Netsuite 06
CX - Netsuite 07

Step 7: Go to Screen Fields > Lines and make sure both Receipts URL and Created From are selected.

CX - Netsuite 08

Step 8: Go to Customization > Scripting > Script Deployments and click View for the Brex_Credit_Charge_Restlet script. Step 9: Within the URL field, make a note of the script ID and the deployment ID. For example — if the URL is /app/site/hosting/ — then the script ID is 239 and the deployment ID is 1. Step 10: Return to the home page and go to Settings > Manage Access Tokens. Step 11: Click the blue button New My Access Token. Select Brex from the dropdown for Application Name, and choose a Token Name.

CX - Netsuite 09

Step 12: Click Save and copy the Token ID and Token Secret created by NetSuite into the matching fields in the Brex dashboard. Note: If you have not been following along through the setup screen in Brex, or if you have been signed out of Brex, initiate the connection process for NetSuite described in Steps 1 and 2. Click through until you reach the screen with fields for your Token ID and Token Secret. Step 13: Enter your NetSuite account ID. You can find through either of the following routes:

  • Setup > Company > Company Information
  • Displayed at the beginning of your URL when you're on the account page

Note: If you’re connecting a sandbox environment, you need to change a dash to an underscore and capitalize any letters after the underscore — e.g., 1234567-sb1 should be entered into Brex as 1234567_SB1.

CX - Netsuite 11

Step 14: Review and confirm your token ID, token secret, and account ID before clicking Connect. Step 15: Enter the deployment ID and script ID from Step 9 and click Next. Step 16: In the Brex dashboard, select the entity you would like to connect to NetSuite. The entity that you select should be the NetSuite entity that corresponds with your main entity in Brex. We’ll bring in the GL accounts, departments, locations, vendors, and more associated with this entity. All transactions will post to this entity by default. If you don't have subsidiaries, no action is required. Step 17: If you have additional subsidiaries, select the subsidiaries you’d like to connect to in Brex. We will bring in the departments, locations, vendors, and more associated with these subsidiaries. Transactions will be posted to these subsidiaries upon export via automated intercompany journal entries. Click Done to finish setup.

Setup mappings

GL account <> Brex Category

In the Brex category column, you’ll see which of the 48 Brex categories was automatically assigned to each transaction based on the merchant information. You have the option to map it to a GL account from your NetSuite. Note: This mapping is really basic and is designed to work as a baseline. Do not feel like you have to map all of these as some of these categories can be really broad i.e. general merchandise.

GL account <> Brex Merchant

These mappings will override the Brex category mappings. On the left you will see the Brex Merchant column. This dropdown is filled with merchants that you have already spent with on Brex. On the right, you have the option to map these merchants to a NetSuite GL account.


On the left are Brex departments. These departments are coming from the Team tab on the left. These have either been uploaded or synced from your HRIS. On the right you have the option to map these to your NetSuite departments.


On the left are Brex locations. These locations are coming from the Team tab on the left. These have either been uploaded or synced from your HRIS. On the right you have the option to map these to your NetSuite locations.

Cost center

On the left are Brex cost centers. These cost centers are coming from the Team tab on the left. These have either been uploaded or synced from your HRIS. On the right you have the option to map these to your NetSuite cost centers.


If you would like the vendor to be tagged on each transaction, you can map Brex merchants to NetSuite vendors. If you don’t want to tag specific vendors in NetSuite, we will still send the vendor name to NetSuite in the memo field.

Manage your integration

Step 1: After completing your connection, go to Accounting > Manage accounting fields > Mappings. You can also go to Accounting and click any of the management options available. Step 2: Select an entity and enter your NetSuite account information for your Accounts payable, Bank accounts, and Rewards credit redemptions. Please note that your categories must be linked to the following:

  • Accounts Payable - Credit Card
  • Card collection and employee repayment bank account - Bank Account
  • Rewards Credit - Other Income

Step 3: Go to Accounting > Manage NetSuite and click Export options to configure your preferred format for exporting transactions.

Step 4: If you opt to export in the form of journal entries, expand the Journal entries tab to select your preferred format. Options include a single journal entry for each transaction or a batch by day, week, or month. Note: If you opt to export credit card transactions as credit card charges when exporting intercompany transactions, Brex will export in the form of both credit card charges and advanced intercompany journal entries.

Transaction export

Now that you’ve integrated your Brex account with NetSuite, you're ready to export your Brex transactions to a NetSuite journal entry. The NetSuite integration allows you to push transactions to NetSuite by creating one or more journal entries. The export isn't automatic and requires initiation from the Brex dashboard, allowing you to review how your transactions will appear in your chart of accounts to ensure accuracy. Note: Brex transaction data is only exported as journal entries, not vendor bills. Step 1: In your dashboard, go to Accounting > Transactions to prepare transactions and set the date range you want to export. Step 2: Review the listed transactions and use the filters to show transactions that have rules applied to them, received edits from employees, or have conflicting rules that need to be resolved. Step 3: After you've reviewed your transactions for accuracy, click Ready for Export in the top-right corner. Step 4: Go to Ready for export and click on the transactions you want to export. Step 5: You have two export options:

  • Direct export to NetSuite: Your transactions will be pushed directly into NetSuite as one or more journal entries based on your custom journal entry setting in Brex (the default is monthly).
  • Export to CSV: Download a CSV file containing all the exported transactions and their mappings to your computer. You can then import the CSV file to NetSuite, where NetSuite will ask you to map each column to the corresponding NetSuite field.

Once you've exported directly to NetSuite from Brex, you'll find your Brex transactions on the Chart of Accounts page in NetSuite. Search for the name of the accounts payable account you selected during the integration setup. Click the account name to see the account register. Use date filters and Sort by to find your journal entries. Note: If you batch your transactions by week or month, the date shown may not be the first or last day of the week or month. The date of the journal entry will be the date of the first transaction made within that batch.

Prevent duplicate entries

To prevent duplicate entries, we don't allow you to re-export a successfully exported transaction. Once you export transactions from the Integrations tab (whether directly to NetSuite or via CSV), you can't export it again. You can, however, export transaction data from the Expenses tab to CSV, PDF, HTML, TXT, or XLSX as often as you'd like.

Journal entry creation

Journal entries are created for each export. Brex gives you the flexibility to choose how you want to batch your transactions into journal entries:

  • Monthly journal entries (default setting)
  • Weekly journal entries
  • Daily journal entries
  • Journal entries for each transaction

If the transactions span multiple calendar months, Brex will break that export into separate journal entries (one for each month with transactions completed).


You can choose one subsidiary when connecting the integration, or you can enable multiple subsidiaries. We'll import accounts, classes, departments, locations, vendors, and other supported fields belonging to your chosen subsidiaries and export journal entries to them. For transactions across multiple subsidiaries, we take on the work of automatically generating the intercompany journal entries for you.

Default fields

Setting up NetSuite default fields will resolve the export error that says “Please enter value(s) for: Department/Location/Vendor/Memo.” This export error is usually due to fields being marked as mandatory within NetSuite. To set up a NetSuite default field, follow these steps: Step 1: In your dashboard, go to Accounting > Manage accounting fields > Mappings > Select your desired subsidiary. Step 2: Click the arrow next to Defaults NetSuite fields > Add Field. Step 3: Select a Field and a Value that you’d like as a default for your entity. This will automatically save. Note: If you want to add another field, click Add field.

Custom fields

Account admins, card admins, and bookkeepers can now map to custom fields in NetSuite from the Brex dashboard. To enable custom fields, you'll first need to contact your Customer Success Manager or contact Brex Support to confirm eligibility. Step 1: Sign in to your NetSuite account with admin privileges and navigate to Customization > Forms > Transactions Forms and locate your preferred custom journal entry form.

CX - Netsuite 14

Step 2: Select Edit next to the journal entry form.

CX - Netsuite 15

Step 3: On the Custom Transaction Form page, navigate to Screen Fields > Lines. Select the Show checkboxes next to all fields.

CX - Netsuite 16

Note: Deselecting a field on this page will cause an error with the NetSuite integration. You’ll have the option to hide custom fields later in this setup process. Step 4: Click Save. Step 5: From the Brex dashboard, click your name in the top right and go to Integrations. Step 6: Next to NetSuite, click the three dots > Refresh. Step 7: To confirm that custom fields have been successfully enabled, navigate to Accounting > Manage accounting fields. Scroll down to view your custom fields, which you can enable and disable from this screen. Step 8: Once your custom fields or segments have been imported into Brex, they can be mapped to the Brex fields of your choice in the Mapping section of your NetSuite integration page. Exporting expenses to NetSuite directly will code the selected values on the journal entry. If exporting as a CSV, the custom segments will also show up as a column with the corresponding value.

Map to vendors

Vendor mapping gives you the ability to map merchants in Brex to the list of vendors found in NetSuite. Once mapped, the vendor name will appear under the Name field of the journal entry. Account admins, card admins, and bookkeepers can create these rules by following the steps below. Step 1: In your Brex dashboard, go to Accounting > Manage accounting fields > Mappings. Step 2: Scroll down to the Vendor section. Click to expand the section.

CX - Netsuite 17

Step 3: Click Add mapping to map a specific Brex Merchant to a Vendor in NetSuite. You can add as many mappings as you like. Subsequent transactions with these merchants will follow the vendor mappings, with the appropriate NetSuite vendor added to the Name field of your journal entries. Any current transactions that have not been exported to NetSuite will also have their vendor mappings retroactively updated.

Custom user role

Your respective NetSuite admin will first need to install the Brex bundle from SuiteBundler. After enabling token-based authentication and SOAP web services, a token ID and token secret can be generated by a NetSuite admin and entered in Brex. When using NetSuite, you have the option to create a custom user role within their platform to manage token creation for your NetSuite integration with Brex. Step 1: Sign in to the NetSuite platform. Step 2: In the main menu bar toward the top of the dashboard, click Setup > Users/Roles > Manage Roles > New or Search.

  • New takes you to the Role creation form in NetSuite.
  • Search takes you to your current company list and default role types. From here, you can edit or repurpose another role.
NetSuite Custom User 03

Step 3: In the Subsidiary Restrictions table, set Accessible Subsidiaries permissions to ALL.

NetSuite Custom User 02

Step 4: Click Permissions in the NetSuite Role creator page. In this table set, set the following criteria on the user profile:

NetSuite Custom User 04
  • Transactions
    • Permissions > Transactions > Make Journal Entry (Full)
    • Permissions > Transactions > Journal Approval (Edit)
  • Lists
    • Permissions > Lists > Perform Search (Full)
    • Permissions > Lists > Accounts (View)
    • Permissions > Lists > Classes (View)
    • Permissions > Lists > Customers (View)
    • Permissions > Lists > Departments (View)
    • Permissions > Lists > Locations (View)
    • Permissions > Lists > Projects (View)
    • Permissions > Lists > Subsidiaries (View)
    • Permissions > Lists > Vendors (View)
    • Permissions > Lists > Employees (View)
    • Permissions > Lists > Currency (View)
NetSuite Custom User 01
  • Setup
    • Permissions > Setup > Login using Access Tokens (Full)
    • Permissions > Setup > SOAP Web Services (Full)
    • Permissions > Setup > User Access Tokens (Full)
    • Permissions > Setup > Deleted Records (View)
HC - Netsuite 23

Step 5: Go to Permission > Setup > Custom Column Fields. Add the Custom Column Fields permission. Then, add the following:

  • Permissions > Setup > Custom Lists (View)
  • Permissions > Setup > Custom Segments (View)
  • Permissions > Setup > Custom Sublists (View)
  • Permissions > Lists > Custom Record Entries (View)

Once these permissions are selected and saved, your custom user role is ready for use in the NetSuite integration installation for Brex.

Disconnect NetSuite

Step 1: In your dashboard, click your name in the top right and click Integrations. Step 2: Click on the three dots next to the NetSuite tile. Step 3: Click Disconnect so that you no longer directly export expense data from Brex. This won’t affect anything on NetSuite’s end. Note: If you reconnect to the same account, disconnecting your integration won’t impact your mappings.


The following are some issues you may encounter when using your NetSuite integration. If you still have trouble, or don’t see your problem listed here, please reach out to Brex Support via your dashboard.

Transactions aren’t exporting

If you don't see your Brex transactions in NetSuite after manually exporting them from the Brex dashboard, please try the troubleshooting steps below. Step 1: Check that you have admin permissions in NetSuite — if you don't, ask your NetSuite admin to create the access token required to set up the integration with NetSuite, or have them grant you admin access. Step 2: Check that you've mapped all of the Settings categories for your integration, including Accounts payable, Bank account, Card collection and employee repayment bank account, Reimbursements bank account, and Rewards credits. Step 3: Ensure that you are not mapping your Brex fields to any NetSuite field values that have been deleted. In your Brex dashboard, click Accounting > Manage Accounting fields > Mappings. Look at the Mappings section to ensure that there are no red exclamation marks next to a mapping. If you do see one, you can refresh your NetSuite fields from the NetSuite integration tab, then re-map the broken mappings before trying to export again. Step 4: Click Accounting > Prepare transactions and filter by the Conflicting rule alert to check that you have no conflicting rules. You may have transactions with multiple conflicting custom rules applied to them. To export these transactions, Brex needs to know which conflicting custom rule(s) should be ignored. Click the X on the rules you want to ignore (you can always reapply them). Step 5: Confirm that Receipt URL and Custom Fields are enabled on NetSuite. Check by going to Transactions > Financial > Make Journal Entries. You should see both fields in the Lines section if they're enabled. If you're using a custom form and don't see the fields, you can fix this issue by going to Customization > Forms > Transaction Forms. Find the preferred journal form and click Edit > Screen Fields > Lines. Find the Receipt URL and Created From fields and click the Show checkboxes next to them. If there are no checkboxes visible, try clearing your browser's cache, log out, and log back in. Step 6: Confirm that the books for the period you are trying to export have not been closed. Brex can only post to open accounting periods, so if you are trying to post transactions to a closed period, the export will fail. We recommend ensuring Brex transactions are compliant before you close your posting period within NetSuite so you can successfully export. Note: If you are not seeing transactions in Prepare transactions that you think should be available for export, please ensure that you haven't previously exported these transactions to a CSV file or ensure they are not already in the review & export state. Only one type of export is allowed, via integration or CSV, so you may need to check your downloads or speak with someone on your team who may have previously exported.

Multiple entities

The NetSuite integration allows you import multiple entities or subsidiaries from NetSuite to use for inter-company accounting.

Entity setup

Step 1: In the Brex dashboard, go to Accounting > Accounting fields and mappings and click on the desired entity. Step 2: You can click into each entity to manage which intercompany payable and receivable accounts you’d like to use. These will be used to create an advanced intercompany journal entry in NetSuite when you export intercompany transactions. These settings are required to successfully export transactions associated with that entity. Note: You’ll only need intercompany payable and receivable accounts if an entity is being billed to the primary/default entity (both for card statements and reimbursements). Otherwise, you can provide the entity’s individual AP payable and bank account GL in the General Ledger Details dropdown. Step 3: Enable and disable entities via the toggle switch after selecting each entity. If you disable an entity to which transactions had been assigned, the entity categorization for those transactions will be removed. Step 4: You can create new entities within NetSuite and bring them into Brex by refreshing your integration connection.

Map Brex entities to NetSuite entities

You can create entities within Brex through the Team page or through your HRIS connection. These are the entities to which you can assign employees, so that transactions made by an employee will automatically be mapped to their appropriate entity. Step 1: To map your Brex entities to your NetSuite entities, go to Accounting > Manage accounting fields > Mappings. Step 2: Go to Settings and scroll down to click on Entities. Choose which Brex entity you want mapped to which NetSuite entity.

Assign entities to transactions

Transactions are mapped to entities based on the entity of the employee who made the transaction. Employees are assigned to entities based on your HRIS connection or manually through the Teams page. Please reach out to us to bulk assign employees to entities. You can also assign entities to budgets in the budget override section. This allows the budget selection to drive the entity if you have users that spend across multiple entities. To do this, go to Budgets > select a budget > Edit budget > Advanced controls > Budget overrides.

Export transactions

For expenses that were billed to the default/primary entity but spent by a different entity, exporting directly to NetSuite with multiple entities will create an advanced intercompany journal entry with the GL account selections you made in the entity settings. For example, a single expense for an entity will result in:

  • A line for the default company crediting the accounts payable account selection you made
  • A line for the default company debiting the intercompany receivable account selection you made
  • A line for the subsidiary crediting the intercompany payable account selection you made
  • A line for the subsidiary debiting the expense account

For multiple expenses, the total credit amount for the payable accounts are summed.

CX - Netsuite 22

For expenses that were billed and spent by the same entity, the expense is exported as a standard JE:

  • A line for the entity debiting the expense account
  • A line for the entity crediting the accounts payable account selection you made.

Exporting to a CSV will generate a CSV where each row represents a transaction. There will be four entity columns:

  • Billed entity: Entity that paid in Brex
  • Spending entity: Entity that spend was for in Brex
  • Integration Billed entity: Entity that paid in Brex, using the name of the entity from your ERP (this leverages the name mapping provided above)
  • Integration spending entity: Entity that spend was for in Brex, using the name of the entity from your ERP (this leverages the name mapping provided above)

Your export will only be successful if transactions are categorized with values that the entity can access. For example, if an expense is categorized with a New York location and is being exported to an Australian subsidiary, and New York is not accessible to the Australian subsidiary within NetSuite, then the export will fail.

Was this article helpful?