NetSuite integration
Overview
Integrating your Brex account with Netsuite reduces manual errors and data entry. It also offers:
- Better control over accounting processes by letting you tag expenses as billable and assign customer codes before exporting them
- More accuracy with a data export feature that transfers expense data, including receipts and memos, directly from your Brex dashboard to Netsuite
- Create rules and mappings to reduce manual categorization of transactions
- Synced data with vendor mapping that matches merchants in Brex to the list of vendors in Netsuite
To set up the Brex integration with Netsuite, follow both sets of instructions outlined below.
Setup
Account admins, card admins, and bookkeepers can integrate their Brex account with NetSuite by following the steps below. Admin access to NetSuite is required to set up this integration. Note: The Custom user role section provides instruction on providing Brex specific permissions. 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. You can find the steps to do so further down in this article. Step 3: Sign in to your NetSuite account and go to Setup > Company > Enable Features > SuiteCloud.
Step 4: In SuiteCloud, go to SuiteTalk and select Soap Web Services. Click Manage Authentication > select token-based authentication.
Step 5: Go to Customization > SuiteBundler > Search & Install Bundles and search for “Brex.” When it appears, install the bundle.
Step 6: Go to Customization > Forms > Transactions Forms. Find the journal entry format you use and click Edit.
Step 7: Go to Screen Fields > Lines and make sure both Receipts URL and Created From are selected.
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/restlet.nl?script=239&deploy=1 — then the script ID is 239 and the deployment ID is 1. Important: To connect with an admin profile, follow step 10 below. To connect with a custom user role, move on to step 11 to add necessary permissions. Step 10: Click the house icon on the top left corner and go to Settings > Manage Access Tokens > New My Access Token. Step 11: In the Application Name dropdown, select Brex and choose a Token Name. Step 12: To set up an access token using a custom user role, click Setup > User Roles > Access tokens > New Access tokens and set the following:
- Application name: Brex
- User: Select the preferred user
- Role: Select your Custom user role
- See the Customer user role section of this article for more details.
- Token name: Select a name to easily identify the role you are creating
Step 13: 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 14: Enter your NetSuite account ID. You can find it 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.
Step 15: Review and confirm your token ID, token secret, and account ID before clicking Connect. Step 16: Enter the deployment ID and script ID from Step 9 and click Next. Step 17: 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 that are associated with this entity. All transactions will be posted to this entity by default. If you don't have subsidiaries, no action is required. Step 18: 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. We’ll import your NetSuite fields and values, so that you can categorize transactions appropriately in the Accounting tab. A banner will indicate when your import is complete.
Setup mappings
GL account <> Brex Category
In your Brex dashboard, go to Accounting. In the list of transactions, look for the Expense 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
Note: These mappings will override the Brex category mappings. For more information about mappings, read this help article. In the Accounting dashboard, you will see the Brex Merchant column. This dropdown is filled with merchants that you have already transacted with using your Brex card. By clicking on a transaction or scrolling to the right, you can map these merchants to a NetSuite GL account.
Department
The accounting dashboard contains a column for Brex departments that come from the Team tab. These have either been uploaded or synced from your HRIS. By clicking on a transaction or scrolling to the right, you can map these to your NetSuite departments.
Location
The accounting dashboard contains a column for the Brex locations that come from the Team tab. These have either been uploaded or synced from your HRIS. By clicking on a transaction or scrolling to the right, you can map these to your NetSuite locations.
Cost center
The accounting dashboard contains a column for Brex cost centers that come from the Team tab. These have either been uploaded or synced from your HRIS. By clicking on a transaction or scrolling to the right, you can map these to your NetSuite cost centers.
Vendor
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.
Set up accounts and export format
Step 1: After completing your connection, go to Accounting > Fields & rules > Entity settings and click on your parent entity to map the GL accounts. Step 2: Select an entity and enter your NetSuite account information for your Accounts payable, Bank accounts, Rewards credit, and Reimbursements. Your accounts must be linked to the following:
- Accounts Payable: Credit Card
- Card collection and employee repayment bank account: Bank Account
- Rewards Credit: Other Income
- Reimbursement bank account: Bank Account
- Reimbursement payout account: Bank Account
- Reimbursement liability: Employee Liability
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. For a more detailed guide of the Accounting dashboard, go read this help article. Note: Brex transaction data is only exported as journal entries, not vendor bills. Step 1: In your dashboard, go to Accounting > Prepare 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, select them, and click Prepare to review. Step 4: Go to Review 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.
Exporting previously exported transactions
To prevent duplicate entries, we don't allow you to re-export a successfully exported transaction. Once you export transactions from the Accounting tab (whether directly to NetSuite or via CSV), you can't export it again from the Prepare tab. You can, however, export transaction data from the Expenses tab to CSV, PDF, HTML, TXT, or XLSX as often as you'd like. If you’d like to send exported transactions back to Prepare, you can do so via Export history.
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).
Subsidiaries
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 > Fields & Rules > Entity settings and 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.
Step 2: Select Edit next to the journal entry form.
Step 3: On the Custom Transaction Form page, navigate to Screen Fields > Lines. Select the Show checkboxes next to all fields.
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 > Fields & rules. 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.
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.
Step 3: In the Subsidiary Restrictions table, set Accessible Subsidiaries permissions to ALL.
Step 4: Click Permissions in the NetSuite Role creator page. In this table set, set the following criteria on the user profile:
- 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)
- Permissions > Lists > Documents and Files (View)
- 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)
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 > Setup > Custom Record Type (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. Note: If you’re connected with a custom user role and have bill pay enabled, add the permissions below:
- Permissions > Transactions > Bill (Full)
- Permissions > Transactions > Pay Bills (Full)
- Permissions > Transactions > Purchase Order (Full)
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.
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 > Fields & rules > Entity settings. 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. Note: 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.
Troubleshooting
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.
“For input string: ‘1,365.16.’” error
This error may come from formatting in your custom templates. Check that all fields in your export match NetSuite’s expected format, as differences in commas or decimal points could cause issues.
“Invalid Vendor - IC - [Vendor Name] for Subsidiary” error
This usually indicates an invalid or missing vendor setup. Double-check your vendor information and confirm your NetSuite settings to resolve this.
Missing Credit Card GL error when preparing transactions for review
This error usually means a GL account may not be mapped correctly. Double-check the account types in your Brex 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 as explained in the Set up accounts and export format section of this article 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 > Fields & rules. Look at the Custom rules tab to ensure that there are no red exclamation marks next to a rule. 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 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.