# NetSuite integration setup

Get answers to all of your questions regarding Brex

**URL Source:** https://www.brex.com/support/netsuite-integration

---

## 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](https://www.brex.com/custom-roles) 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](https://brand.brex.com/m/3b5f8b72975da6cc/webimage-CX-netsuite-integration-1.png)

![CX: netsuite-integration-2](https://brand.brex.com/m/5935d371e8522065/webimage-CX-netsuite-integration-2.png)

Under _SuiteTalk (Web Services)_, enable _SOAP Web Services_ and _Token‑based authentication_, and **Save.**

![CX: netsuite-integration-3](https://brand.brex.com/m/613d4ca858f4825d/webimage-CX-netsuite-integration-3.png)

**Step 2: **Install the Brex bundle. Go to _Customization > SuiteBundler > Search & Install Bundles_, search “Brex,” then **Install** the bundle.

![CX: netsuite-integration-4](https://brand.brex.com/m/24733da8e24258d/webimage-CX-netsuite-integration-4.png)

![CX: netsuite-integration-5](https://brand.brex.com/m/204732189a19d793/webimage-CX-netsuite-integration-5.png)

**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](https://brand.brex.com/m/13d5430e0ae9235c/webimage-CX-Netsuite-06.png)

![CX - Netsuite 07](https://brand.brex.com/m/6a235205b92d04d/webimage-CX-Netsuite-07.png)

Under _Screen Fields > Lines_, check **Show** for Receipt URL and Created From, then **Save**.

![CX - Netsuite 08](https://brand.brex.com/m/2e8f56d7fe2b424e/webimage-CX-Netsuite-08.png)

**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](https://brand.brex.com/m/6470832bd7e38399/webimage-NetSuite-1.jpg)

**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](https://brand.brex.com/m/423e176f16b385ef/webimage-CX-Netsuite-09.png)

**Step 6: **Create access tokens.

**(Admin role):** _Settings > Manage Access Tokens > New My Access Token_ → _Application name:_ Brex → name your token; **Save** and copy **Token ID** and **Token Secret**.

![NS Setup 10](https://brand.brex.com/m/2c8f7bc8657f02f1/webimage-NS-Setup-10.jpg)

**(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](https://brand.brex.com/m/34ce3ee3a2ca4096/webimage-NS-Setup-11.jpg)

**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](https://brand.brex.com/m/73520e4bd8f31929/webimage-CX-Netsuite-11.png)

**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**

**Note: **You may see entity selection on a separate screen after you save your credentials.



**Step 10:** Select parent entity. Choose the NetSuite _entity (subsidiary)_ that corresponds to your main Brex entity.

**Note:** This defines where Brex maps company-level configuration and is required before selecting individual subsidiaries.



**Step 11:** Select accounting entities and visibility/sync. If you use multiple subsidiaries, select the ones to import. Brex will import supported fields, and transactions will post 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)_
   - _Permissions > Transactions > Credit Card (Full)_
   - _Permissions > Transactions > Credit Card Refunds (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 liability.  
_Used to record Brex card expenses you are liable for.
- **Manual payments:** _Bank account.  
_Used for card statement payments, bills paid outside Brex, and employee reimbursements paid from your bank.
- **Card repayment receivables:** _Accounts receivable.  
_Used by Brex to track outstanding employee repayments.
- **Rewards:** _Other income.  
_Used for rewards you redeem toward your card balance.
- **Reimbursement liability:** _Reimbursement liability account.  
_Used to record the amount you owe to employees for reimbursements.
- **Local reimbursement and bill pay payouts:** _Bank account.  
_Used if you process reimbursements or Bill Pay in non-USD currencies.

### Additional mappings for accruals 

<!-- plans: Premium, Enterprise -->

- **Card accruals liability:** _Credit card accrued liability account.   
_Used when accruing card expenses for autoreversal.
- **Reimbursement accruals liability:** _Reimbursement accrued liability account.  
_Used when accruing reimbursements for autoreversal.

**Note:** To better understand how accruals work in Brex, see our [Accruals for expenses](https://www.brex.com/accrued-spending) 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. 

**Note:** For a full comparison of credit card export types and setup details, visit the [NetSuite overview Help Center article](https://www.brex.com/netsuite-overview).

### 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.

## Related setup tasks

### 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**.











__



