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 usUse Cases
Why integrate with Brex
Common scenarios for SaaS companies building Brex integrations for their customers.
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.
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.
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.
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.
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.
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.
Real-time employee offboarding lockdown
Trigger instant card freezes in Brex when an employee's status changes to terminated in your connected user directory.
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.
Unified employee roster dashboard
Surface a single view of Brex users alongside identities from other connected platforms using Truto's Unified User Directory API.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.