Skip to main content
This guide walks you through connecting Brex to DualEntry. The integration is bidirectional:
  • DualEntry → Brex: Your Chart of Accounts and Companies are pushed into Brex, making them available as selectable values when coding expenses.
  • Brex → DualEntry: Vendors, card transactions, transfers, reimbursements, bills and bill payments flow back into DualEntry automatically.

Disconnect existing integrations first

Brex supports one active accounting integration at a time. If your Brex account is currently connected to another ERP (such as QuickBooks Online), disconnect that integration from Brex before connecting DualEntry.
Disconnecting a prior accounting system from Brex wipes the following from Brex and cannot be reversed:
  • GL codes on all historical Brex transactions
  • Auto-categorization rules (vendor → GL, merchant → GL, MCC-based)
  • Custom field / dimension mappings (department, class, location, project, etc.)
  • Vendor links between Brex vendors and your prior ERP’s vendor records
Brex does not store its own chart of accounts; it relies entirely on the connected accounting system to supply GL codes. This behavior is enforced by Brex. Confirm the impact with your team before disconnecting.

Before you disconnect

Work through this checklist to avoid mid-cutover surprises:
  1. Contact Brex Support. Brex support can assist you in backing up any Vendor Defaults and Custom Rules that have been created. Once this is backed up, Brex can help update the defaults and rules after connecting Brex to DualEntry.
  2. Drain the bill-pay queue. Approve, reject, or schedule out all bills currently pending in Brex Bill Pay. Confirm no ACH or check payments will release during the cutover window.
  3. Submit pending employee expenses and reimbursements. Unsubmitted expenses lose their GL context. Have employees submit and approvers approve, or accept that re-coding will be required.
  4. Export historical reports. Pull GL-coded transaction reports out of Brex for audit and compliance. Once disconnected, these cannot be regenerated.
  5. Reconcile and close the prior ERP through the cutover date. Seal your last clean snapshot of Brex activity.
  6. Pick a clean cutover date. Month-end after close is ideal. Mid-period cutovers split a period across two ERPs and create reconciliation work.
  7. Plan to rebuild downstream rules. Card budgets, spend limits, expense policies, and approval workflows that reference GL accounts will need to be reconfigured against DualEntry’s COA.

Prerequisites

Confirm the following before connecting:
  • Admin access to both your DualEntry and Brex accounts. The primary connection method uses your Brex login credentials. If you’re connecting via API instead, you’ll also need a Brex role with permission to generate accounting-scope API tokens (not all Brex plans expose these).
  • Your prior Brex accounting integration (if any) is disconnected. See the previous section for the impact and the pre-disconnect checklist.
  • For multi-entity setups: every Brex legal entity you want to sync has a corresponding company set up in DualEntry.
  • The DualEntry accounting period(s) covering your cutover date are open. Brex transactions cannot post into a closed period.
  • Multi-currency: if Brex spend includes non-base currencies, confirm those currencies are enabled and FX rates are configured in DualEntry.

How to connect

DualEntry supports two ways to authenticate with Brex. Login credentials are the recommended method for most customers.
  1. In DualEntry, navigate to Configuration → Company → Integrations → Brex.
  2. Choose Connect within the Brex integration box.
  3. You’ll be redirected to Brex. If you are not already signed in, enter your Brex login credentials.
  4. Approve the requested permissions.
  5. You’ll be redirected back to DualEntry. The integration shows as Connected.
The initial sync may take some time depending on the volume of data. Once complete, navigate to Brex to review Entities and Chart of Accounts. Use this method if your team prefers token-based authentication or your security policy requires it.
  1. In Brex, generate an API token with accounting integration scopes. This happens entirely in Brex’s own dashboard; see Brex’s authentication documentation for the current steps.
  2. Copy the token.
  3. In DualEntry, navigate to Configuration → Company → Integrations → Brex.
  4. Choose Connect with API token and paste the token.
  5. Choose Save. DualEntry validates the token automatically.
  6. Once authenticated, the integration shows as Connected.

Configure Brex settings in DualEntry

  1. Navigate to Configuration → Company → Integrations → Brex.
  2. Choose Settings in the upper-right corner. A drawer opens (Brex Settings).
  3. Set a cutoff date. This is typically the migration date.
  4. Choose Brex Accounting Settings and configure the following:
    • Assign a default company (required).
    • Assign a backup Accounts Payable account for Brex bills (required).
    • Adjust look-back days if necessary.
  5. Navigate out of the drawer and choose Initial Sync or Sync.
The initial sync may take 30 minutes to 1 hour.

How the look-back window works

The integration pulls historical records using whichever date is older: the cutoff date or the look-back window. Brex does not return all data on every sync, so a fixed look-back window is required.
  • Day 1 of integration with cutoff = today, look-back = 30: only today’s records come in.
  • After three months of running, regardless of cutoff date, only the last 30 days of records are visible to each sync.
If you need to recover an older transaction outside the look-back window, temporarily widen the look-back days, run a sync, then restore the original setting.

Configure Brex settings in the Brex app

Wait at least one hour after the initial sync before performing this step.
  1. Sign in to Brex.
  2. In the left menu, choose Accounting.
  3. Choose DualEntry Settings at the top.
  4. You see a list of entities pushed from DualEntry. Go through each company and map the Brex entity and accounts.
  5. Navigate back to Accounting and open Fields Library.
Common setup pitfalls:
  • Parent account is controlled by Brex. In a multi-entity setup, the parent account assignment is made by Brex, not DualEntry. If the wrong entity is set as parent, contact Brex support to change it. The rewards mapping field only exists on the parent account, so pick the entity that should receive the Brex rewards GL impact.
  • Brex does not validate company-to-account alignment. Bank accounts and credit cards in DualEntry are scoped to one company each. Brex does not enforce this when you map Accounts Payable or Credit Card accounts, so it is possible to map one entity’s AP account to a different entity in Brex with no warning. DualEntry rejects the transaction at sync time because the bank or credit card does not belong to the company on the bill or charge. This is the most common sync error after setup.
  • Disable unused GL accounts in Brex. Every GL account in DualEntry is pushed to Brex’s fields library. If you have a large chart of accounts, this produces a long dropdown that slows down expense coding. Disable accounts in Brex’s fields library that your team does not need.

What syncs

The Brex integration runs in two directions.

DualEntry → Brex (Scheduled or on sync): Not available for API token connections

DualEntry pushes data to Brex on a 30-minute schedule. To push immediately, choose Sync now from Configuration → Company → Integrations → Brex. When a DualEntry account is deactivated, it is also deactivated in Brex, preserving any historical transactions already tagged to it while removing it as an option for new expenses. Once your integration is connected and DualEntry has pushed your companies to Brex, map each Brex legal entity to the corresponding DualEntry company so synced transactions route to the correct entity in your ledger. This mapping is configured inside Brex, not in DualEntry.
  1. In Brex, navigate to Accounting → Integrations → DualEntry.
  2. Open the Entity Mapping (or Subsidiaries) section.
  3. For each Brex legal entity in the left column, choose the corresponding DualEntry company from the dropdown on the right.
  4. Save the mapping.
  5. Repeat for all your active legal entities.
If a Brex legal entity is unmapped, transactions belonging to it fall back to the single Brex company mapping during sync, which may route them to the wrong entity in DualEntry. Map every active legal entity before relying on multi-entity routing.

Brex → DualEntry (Scheduled and real-time)

Brex syncs records to DualEntry through two mechanisms:
  • Real-time (webhook): Card expenses and reimbursement expenses are sent to DualEntry when a user exports them to ERP from inside Brex; these arrive in near real time after the export action.
  • Scheduled: All other records (company, vendors, accounts, bill-pay, clawbacks, and transfers) flow on a scheduled sync.
Each scheduled run pulls Brex data in this order: company, vendors, accounts, transfers, expenses. Records that depend on others (expenses on vendors) only post once their dependencies are mapped.

VAT on Brex bills and payments

Brex has no concept of a net amount plus a separate VAT line: every bill and bill payment it sends to DualEntry carries a single, undifferentiated total. To record VAT correctly on these transactions, code them by their gross (VAT-inclusive) amount and let DualEntry split out the VAT.

Push VAT tax codes to Brex

Before a VAT rate can be selected on a Brex bill or bill payment, it has to exist in Brex as a Tax Code option. DualEntry pushes VAT rates to Brex, but this push has to be turned on and configured first:
  1. Navigate to Configuration → Company → Integrations → Brex → Settings.
  2. Leave Allow push data on (it defaults to on for Brex). If it’s off, the tax-code push is skipped along with the chart of accounts and companies.
  3. Open Brex Accounting Settings.
  4. Under Accounting Fields Configuration, use Tax Codes and select the VAT countries whose rates should go to Brex. The helper text reads: “Push TAX rates from selected countries to Brex as [Tax Code] custom-field values.”
  5. Choose Save, then run Sync (or wait for the scheduled sync). Saving the setting does not push by itself.
On that sync, DualEntry creates the Tax Code field in Brex if it isn’t already there, then creates one option per active VAT rate in the selected countries, labeled like VAT 20% — GB Standard. Inactive rates that were already pushed are disabled in Brex, not deleted. The rates themselves have to exist in DualEntry first; see Non-US Taxes to set them up.

Enter the gross amount, not the net amount

  1. When coding a Brex bill or bill payment for a purchase in a VAT country, enter the full gross total (net + VAT) as the transaction amount. For example, enter 1,200fora1,200 for a 1,000 purchase with 20% VAT, not $1,000.
  2. Select the applicable VAT rate (for example, “United Kingdom Standard 20%”) on the line.
  3. DualEntry reverse-calculates the net expense and VAT amount from the gross total and the selected rate: net = gross ÷ (1 + rate), VAT = gross − net. For the example above, this posts as 1,000.00netexpenseand1,000.00 net expense and 200.00 VAT.
This gross-entry workaround applies to bill-pay expenses and bill payments synced from Brex. It does not change how you enter transactions manually elsewhere in DualEntry, where you still enter the net amount and DualEntry calculates VAT on top of it (see Non-US Taxes).

Nexus is a prerequisite

The VAT rate you select must belong to a country where a Nexus is already configured for the company on the transaction (Configuration → Tax Setup → Nexuses). Nexus setup is entirely manual: DualEntry never creates one automatically based on synced Brex activity. See Non-US Taxes for how to configure one. If a Brex bill or payment references a VAT rate for a country with no matching Nexus, the record fails to import with an error naming the missing nexus and country, and needs a manual fix rather than posting silently. If you’re testing this in DualEntry’s own bill entry form instead, the VAT rate for that country simply won’t be offered until the Nexus exists. Either way, configure the Nexus first, then (re)sync or re-enter the transaction.

Not limited to UK VAT

The gross-amount workaround isn’t UK-specific. It works the same way for any VAT country you’ve set up a Nexus and VAT rates for (EU member states included), since DualEntry reverse-calculates net and VAT off the selected rate regardless of country. It does not apply to GST countries (Australia, India, and others); GST tax codes on Brex transactions are out of scope for this workaround. Because the net amount is derived from the gross total, rounding can differ by a cent from what you’d get calculating VAT forward off the net amount, particularly on totals that don’t divide evenly by the rate. If you notice a rounding discrepancy on a Brex-synced bill, this is the expected cause. Check with support before treating it as a defect.

Result

After completing these steps, your DualEntry Chart of Accounts is available inside Brex for tagging expenses, and Brex transactions sync into your ledger on the configured schedule. To connect additional systems, return to Integrations. For AP workflows that ingest Brex bill payments, see Accounts Payable.
Last modified on October 5, 2026