Brex

Learn how to use Brex with Composio

Overview

SLUG: BREX

Description

Brex provides corporate credit cards, spend management, and financial tools tailored for startups and tech businesses to optimize cash flow, accounting, and growth

Authentication Details

client_id
stringRequired
client_secret
stringRequired
full
stringDefaults to https://platform.brexapis.comRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to openid,offline_access
bearer_token
string
full
stringDefaults to https://platform.brexapis.comRequired
generic_api_key
stringRequired

Connecting to Brex

Create an auth config

Use the dashboard to create an auth config for the Brex toolkit. This allows you to connect multiple Brex accounts to Composio for agents to use.

1

Select App

Navigate to Brex.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Brex Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4brex_auth_config_id = "ac_YOUR_BREX_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Brex: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, brex_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4brex_auth_config_id = "ac_YOUR_BREX_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": {"generic_api_key": user_api_key}}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Brex for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, brex_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Brex toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["BREX"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create Budget

Description

Create a new budget for departments or projects.

Action Parameters

budget_amount
objectRequired
budget_type
stringDefaults to EXPENSE
description
string
display_name
stringRequired
member_user_ids
array
owner_user_ids
array
parent_budget_id
string
period_type
stringDefaults to MONTHLY

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Card

Description

Create a new card and assign it to a user.

Action Parameters

card_type
stringDefaults to VIRTUAL
display_name
stringRequired
limit_type
stringDefaults to CARD
owner_user_id
stringRequired
spend_controls
object

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Department

Description

Create a new department.

Action Parameters

description
string
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Expense

Description

Create a new expense.

Action Parameters

amount
objectRequired
memo
stringRequired
owner_user_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Location

Description

Create a new location.

Action Parameters

description
string
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Job Title

Description

Create a new job title.

Action Parameters

name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create User

Description

Create a new user in the brex account.

Action Parameters

department_id
string
email
stringRequired
first_name
stringRequired
last_name
stringRequired
manager_user_id
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Vendor Card

Description

Create a new vendor card.

Action Parameters

card_type
stringDefaults to VIRTUAL
display_name
stringRequired
owner_user_id
stringRequired
spend_controls
object
vendor_name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Account Details

Description

Get details about the current brex account.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Account Statements

Description

Get account statements.

Action Parameters

cursor
string
limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Budget Details

Description

Get detailed information about a specific budget.

Action Parameters

budget_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Budget Transactions

Description

Get transactions for a specific budget.

Action Parameters

budget_id
stringRequired
limit
integerDefaults to 100
posted_at_end
stringRequired
posted_at_start
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Card Details

Description

Get detailed information about a specific card.

Action Parameters

card_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Card Transactions

Description

Get card transactions for a date range.

Action Parameters

limit
integerDefaults to 100
posted_at_end
string
posted_at_start
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Company Cash Accounts

Description

Get company cash accounts.

Action Parameters

cursor
string
limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Expenses

Description

Get expenses for a date range.

Action Parameters

cursor
string
limit
integerDefaults to 100
posted_at_end
stringRequired
posted_at_start
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Expense Details

Description

Get details of a specific expense.

Action Parameters

expense_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Spend Limits

Description

Get spend limits configuration.

Action Parameters

limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Transactions

Description

Get transactions for a date range.

Action Parameters

cursor
string
limit
integerDefaults to 100
posted_at_end
stringRequired
posted_at_start
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Transactions by Amount Range

Description

Get transactions filtered by amount range.

Action Parameters

cursor
string
limit
integerDefaults to 100
max_amount
numberRequired
min_amount
numberRequired
posted_at_end
stringRequired
posted_at_start
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Transactions by Description

Description

Get transactions filtered by description text.

Action Parameters

cursor
string
description
stringRequired
limit
integerDefaults to 100
posted_at_end
stringRequired
posted_at_start
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Transaction by ID

Description

Get details of a specific transaction by id.

Action Parameters

transaction_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get User Profile

Description

Get user profile information for current or specified user.

Action Parameters

user_id
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Budgets

Description

List all budgets and show available amounts across all cards.

Action Parameters

limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Cards

Description

List all cards associated with the account.

Action Parameters

limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Departments

Description

List all departments in the organization.

Action Parameters

cursor
string
limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Locations

Description

List all locations in the organization.

Action Parameters

cursor
string
limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Job Titles

Description

List all job titles in the organization.

Action Parameters

cursor
string
limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Users

Description

List all users in the brex account.

Action Parameters

limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Vendors

Description

List all vendors.

Action Parameters

cursor
string
limit
integerDefaults to 100

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Transfer Card

Description

Transfer a card to a different user.

Action Parameters

card_id
stringRequired
new_owner_user_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Budget

Description

Update budget details.

Action Parameters

budget_amount
object
budget_id
stringRequired
description
string
display_name
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Card Limits

Description

Update spending limits and controls for a card.

Action Parameters

card_id
stringRequired
spend_controls
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Card Status

Description

Update the status of a card (activate/deactivate/terminate).

Action Parameters

card_id
stringRequired
status
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update User

Description

Update user details.

Action Parameters

department_id
string
first_name
string
last_name
string
location_id
string
manager_user_id
string
title_id
string
user_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired