Microsoft Dynamics NAV and Brex integration
Microsoft Dynamics NAV is your company's financial engine. Brex manages your corporate cards and spend. Connecting the two keeps your accounting aligned with your actual spending without manual re-keying. Corporate card transactions, expense reports, and transfers from Brex flow into NAV as general ledger entries and vendor invoices, automatically allocated to the cost centers and GL accounts you specify. Your accounting team no longer spends time reconciling two systems.
What moves between them
Brex transactions, expenses, and transfers flow into Microsoft Dynamics NAV's general ledger and vendor records. After each spend event (card transaction, expense approved, transfer completed), ml-connector reads the Brex record, maps it to the appropriate NAV GL account and vendor, and posts a journal entry or vendor invoice. Cost center and department dimensions in NAV are aligned with Brex budget and team assignments. Brex accounting records (accounting-record-ready-for-export events) are read first so NAV journal entries are created in the correct sequence, and duplicate transactions are prevented via idempotency tracking.
How ml-connector handles it
ml-connector stores OAuth 2.0 credentials for both systems and refreshes Brex bearer tokens before they expire. NAV webhooks are used where the customer has Business Central online and has registered a subscription; otherwise ml-connector polls the NAV purchase invoices and GL entries endpoints on a schedule tied to your expense and approval workflows. On the Brex side, ml-connector listens for transfer-processed, expense-payment-updated, and accounting-record-ready-for-export events via Svix webhooks with HMAC-SHA256 verification, and also polls the transactions and accounting records endpoints as a backup. Expenses and transfers are tagged with an idempotency key before posting to NAV to prevent re-posting if a retry occurs. Dimensions (cost center, department) are validated before posting so every journal line lands on a valid NAV account. If a NAV GL account does not yet exist for a Brex category, ml-connector flags the record in the audit log and pauses until the account is created and the record is replayed.
A real-world example
A mid-sized professional services firm uses Microsoft Dynamics NAV for accounting and Brex for employee corporate cards and travel expenses. Before the integration, the accounting team collected expense reports from Brex each week, manually categorized each transaction by project code and cost center, and entered the totals into NAV's expense journals. Month-end close involved reconciling the cash account in NAV with Brex's card balance, which often took two days because of missing or miscoded transactions. After connecting NAV and Brex through ml-connector, each approved expense and transfer automatically posts to NAV with the correct project and cost center codes. The reconciliation step is eliminated because NAV's cash balance matches Brex in real time, and the finance team reclaims those two days for analysis.
What you can do
- Post Brex card transactions and approved expenses into Microsoft Dynamics NAV's general ledger, allocated to the correct cost centers and GL accounts.
- Sync Brex transfers as vendor payments or cash disbursement entries in NAV's journal.
- Authenticate both systems via OAuth 2.0 and manage token refresh automatically.
- Prevent duplicate posting with idempotency keys and maintain full audit trail on every transaction.
- Pull Brex events via webhooks and polling, with retries and error replay on failed NAV posts.
Questions
- How are Brex transactions mapped to Microsoft Dynamics NAV accounts?
- ml-connector requires a mapping table that associates each Brex category, merchant, or team to a specific NAV GL account and cost center. This mapping is configured per customer and validated before every post. If a NAV account does not exist, the record is logged in the audit trail and paused until the account is created and the record is replayed.
- Does the integration support Brex's 90-day API key expiry?
- Yes. If you use a static API key, ml-connector tracks its last activity and alerts you before the 90 days of inactivity elapse. You can rotate the key in the Brex dashboard at any time. For longer-term integrations, OAuth 2.0 with automatic token refresh is recommended instead of a static key.
- What happens if a NAV webhook subscription expires?
- Microsoft Dynamics NAV webhook subscriptions expire after 3 days and must be renewed. ml-connector checks the subscription status before each NAV webhook push and automatically renews expired subscriptions. If a subscription renewal fails, ml-connector switches to polling the NAV API until the subscription is restored, so no transactions are lost.
Related integrations
More Microsoft Dynamics NAV integrations
Other systems that connect to Brex
Connect Microsoft Dynamics NAV and Brex
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started