NetSuite integration setup

Overview Getting startedSetupConnecting NetSuiteConnecting Brex to NetSuiteGranting required NetSuite permissions (custom role)Mapping GL accounts in Entity settings Exporting card expenses as credit card transactions (Optional)Setting NetSuite defaultsTroubleshootingRelated setup tasks

Overview

Integrating your Brex account with NetSuite lets you review and sync Brex card transactions, reimbursements, and bills to NetSuite, reducing manual entry and improving control over accounting workflows. You’ll connect NetSuite, install the Brex bundle, map accounts, and choose your export format.


Getting started

  • One active ERP at a time: If you’re already connected to a different accounting system (e.g., QuickBooks Online), disconnect it before proceeding.
  • Export options: The Default configuration is for card expenses & reimbursements to export as journal entries.
    • Card Expenses: Journal Entries and Credit Card Transactions.
    • Reimbursements: Journal Entries and Vendor Bills.

Setup

Account admins, card admins, bookkeepers, and any other users with the specific product capability can integrate their Brex account with NetSuite by following the steps below. Admin access to NetSuite is required to set up this integration.


Connecting NetSuite

You’ll complete steps in NetSuite and in the Brex dashboard.

Step 1: Enable required NetSuite features. In NetSuite, go to Setup > Company > Enable Features > SuiteCloud.

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

Under SuiteTalk (Web Services), enable SOAP Web Services and Token‑based authentication, and Save.

CX: netsuite-integration-3

Step 2: Install the Brex bundle. Go to Customization > SuiteBundler > Search & Install Bundles, search “Brex,” then Install the bundle.

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

Step 3: Edit your Preferred Journal Entry form to include the Receipt URL and Created From NetSuite fields. Go to Customization > Forms > Transaction Forms and open your preferred Journal Entry form

CX - Netsuite 06
CX - Netsuite 07

Under Screen Fields > Lines, check Show for Receipt URL and Created From, then Save.

CX - Netsuite 08

Note: By default, you are configured to export as journal entries. If you plan to export to different objects, make sure to also configure the URL links in other transaction forms. Please check the Exporting card expenses as credit card transactions (Optional) section below.

Step 4: Configure the Brex Script Deployment. Go to Customization > Scripting > Script Deployments and click Edit for the Brex_Custom_Credit_Charge_Restlet script.

NetSuite 1

Step 5: Adjust the following settings on Brex_Custom_Credit_Card_Restlet, then click Save.

  • Deployed: Checked
  • Audience > Internal roles: Check the box for Select All
  • Audience > Subsidiaries: Highlight or select all subsidiaries
  • External URL: Copy the full External URL to paste into the Brex dashboard
CX - Netsuite 09

Step 6: Create access tokens.

(Admin role): Settings > Manage Access Tokens > New My Access TokenApplication name: Brex → name your token; Save and copy Token ID and Token Secret.

NS Setup 10

(Custom role, optional): If you’ll use a custom role, create it and grant the permissions listed in Granting required NetSuite permissions (custom role) section below, then create the token via Setup > Users/Roles > Access Tokens > New. Save and copy Token ID and Token Secret.

NS Setup 11

Note: You will not be able to view this information again once the Token is created and the page is closed. You can save your Token ID and Token Secret in a secure place and reuse them when disconnecting and reconnecting.

Step 7: Get your NetSuite Account ID from the URL.You can find it through either of the following routes in NetSuite:

a. Setup > Company > Company Information

b. 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 the 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 8: Be sure you have the following information saved from NetSuite to finalize connecting (this information will be used in Step 9):

  1. Token ID & Token Secret from access tokens
  2. External URL
  3. NetSuite Account ID

Connecting Brex to NetSuite

In the Brex > Accounting dashboard:

Step 9: Connect in Brex. Go to Accounting > Connect, and select NetSuite.

  1. Insert Token ID and Token Secret
  2. Insert Account ID
  3. Insert External URL
  4. Select Parent entity:
    • Select the NetSuite entity (subsidiary) that corresponds to your main Brex entity.
  5. Select accounting entity visibility and sync:
    • If you use multiple subsidiaries, choose the ones to import; Brex will import supported fields, and transactions will be posted to these subsidiaries upon export via automated intercompany journal entries.

Granting required NetSuite permissions (custom role)

If you prefer a custom role for token creation, set Accessible Subsidiaries = All and grant at least:

  • Transactions
    • Permissions > Transactions > Make Journal Entry (Full)
    • Permissions > Transactions > Journal Approval (Edit)
    • Permissions > Transactions > Find Transaction (Full)
    • Permissions > Transactions > Bill (Full)
    • Permissions > Transactions > Pay Bills (Full)
    • Permissions > Transactions > Purchase Order (Full)
    • Permissions > Transactions > Vendor Bill Approval (Full)
  • 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 (Full)
    • Permissions > Lists > Employees (Full)
    • Permissions > Lists > Employee Record (View)
    • Permissions > Lists > Currency (View)
    • Permissions > Lists > Documents and Files (View)
    • Permissions > Lists > Amortization Schedules (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)
    • Permissions > Setup > Custom Column Fields (Full)
    • Permissions > Setup > Custom Lists (Full)
    • Permissions > Setup > Custom Segments (Full)
    • Permissions > Setup > Custom Sublists (Full)
    • Permissions > Setup > Custom Record Type (Full)

Note: After editing roles or forms in NetSuite, click Integrations > NetSuite (⋯) > Refresh in Brex to sync updated metadata.


Mapping GL accounts in Entity settings

When you connect NetSuite, you’ll need to map required GL accounts in Brex for each entity in Accounting > NetSuite settings > Entity settings. These mappings determine how card expenses, reimbursements, repayments, rewards, and Bill Pay transactions flow into NetSuite.

Required mappings

  • Accounts payable: Credit card liabilityUsed to record Brex card expenses you are liable for.
  • Manual payments: Bank accountUsed for card statement payments, bills paid outside Brex, and employee reimbursements paid from your bank.
  • Card repayment receivables: Accounts receivableUsed by Brex to track outstanding employee repayments.
  • Rewards: Other incomeUsed for rewards you redeem toward your card balance.
  • Reimbursement liability: Reimbursement liability accountUsed to record the amount you owe to employees for reimbursements.
  • Local reimbursement and bill pay payouts: Bank accountUsed if you process reimbursements or Bill Pay in non-USD currencies.

Additional mappings for accruals

Premium Enterprise

  • Card accruals liability: Credit card accrued liability accountUsed when accruing card expenses for autoreversal.
  • Reimbursement accruals liability: Reimbursement accrued liability accountUsed when accruing reimbursements for autoreversal.

Note: To better understand how accruals work in Brex, see our Accruals for expenses Help Center article.


Exporting card expenses as credit card transactions (Optional)

This is an advanced setup if you want to reconcile credit card transactions via NetSuite.

Prerequisites

  • In NetSuite, update the Credit Card transaction form to show Receipt URL and Created From.
  • Ensure the Brex_Custom_Credit_Card_Restlet deployment is active, with roles and subsidiaries properly scoped.
  • The Accounts Payable GL account will be required to be a Credit Card GL account in NetSuite.

In NetSuite

Step 1: Customization > Forms > Transaction Forms > open your preferred Credit Card form > under Screen Fields > Expenses, check Show for Receipt URL and Created From > Save.

Step 2: Customization > Scripting > Script Deployments > open Brex_Custom_Credit_Card_Restlet. Configure the following settings, then click Save:

  • Deployed: Checked.
  • Audience > Internal roles: Check the box for Select All.
  • Audience > Subsidiaries: Highlight or select all subsidiaries.
  • External URL: Copy the full External URL to paste into the Brex dashboard.

Step 3: If using a custom role, include permissions for Credit Card (Full) and Credit Card Refunds (Full) in addition to the JE permissions above.


Setting NetSuite defaults

To prevent export errors when NetSuite requires fields like Department, Class, Location, or Vendor, set Default NetSuite fields per entity.

Step 1: Go to Accounting > NetSuite settings > Entity settings and open the entity.

Step 2: Expand Default NetSuite fields and click Add field. Choose the Field and Value.


Troubleshooting

Error: “Invalid login attempt” when connecting

It means that the Account ID, token, or app/role pairing is wrong or the token was revoked. To fix it, follow the steps below:

Step 1: Disconnect & reconnect using a fresh Token ID/Secret.

Step 2: In NetSuite Setup > Integration > Manage Integrations, ensure you’re using the official Brex application and that it’s Enabled (deactivate duplicates).

Step 3: Update the Brex bundle to the latest version if it’s out of date (Customization > SuiteBundler > Search & Install Bundles > List > Update bundle).

Step 4: Sandbox format: Use underscores or capital letters (e.g., 1234567_SB1).

Error: “Permission violation” / can’t select NetSuite during setup

Make sure the role used to create tokens includes Make Journal Entry permission and other required permissions listed in Granting required NetSuite permissions above, and that GL accounts are enabled.

Error: “Please enter value(s) for: Department, Class, Location, etc.”

Either disable the mandatory setting in NetSuite or set a default for the field in Accounting > NetSuite settings > Entity settings > Defaults NetSuite fields. (Include defaults for the auto‑generated AP line created at export.)

Error: “Please update your integration settings to have valid Intercompany Payable/Receivable Accounts” (multi‑entity)

In Accounting > NetSuite settings > Entity settings, map Intercompany Payable (liability) and Intercompany Receivable (asset) for the affected subsidiaries. NetSuite does not allow Bank/Credit Card/Non‑posting/Fixed Asset types for intercompany accounts.

Error: “Refresh failed – Something went wrong”

Disconnect and reconnect the NetSuite integration using a valid token and role; then run Refresh again to sync newly added NetSuite fields.

Limitation: Brex doesn’t support a NetSuite bank feed for Brex card accounts. Use the integration export from the Brex dashboard instead.

GL accounts/vendors added in NetSuite aren’t visible in Brex

Use Integrations > NetSuite (⋯) > Refresh to sync.

Note: This is different from refreshing your browser.

Receipt URL / Created From missing or “You do not have permissions to set a value for element line.custcol_receipt_url”

Enable the two fields on your preferred Journal Entry form (Customization > Forms > Transaction Forms > Edit > Screen Fields > Lines → check Show for both). Then Refresh the integration in Brex.


Importing custom fields/segments

Enable custom fields on your NetSuite Journal Entry form (don’t hide them); refresh the integration; then manage them in Accounting > Fields library and map in the integration’s Mapping section.

Mapping merchants to vendors

Use Accounting > Manage automations > Mappings to map a Merchant → Vendor (or bulk create via CSV). This populates the Name field on JEs and is required if you export card expenses as credit card transactions.

Was this article helpful?