Skip to content

Accounting · Beta

Brex
API integration

Ship Accounting features without building the integration. Full Brex API access via Proxy, normalized data through Unified APIs, and 110+ MCP-ready tools for AI agents — all extensible to your exact use case.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Brex

Use Cases

Why integrate with Brex

Common scenarios for SaaS companies building Brex integrations for their customers.

01

Automate employee card provisioning from your HR platform

HR and onboarding SaaS companies can sync employee lifecycle events to Brex, automatically provisioning corporate cards for new hires and revoking access on termination — eliminating manual finance work.

02

Enrich financial dashboards with real-time Brex spend data

FinOps and analytics platforms can pull transaction and balance data from Brex to give CFOs a unified cash-flow view alongside other financial data sources, without requiring Brex admin credentials.

03

Sync user directories to keep Brex rosters accurate

Any SaaS product managing employee identity or org structure can use Truto's Unified User Directory API to read and sync user data with Brex, ensuring departments, roles, and access stay consistent across systems.

04

Close the loop on procurement approvals with virtual cards

Procurement and spend management platforms can trigger virtual card creation in Brex after a purchase is approved, tying each card to a specific vendor and budget to eliminate shadow spending.

05

Automate expense reconciliation from booking platforms

Travel and booking SaaS products can match transactions in Brex and attach receipts or itineraries programmatically, removing the need for employees to manually submit expense reports.

What You Can Build

Ship these features with Truto + Brex

Concrete product features your team can ship faster by leveraging Truto’s Brex integration instead of building from scratch.

01

Automated new-hire card issuance

Detect new employees via Truto's Unified User Directory API and push them to Brex to provision accounts and virtual cards on day one.

02

Real-time employee offboarding lockdown

Trigger instant card freezes in Brex when an employee's status changes to terminated in your connected user directory.

03

Cross-platform org chart sync

Keep departments, managers, and locations in Brex aligned with the source-of-truth HR system by syncing user directory data through Truto.

04

Unified employee roster dashboard

Surface a single view of Brex users alongside identities from other connected platforms using Truto's Unified User Directory API.

05

Budget-aware access provisioning

Combine user directory data with Brex's budget and spend limit capabilities to assign new team members to the right department budgets automatically.

SuperAI

Brex AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_brex_users

List Brex users with filters for status, email, name, department, and location. Returns: id, first_name, last_name, email, status, manager_id, department_id, legal_entity_id, remote_display_id, custom_fields, and 5 more. The legacy email and remote_display_id params do an exact single-user lookup and cannot be combined with the other filters.

get_single_brex_user_by_id

Get a single Brex user by id. Returns: id, first_name, last_name, email, status, manager_id, department_id, location_id, title_id, cost_center_id, legal_entity_id, metadata, remote_display_id, custom_fields, OAuth2. Required: id.

create_a_brex_user

Invite a new user as an employee in Brex. Returns the created user including id, first_name, last_name, email, and status. Required: first_name, last_name, email.

update_a_brex_user_by_id

Update a Brex user by id, leaving any parameters not provided unchanged. Returns: id, first_name, last_name, email, status, manager_id, department_id, location_id, title_id, cost_center_id, legal_entity_id, metadata, remote_display_id, custom_fields, OAuth2. Required: id.

list_all_brex_me

Get the Brex user associated with the OAuth2 access token. Returns: id, first_name, last_name, email, status, manager_id, department_id, location_id, title_id, cost_center_id, legal_entity_id, metadata, remote_display_id, custom_fields, OAuth2.

list_all_brex_company_info

Get the Brex company information. Returns: id, legal_name, mailing_address, accountType.

list_all_brex_accounts_cards

List all card-type accounts in Brex. Returns: id, status, current_balance, available_balance, account_limit, current_statement_period.

get_single_brex_accounts_cash_by_id

Get a single Brex cash account by id. Returns: id, name, status, current_balance, available_balance, account_number, routing_number, primary. Required: id.

list_all_brex_accounts_cashes

List all existing Brex cash accounts with their status. Returns: id, name, status, current_balance, available_balance, account_number, routing_number, primary.

get_single_brex_card_pan_by_id

Get a Brex card's number, CVV, and expiration date by id. Returns: id, number, cvv, expiration_date, holder_name. Required: id.

list_all_brex_card_primaries

List settled transactions for all Brex card accounts. Returns: id, description, amount, type, merchant, card_id, posted_at_date, expense_id. Regular users see only their own PURCHASE, REFUND, and CHARGEBACK transactions; sync with a 1+ day lookback window to catch delayed postings.

create_a_brex_card_secure_email

Email a Brex card's full number, CVV, and expiration date to a recipient via a secure link. Required: card_id, recipient_email, sender_name. Gated by Brex; returns an empty response on success.

create_a_brex_card_terminate

Terminate an existing Brex card; the card owner is notified of the termination. Returns the terminated card with id, status, last_four, card_type, and created_at. Required: card_id, reason.

create_a_brex_card

Create a new Brex card. Returns the created card object: id, limit_type, spend_controls, created_at, status. The spend_controls field is required when limit_type is CARD; mailing_address is required for physical cards (first 2 lines under 60 characters, max 10 active physical cards per user). Required: owner, card_name, card_type, limit_type.

get_single_brex_card_by_id

Get a single Brex card by id. Returns the card object: id, limit_type, spend_controls, created_at, status. Only cards with limit_type CARD carry spend_controls. Required: id.

list_all_brex_cards

List Brex cards, optionally filtered by user_id. Returns card objects: id, limit_type, spend_controls, created_at, status. Only cards with limit_type CARD carry spend_controls. Optional: user_id.

brex_cards_lock

Lock an existing, unlocked Brex card; the card owner will receive a notification. Returns the updated card object: id, limit_type, spend_controls, created_at, status. Required: card_id, reason.

brex_cards_unlock

Unlock an existing locked Brex card. Returns the updated card object: id, limit_type, spend_controls, created_at, status. Required: card_id.

update_a_brex_card_by_id

Update an existing vendor card in Brex by id. Returns: id, owner, status, last_four, card_name, card_type, limit_type, spend_controls, billing_address, mailing_address, expiration_date, has_been_transferred, metadata, budget_id, partner, created_at, OAuth2. Required: id.

list_all_brex_cash_primaries

Get the primary cash account in Brex; there is always exactly one primary account. Returns: id, name, status, current_balance, available_balance, account_number, routing_number, primary.

get_single_brex_cost_center_by_id

Get a single Brex cost center by id. Returns: id, name. Required: id.

list_all_brex_cost_centers

List all Brex cost centers. Returns: id, name.

create_a_brex_department

Create a new department in Brex. Returns: id, name, description. Required: name.

delete_a_brex_department_by_id

Delete a Brex department by id. Returns an empty response on success. Required: id. A department cannot be deleted while users are still assigned to it or while it is used as a filter on an active group.

get_single_brex_department_by_id

Get a Brex department by id. Returns: id, name, description. Required: id.

list_all_brex_departments

List all departments in Brex. Returns each department's id, name, and description.

update_a_brex_department_by_id

Update a Brex department by id; only fields present in the request body are changed. Returns: id, name, description. Required: id.

list_all_brex_expenses

List Brex expenses under the same account, filterable by user, expense type, status, payment status, budget, and date ranges. Admins and bookkeepers see all expenses; regular users only their own. Returns: id, memo, location_id, location, address, merchant, expense_type, purchased_at, status, payment_status, and 38 more. Max 100 per page.

get_single_brex_expense_by_id

Get a single Brex expense by id, optionally with expanded details for merchant, location, receipts, and budget. Returns: id, memo, location_id, location, address, department_id, department, cost_center_id, cost_center, updated_at, payment_posted_at, category, merchant_id, merchant, expense_type, purchased_at, status, and 31 more. Required: id.

create_a_brex_incoming_transfer

Create an incoming Brex transfer funded by an ACH debit from an eligible linked bank account. Returns: id, counterparty, payment_type, amount, process_date, status, and 11 more. Requires an Idempotency-Key header. Required: counterparty, receiving_account, amount, description. The money amount is negative for incoming transfers (credits).

get_single_brex_legal_entity_by_id

Get a Brex legal entity by its ID. Returns the legal entity including its id, displayName, billingAddress, createdAt, status, and isDefault. Required: id.

list_all_brex_legal_entities

List Brex legal entities for the account. Returns each legal entity with its id, displayName, billingAddress, createdAt, status, and isDefault.

list_all_brex_linked_accounts

List Brex linked accounts (bank connections eligible to make ACH transfers to a Brex business account). Returns: id, bank_details, brex_account_id, last_four, available_balance, current_balance.

create_a_brex_location

Create a new location in Brex. Returns: id, name, description. Required: name.

delete_a_brex_location_by_id

Delete a Brex location by id. Returns an empty 200 response on success. Required: id. A location cannot be deleted while users are still assigned to it or while it is used as a filter on an active group.

get_single_brex_location_by_id

Get a single Brex location by id. Returns: id, name, description. Required: id.

list_all_brex_locations

List all locations in Brex. Returns: id, name, description.

update_a_brex_location_by_id

Update a Brex location by id; only the fields present in the request body are changed. Returns: id, name, description. Required: id.

list_all_brex_primary_statements

List finalized statements for the Brex primary card account. Returns: id, start_balance, end_balance, period.

list_all_brex_statements

List all finalized statements for a Brex cash account. Returns: id, period, start_balance, end_balance. Required: cash_account_id.

create_a_brex_title

Create a new title in Brex. Returns the created title with id and name. Required: name.

delete_a_brex_title_by_id

Delete a title in Brex by id. Returns an empty 200 response on success. Required: id. A title cannot be deleted while users are still assigned to it or while it is used as a filter on an active group.

get_single_brex_title_by_id

Get a single Brex title by id. Returns the title record with its id and name. Required: id.

list_all_brex_titles

List all titles in Brex. Returns each title's id and name.

update_a_brex_title_by_id

Update a Brex title by id. Returns the updated title with id and name. Required: id, name. Only fields present in the request body are changed.

get_single_brex_transactions_cash_by_id

List transactions for a Brex cash account by id. Returns each transaction's id, description, amount, initiated_at_date, posted_at_date, and type. Required: id.

create_a_brex_transfer

Create a new Brex transfer. Returns the created transfer with id, payment_type, amount, status, and originating_account. Requires counterparty, amount, description, external_memo, and originating_account. Only ACH, domestic wire, cheque, and international wire rails are supported. Required: counterparty, amount, description, external_memo,…

get_single_brex_transfer_by_id

Get a Brex transfer by id. Returns the full transfer including id, payment_type, amount, status, process_date, and estimated_delivery_date. Required: id. Only ACH, domestic wire, cheque, and international wire rails are supported.

list_all_brex_transfers

List existing Brex transfers for an account. Returns transfers with id, payment_type, amount, status, and estimated_delivery_date. Only ACH, domestic wire, cheque, and international wire rails are supported.

create_a_brex_users_create

Create a new user in Brex as an employee without sending an invite, leaving the user INACTIVE. Returns: id, first_name, last_name, email, status, manager_id, department_id, location_id, and 6 more. Required: first_name, last_name, email. The user is assigned to legal_entity_id when provided, otherwise to the account's default legal entity.

create_a_brex_vendor

Create a new vendor in Brex. Returns the created vendor object including id, company_name, email, phone, and payment_accounts. Required: company_name.

delete_a_brex_vendor_by_id

Delete a Brex vendor by id. Returns an empty 204 response on success. Required: id.

get_single_brex_vendor_by_id

Get a single Brex vendor by id. Returns: id, company_name, email, phone, payment_accounts. Required: id.

list_all_brex_vendors

List all vendors for a Brex account, with optional matching by vendor name. Returns vendor objects including id, company_name, email, phone, and payment_accounts.

update_a_brex_vendor_by_id

Update an existing Brex vendor by id. Returns the updated vendor object including id, company_name, email, phone, and payment_accounts. Required: id.

get_single_brex_budget_program_by_id

Get a Brex budget program by id. Returns: id, name, description, budget_blueprints, existing_budget_ids, employee_filter, budget_program_status, creator_user_id, created_at, updated_at. Required: id.

list_all_brex_budget_programs

List Brex budget programs belonging to this account. Returns: id, name, description, budget_blueprints, existing_budget_ids, employee_filter, budget_program_status, creator_user_id, created_at, updated_at.

create_a_brex_accounting_integration

Create a new accounting integration in Brex. Returns: integration_id, vendor, vendor_account_id, status, created_at. Requires vendor and vendor_account_id. Only one active integration is allowed; a different vendor or vendor_account_id fails with 409. Required: vendor, vendor_account_id.

get_single_brex_accounting_record_by_id

Get a single Brex accounting record by id. Returns the full record including id, amount, type, review_status, source_type, erp_posting_date, line_items, user, and receipts. Set single_entry=true to return only core cash-flow line items. Required: id, record_id.

list_all_brex_accounting_records

List Brex accounting records with filters for polling — filter by ids, review_status, source_type, or updated_at. Returns: id, amount, original_amount, type, review_status, source_id, source_type, erp_posting_date, updated_at, receipts, user, line_items, and 6 more. review_status only applies to CARD and REIMBURSEMENT records; max 500 per page.

brex_budgets_archive

Archive a Brex budget (Spend Limit) by id so it can no longer be used for expenses and is removed from the Brex dashboard. Returns the archived Spend Limit record including its id and its full budget attributes. Required: budget_id.

create_a_brex_budget

Create a Spend Limit budget in Brex. Returns the created budget including budget_id, account_id, name, and 3 more fields. Required: name, description, parent_budget_id, period_type, limit, limit_type, spend_type, limit_visibility. Requires name, description, parent_budget_id, period_type, limit, limit_type, spend_type, and limit_visibility.

get_single_brex_budget_by_id

Get a Spend Limit budget by id in Brex. Returns the budget including budget_id, account_id, name, description, budget_status, limit, and period_type. Required: id.

list_all_brex_budgets

List Spend Limit budgets belonging to the Brex account. Returns each budget including budget_id, name, budget_status, limit, spend_type, and period_type.

update_a_brex_budget_by_id

Update a Spend Limit budget by id in Brex. Returns the updated budget including budget_id, name, budget_status, limit, limit_type, and spend_type. Required: id.

create_a_brex_budgets_archive

Archive a Brex budget by id, making any Spend Limits beneath it unusable for future expenses and removing it from the Brex UI. Returns the archived budget's id. Required: budget_id.

create_a_brex_budgets_v_2

Create a new budget in Brex. Returns: budget_id, account_id, name, description, parent_budget_id, owner_user_ids, period_recurrence_type, start_date, end_date, amount, spend_budget_status, limit_type. Required: name, description, parent_budget_id, period_recurrence_type, amount.

get_single_brex_budgets_v_2_by_id

Get a single Brex budget by id. Returns: budget_id, account_id, name, description, parent_budget_id, owner_user_ids, period_recurrence_type, start_date, end_date, amount, spend_budget_status, limit_type. Required: id.

list_all_brex_budgets_v_2

List Brex budgets. Returns each budget with budget_id, account_id, name, period_recurrence_type, amount, and spend_budget_status.

update_a_brex_budgets_v_2_by_id

Update an existing Brex budget by id. Returns: budget_id, account_id, name, description, parent_budget_id, owner_user_ids, period_recurrence_type, start_date, end_date, amount, spend_budget_status, limit_type. Required: id.

brex_spend_limits_archive

Archive a Spend Limit in Brex by id, making it unusable for future expenses and removing it from the UI. Returns the archived Spend Limit record with its id and SpendLimit attributes. Required: spend_limit_id.

create_a_brex_spend_limit

Create a Spend Limit in Brex. Returns the created limit: id, name, status, spend_type, current_period_balance. Required: name, period_recurrence_type, authorization_settings, expense_visibility, authorization_visibility, limit_increase_setting, spend_type, auto_transfer_cards_setting, auto_create_limit_cards_setting, expense_policy_id.

get_single_brex_spend_limit_by_id

Get a Spend Limit by id in Brex. Returns the full limit record: id, name, status, period_recurrence_type, spend_type, and current_period_balance. Required: id.

list_all_brex_spend_limits

List Spend Limits in Brex. Returns Spend Limit records with id, name, status, period_recurrence_type, spend_type, and current_period_balance.

update_a_brex_spend_limit_by_id

Update a Spend Limit by id in Brex. Returns the updated limit: id, name, status, spend_type, current_period_balance. Required: id.

create_a_brex_field

Create a custom field in Brex. Returns the created field with brex_id, name, group, is_disabled, and updated_at. Requires name and group. Required: name, group.

delete_a_brex_field_by_id

Delete a custom field in Brex by its Brex id. Returns an empty 204 response on success. Required: id.

get_single_brex_field_by_id

Get a single custom field by id in Brex. Returns: brex_id, name, remote_id, updated_at, is_disabled, group. Required: id.

list_all_brex_fields

List custom fields under the same Brex account. Returns: brex_id, name, remote_id, updated_at, is_disabled, group. Max 1000 per page.

update_a_brex_field_by_id

Update a custom field by id in Brex. Returns the updated field with brex_id, name, group, is_disabled, and updated_at. Required: id.

brex_field_values_bulk_delete

Bulk delete custom field values for a specific Brex field, up to 1000 values at once. Returns: items. Required: field_id, items.

brex_field_values_bulk_update

Update custom field values in bulk for a specific Brex field, up to 1000 values at once. Returns: items. Required: field_id, items.

create_a_brex_field_value

Create custom field values for a specific Brex field, up to 1000 values at once. Returns: items, OAuth2. Required: field_id, items.

get_single_brex_field_value_by_id

Get a single field value under a specific Brex field by id. Returns: brex_id, remote_id, value_id, value, field_id, updated_at, is_disabled. Required: id, field_id, brex_id.

list_all_brex_field_values

List custom field values under a specific Brex field, filterable by value or by brex, value, or remote identifiers. Returns: brex_id, remote_id, value_id, value, field_id, updated_at, is_disabled, items. Required: field_id. Max 1000 per page.

update_a_brex_expenses_card_by_id

Update a Brex card expense by id, accepting memo in the body. Returns the updated expense including id, memo, category, status, payment_status, and updated_at. Required: id.

create_a_brex_card_receipt_match

Create a new receipt match in Brex for a card expense. Returns: id, uri. Required: receipt_name. The returned uri is a pre-signed S3 URL (PUT only) that expires 30 minutes after creation; upload the receipt there and Brex will attempt to match it with existing expenses.

create_a_brex_receipt_upload

Create a new receipt upload for a Brex card expense. Returns: id, uri. Required: expense_id, receipt_name. The returned uri is a pre-signed S3 URL that expires 30 minutes after creation and only accepts PUT.

create_a_brex_referral

Create a referral in Brex. Returns the new referral with its id, personalized referral_signup_url, expires_at, status, and products. Required: referral_code, applicant. Optional fields prefill the application flow.

get_single_brex_referral_by_id

Get a single Brex referral by id. Returns: id, referral_signup_url, expires_at, customer_email, status, products. Required: id.

list_all_brex_referrals

List referrals created in Brex. Returns: id, referral_signup_url, expires_at, customer_email, status, products. Expired referrals are not included.

create_a_brex_referral_document_upload

Create a new document upload for a Brex referral. Returns: uri, id. Required: referral_id, type.

create_a_brex_referral_process_ein_document

Process a delayed IRS EIN Confirmation document (CP-575, CP-575 fax sheet, or 147C) in Brex after it has been uploaded via the referral document upload flow. Returns an empty 200 response on success. Required: referral_id, document_id.

create_a_brex_records_export_result

Report export success or failure results for accounting records in Brex. Returns: updated_accounting_record_ids. Required: results. Only records with READY_FOR_EXPORT review status can be reported; duplicate ids are rejected.

get_single_brex_trip_by_id

Get a Brex trip by id. Returns: id, created_at, updated_at, name, booker_user_id, status, traveler, version, billable_at, starts_at, ends_at, trip_reference, custom_fields. Required: id, trip_id.

list_all_brex_trips

List Brex trips according to the filters passed in the query string. Returns: id, created_at, updated_at, name, booker_user_id, status, traveler, version, billable_at, starts_at, ends_at, trip_reference, custom_fields.

get_single_brex_trip_booking_by_id

Get a single booking within a Brex trip by id. Returns: id, created_at, updated_at, trip_id, version, type, status, source, booking_data, booking_reference, trip_reference, policy, custom_fields. Required: id, trip_id, booking_id.

list_all_brex_trip_bookings

List the bookings within a Brex trip. Returns each booking's id, trip_id, type, status, source, and booking_data. Required: trip_id.

create_a_brex_webhook

Register a Brex webhook endpoint to start receiving selected webhook events. Returns: id, group_id, url, event_types, status. Required: url, event_types.

list_all_brex_webhooks

List the webhooks registered for your Brex account. Returns webhook subscriptions with: id, url, event_types, status, and group_id.

delete_a_brex_webhook_by_id

Unregister a Brex webhook subscription to stop receiving its webhook events. Returns an empty 204 response on success. Required: id.

get_single_brex_webhook_by_id

Get details of a single Brex webhook by id. Returns: id, group_id, url, event_types, status. Required: id.

update_a_brex_webhook_by_id

Update a Brex webhook's endpoint url, event types it receives, or temporarily deactivate it. Returns: id, group_id, url, event_types, status. Required: id, url, event_types, status.

create_a_brex_disconnect

Disconnect an active Brex accounting integration by id. Returns the disconnected integration with id, vendor, status, created_at, and vendor_account_id. Required: integration_id. Fails if the id does not exist or the integration is not currently active.

create_a_brex_reactivate

Reactivate a disconnected accounting integration in Brex. Returns the reactivated integration with id, vendor, status, created_at, and vendor_account_id. Required: integration_id. Fails if the integration does not exist or if an active integration already exists.

create_a_brex_group_add_member

Add members to a Brex webhook group. Returns a 200 Success with no documented response body. Required: group_id, id, members.

create_a_brex_group_remove_member

Remove members from a Brex webhook group. Returns an empty response on success. Required: group_id, id, members.

create_a_brex_webhooks_group

Create a Brex webhook group. Returns: id, name. Required: name.

delete_a_brex_webhooks_group_by_id

Delete a Brex webhook group and all of its members by id. Returns an empty 204 response on success. Required: id.

get_single_brex_webhooks_group_by_id

Get a Brex webhook group by id. Events belonging to a group member are sent only to the subscriptions associated with that group. Returns: id, name. Required: id.

list_all_brex_webhooks_groups

List Brex webhook groups. Events belonging to a group member are sent only to the subscriptions associated with that group. Returns: id, name. Max 1000 per page.

brex_webhooks_groups_list_members

List the members of a Brex webhook group. Returns: group_id, member_type, member_id. Required: group_id, id.

list_all_brex_webhooks_secrets

List the webhook signing secrets Brex uses to sign webhook requests, for validating that incoming webhooks are authentic. Returns: secret, status. Usually one key is returned; after key rotation two keys are returned, and a webhook is valid if any of them verifies its signature.

Why Truto

Why use Truto’s MCP server for Brex

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 1000+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Brex

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Users

The User object represents a User.

View Docs

How It Works

From zero to integrated

Start with Brex in a free sandbox, usually ready within one business day. No boilerplate, no maintenance burden.

01

Link your customer’s Brex account

Use Truto’s frontend SDK to connect your customer’s Brex account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Brex

Truto’s Proxy API is a 1-to-1 mapping of the Brex API. You call us, we call Brex, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Brex’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Brex on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What Unified APIs does Truto support for Brex today?

Truto supports Brex through the Unified User Directory API, which covers reading and syncing user (employee) data. Additional tools and Unified API coverage can be built on request based on your use case.

How does authentication work for Brex through Truto?

Brex uses OAuth 2.0 for API access. Truto manages the full auth flow — token exchange, refresh, and storage — so your end users can connect their Brex accounts without you handling credentials directly.

Can I access Brex transactions or expense data through Truto?

Brex's API supports transactions, expenses, budgets, and payments endpoints. These are not yet mapped to a Truto Unified API out of the box, but Truto can build custom tools and proxy access on request to cover these use cases.

Does Truto handle pagination and rate limits for the Brex API?

Yes. Truto abstracts away pagination logic and respects Brex's rate limits automatically, so you get consistent data fetching behavior without writing API-specific retry or cursor management code.

What user data can I read from Brex via the Unified User Directory API?

You can read standard user directory fields such as name, email, department, role, and employment status. Truto normalizes these into a unified schema so you can work with Brex user data the same way you work with any other connected directory.

Can I write data back to Brex or is it read-only?

Brex's API supports both read and write operations across many endpoints including user creation and card management. Write support through Truto depends on the specific Unified API and tools available — contact Truto to confirm write capabilities for your use case.

From the Blog

Brex integration guides

Deep dives, architecture guides, and practical tutorials for building Brex integrations.

Brex

Get Brex integrated into your app

Our team understands what it takes to make a Brex integration successful. A short, crisp 30 minute call with folks who understand the problem.