The Brex connector lets your AI agent act in each user's Brex account. Each user signs in to Brex once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 68 tools.
- Tools
- 68
- What they doRead · write · destructive
- 45 · 23 · 045 read23 write0 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own Brex app
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Brex connection
In AgentKit > Connections, create a Brex connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register an OAuth app
Brex connections use your own OAuth app. Register one with Brex and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the Brex connection.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'brex'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Brex:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'brex_current_user_get',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "brex"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Brex:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="brex_current_user_get",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolbrex_budget_getGet one Brex budget by ID.Read-onlyGet Budget
Get one Brex budget by ID. Returns its name, description, parent budget, owners, period, start and end dates, amount, status and limit type. Use this for a known budget. Use brex_budget_list to find IDs. Requires a budget ID from brex_budget_list.
Inputs
budget_idstringrequired- ID of the budget. Get it from brex_budget_list. Example: budget_cl9rh1n8g001e0j84w6fb4fd1.
brex_budget_listList Brex budgets on the account.Read-onlyList Budgets
List Brex budgets on the account. Returns a page of budgets with budget ID, name, description, parent budget, owners, period, start and end dates, amount, status and limit type, plus next_cursor. Use this to find a budget ID or review budgets. Use brex_spend_limit_list for spend limits that control card authorizations, and brex_budget_get for one budget.
Inputs
cursorstring- Pagination cursor for the budget list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of budgets to return in one page. Leave empty to use the Brex default page size. Example: 50.
brex_budget_program_getGet one Brex budget program by ID.Read-onlyGet Budget Program
Get one Brex budget program by ID. Returns its name, description, budget blueprints, existing budget IDs, employee filter, status, creator and timestamps. Use this for a known budget program. Use brex_budget_program_list to find IDs. Requires a budget program ID from brex_budget_program_list.
Inputs
budget_program_idstringrequired- ID of the budget program. Get it from brex_budget_program_list. Example: bprog_cl9rh1n8g001e0j84w6fb4fd1.
brex_budget_program_listList Brex budget programs, which create budgets automatically for employees who match a filter.Read-onlyList Budget Programs
List Brex budget programs, which create budgets automatically for employees who match a filter. Returns a page of budget programs with ID, name, description, budget blueprints, existing budget IDs, employee filter, status and creator, plus next_cursor. Use this to see how per-employee budgets are provisioned. Use brex_budget_list for the budgets themselves.
Inputs
cursorstring- Pagination cursor for the budget program list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of budget programs to return in one page. Leave empty to use the Brex default page size. Example: 50.
brex_card_account_listList the Brex card accounts on the account.Read-onlyList Card Accounts
List the Brex card accounts on the account. Returns each card account with its ID, status, current balance, available balance, account limit and statement period. Use this to check card balances and limits. Use brex_cash_account_list for Brex business (cash) accounts.
Inputs
This tool takes no inputs.
brex_card_getGet one Brex card by ID.Read-onlyGet Card
Get one Brex card by ID. Returns the card's owner, status, last four digits, name, card type, limit type, spend controls (vendor cards only), billing and mailing addresses, expiration date, budget ID and metadata. Use this for the details of a known card. Use brex_card_list to find card IDs. Requires a card ID from brex_card_list.
Inputs
card_idstringrequired- ID of the card. Get it from brex_card_list (or the response of brex_card_create). Example: card_cl9rh1n8g001e0j84w6fb4fd1.
brex_card_listList Brex cards, optionally only the cards owned by one user.Read-onlyList Cards
List Brex cards, optionally only the cards owned by one user. Returns a page of cards with id, owner, status, last four digits, card name and type, limit type, spend controls (vendor cards only), addresses, expiration date and metadata, plus next_cursor for paging. Use this to find a card ID or review a user's cards. Use brex_card_get for one known card.
Inputs
cursorstring- Pagination cursor for the card list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of cards to return in one page. Leave empty to use the Brex default page size. Example: 50.
user_idstring- Only return cards owned by this Brex user. Leave empty to list cards across the account. Get user IDs from brex_user_list or brex_current_user_get. Example: cuuser_cky0xs54b004h01pidi0pcuz1.
brex_card_statement_listList finalized statements for the primary Brex card account.Read-onlyList Card Statements
List finalized statements for the primary Brex card account. Returns a page of statements with ID, start and end balances, and statement period, plus next_cursor. Use this for monthly card statement totals. Use brex_cash_statement_list for cash account statements.
Inputs
cursorstring- Pagination cursor for the statement list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of statements to return in one page. Leave empty to use the Brex default page size. Example: 50.
brex_card_transaction_listList settled card transactions across all Brex card accounts, optionally for specific users or from a posted date onward.Read-onlyList Card Transactions
List settled card transactions across all Brex card accounts, optionally for specific users or from a posted date onward. Returns a page of transactions with ID, card ID, description, amount, initiated and posted dates, type (such as PURCHASE, REFUND, CHARGEBACK) and merchant details, plus next_cursor. Use this for card spend history. Use brex_expense_list for expense records with memo, receipts and approval status, and brex_cash_transaction_list for cash account activity. Regular (non-admin) users only see their own purchases, refunds and chargebacks. Settled transactions can appear with a short delay, so overlap posted_at_start by at least a day when polling.
Inputs
cursorstring- Pagination cursor for the transaction list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
expandarray- Extra fields to expand on each transaction. Pass expense_id to include the related expense ID. Example: ["expense_id"].
limitinteger- Maximum number of transactions to return in one page. Leave empty to use the Brex default page size. Example: 50.
posted_at_startstring- Only return transactions posted on or after this RFC 3339 date-time. When polling, start a day or more before the end of your previous window because settled transactions can arrive late. Example: 2026-01-01T00:00:00Z.
user_idsarray- Only return transactions made by these users. Get IDs from brex_user_list or brex_current_user_get. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
brex_cash_account_getGet one Brex business (cash) account by ID.Read-onlyGet Cash Account
Get one Brex business (cash) account by ID. Returns the account's name, status, current and available balances, account and routing numbers, and whether it is primary. Use this for a known cash account. Use brex_cash_account_list to find IDs. Requires a cash account ID from brex_cash_account_list.
Inputs
account_idstringrequired- ID of the Brex business (cash) account. Get it from brex_cash_account_list. Example: dpacc_cl9rh1n8g001e0j84w6fb4fd1.
brex_cash_account_listList the Brex business (cash) accounts on the account.Read-onlyList Cash Accounts
List the Brex business (cash) accounts on the account. Returns a page of cash accounts with ID, name, status, current and available balances, account and routing numbers, and whether each is the primary account. Use this to find a cash account ID or check balances. Use brex_primary_cash_account_get for just the primary account.
Inputs
This tool takes no inputs.
brex_cash_statement_listList finalized statements for one Brex business (cash) account.Read-onlyList Cash Statements
List finalized statements for one Brex business (cash) account. Returns a page of statements with ID, start and end balances, and statement period, plus next_cursor. Use this for cash account statement totals. Use brex_card_statement_list for card statements. Requires a cash account ID from brex_cash_account_list.
Inputs
account_idstringrequired- ID of the Brex business (cash) account. Get it from brex_cash_account_list. Example: dpacc_cl9rh1n8g001e0j84w6fb4fd1.
cursorstring- Pagination cursor for the statement list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of statements to return in one page. Leave empty to use the Brex default page size. Example: 50.
brex_cash_transaction_listList transactions for one Brex business (cash) account, optionally from a posted date onward.Read-onlyList Cash Transactions
List transactions for one Brex business (cash) account, optionally from a posted date onward. Returns a page of transactions with ID, description, amount, initiated and posted dates, type and transfer ID, plus next_cursor. Use this for cash account activity. Use brex_card_transaction_list for card spend. Requires a cash account ID from brex_cash_account_list or brex_primary_cash_account_get.
Inputs
account_idstringrequired- ID of the Brex business (cash) account. Get it from brex_cash_account_list. Example: dpacc_cl9rh1n8g001e0j84w6fb4fd1.
cursorstring- Pagination cursor for the transaction list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of transactions to return in one page. Leave empty to use the Brex default page size. Example: 50.
posted_at_startstring- Only return transactions posted on or after this RFC 3339 date-time. When polling, overlap the previous window by at least a day because transactions can arrive late. Example: 2026-01-01T00:00:00Z.
brex_company_getGet the Brex company (account) this connection belongs to.Read-onlyGet Company
Get the Brex company (account) this connection belongs to. Returns the company ID, legal name, mailing address and account type. Use this to confirm which Brex company is connected. Use brex_legal_entity_list for the company's legal entities.
Inputs
This tool takes no inputs.
brex_cost_center_getGet one Brex cost center by ID.Read-onlyGet Cost Center
Get one Brex cost center by ID. Returns its ID and name. Use this to resolve a cost center ID. Use brex_cost_center_list to search. Requires a cost center ID from brex_cost_center_list or a user record.
Inputs
cost_center_idstringrequired- ID of the cost center. Get it from brex_cost_center_list. Example: cc_cl9rh1n8g001e0j84w6fb4fd1.
brex_cost_center_listList cost centers on the Brex account, optionally matching a name.Read-onlyList Cost Centers
List cost centers on the Brex account, optionally matching a name. Returns a page of cost centers with ID and name, plus next_cursor. Use this to find a cost center ID for filtering users. Use brex_cost_center_get for one cost center.
Inputs
cursorstring- Pagination cursor for the cost center list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of cost centers to return in one page. Leave empty to use the Brex default page size. Example: 50.
namestring- Only return cost centers whose name matches this value. Leave empty to list all cost centers. Example: R&D.
brex_current_user_getGet the Brex user who authorized this connection.Read-onlyGet Current User
Get the Brex user who authorized this connection. Returns that user's ID, name, email, status, manager, department, location, title, cost center and legal entity IDs and optional custom fields. Use this to learn who is connected or to get their user ID. Use brex_user_get for any other user.
Inputs
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
brex_custom_field_getGet one Brex custom field by its Brex ID.Read-onlyGet Custom Field
Get one Brex custom field by its Brex ID. Returns its name, remote ID, group, disabled flag and last update time. Use this for a known field. Use brex_custom_field_list to find field IDs. Requires a field ID from brex_custom_field_list.
Inputs
field_idstringrequired- ID of the custom field. Get it from brex_custom_field_list. Example: extended_field_foobar.
brex_custom_field_listList custom fields defined on the Brex account, optionally only specific field IDs.Read-onlyList Custom Fields
List custom fields defined on the Brex account, optionally only specific field IDs. Returns a page of fields with Brex ID, name, remote ID, group, disabled flag and last update time, plus next_cursor. Use this to find a custom field's Brex ID. Use brex_custom_field_value_list for the values (options) of a field.
Inputs
cursorstring- Pagination cursor for the field list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
field_idsarray- Only return the fields with these Brex IDs. Example: ["extended_field_foobar"].
limitinteger- Maximum number of fields to return in one page, from 1 to 1000. Leave empty to use the Brex default page size. Example: 50.
brex_custom_field_value_getGet one value of a Brex custom field by its Brex ID.Read-onlyGet Custom Field Value
Get one value of a Brex custom field by its Brex ID. Returns the value's Brex ID, value ID, remote ID, display value, field ID, disabled flag and last update time. Use this for a known value. Use brex_custom_field_value_list to search values. Requires a field ID from brex_custom_field_list and a value Brex ID from brex_custom_field_value_list.
Inputs
field_idstringrequired- ID of the custom field. Get it from brex_custom_field_list. Example: extended_field_foobar.
value_brex_idstringrequired- ID of the custom field value. Get it from brex_custom_field_value_list. Example: efo_foobar.
brex_custom_field_value_listList the values (options) of one Brex custom field, optionally filtered by Brex ID, value ID, remote ID or value text.Read-onlyList Custom Field Values
List the values (options) of one Brex custom field, optionally filtered by Brex ID, value ID, remote ID or value text. Returns a page of field values with Brex ID, value ID, remote ID, display value, disabled flag and last update time, plus next_cursor. Use this to find a value's Brex ID. Use brex_custom_field_list to find the field first. Requires a field ID from brex_custom_field_list.
Inputs
field_idstringrequired- ID of the custom field. Get it from brex_custom_field_list. Example: extended_field_foobar.
brex_idsarray- Only return values with these Brex IDs. Example: ["efo_foobar"].
cursorstring- Pagination cursor for the value list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of field values to return in one page, from 1 to 1000. Leave empty to use the Brex default page size. Example: 50.
remote_idsarray- Only return values with these external-system IDs. Example: ["foo_bar"].
valuestring- Only return values whose display value matches this text. Example: Marketing.
value_idsarray- Only return values with these value IDs (codes). Example: ["FooBar"].
brex_department_getGet one Brex department by ID.Read-onlyGet Department
Get one Brex department by ID. Returns its ID, name and description. Use this to resolve a department ID, for example from a user record. Use brex_department_list to search. Requires a department ID from brex_department_list.
Inputs
department_idstringrequired- ID of the department. Get it from brex_department_list. Example: dept_cl9rh1n8g001e0j84w6fb4fd1.
brex_department_listList departments on the Brex account, optionally matching a name.Read-onlyList Departments
List departments on the Brex account, optionally matching a name. Returns a page of departments with ID, name and description, plus next_cursor. Use this to find a department ID. Use brex_department_get for one department.
Inputs
cursorstring- Pagination cursor for the department list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of departments to return in one page. Leave empty to use the Brex default page size. Example: 50.
namestring- Only return departments whose name matches this value. Leave empty to list all departments. Example: Engineering.
brex_expense_getGet one Brex expense by ID, optionally with related objects expanded.Read-onlyGet Expense
Get one Brex expense by ID, optionally with related objects expanded. Returns the expense's memo, category, merchant, amounts, purchase date, status, payment status, receipts, budget and department/location/cost center details, and optional custom fields. Use this for a known expense. Use brex_expense_list to search and brex_expense_update to change the memo. Requires an expense ID from brex_expense_list.
Inputs
expense_idstringrequired- ID of the expense. Get it from brex_expense_list. Example: exp_xyz789.
expandarray- Related objects to include in full on each expense: location, department, cost_center, merchant, receipts.download_uris, user, budget, payment, spending_entity, policy. Example: ["merchant", "user"].
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
brex_expense_listList Brex expenses, filtered by user, budget, type, status, payment or compliance status, or purchase, update and payment dates.Read-onlyList Expenses
List Brex expenses, filtered by user, budget, type, status, payment or compliance status, or purchase, update and payment dates. Returns a page of expenses with ID, memo, category, merchant, amounts, purchase date, status, payment status, budget and department/location/cost center IDs, optional expanded objects and custom fields, plus next_cursor. Use this to review or reconcile spend, or to find expenses missing receipts (compliance_status DUE or OVERDUE). Use brex_expense_get for one expense and brex_card_transaction_list for raw settled card transactions. Admins and bookkeepers see every expense; regular users see only their own.
Inputs
budget_idsarray- Only return expenses charged to these budgets or spend limits. Get IDs from brex_budget_list or brex_spend_limit_list. Example: ["budget_cl9rh1n8g001e0j84w6fb4fd1"].
compliance_statusarray- Filter by documentation compliance status: DUE, OVERDUE, COMPLETED. Use DUE and OVERDUE to find expenses missing receipts, memos, attendees or coding. Example: ["DUE", "OVERDUE"].
cursorstring- Pagination cursor for the expense list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
derived_compliance_statusarray- Filter by combined documentation and review compliance: COMPLETED, DOCUMENTATION_DUE, REVIEW_DUE. Use DOCUMENTATION_DUE for expenses still missing submitter documentation. Example: ["DOCUMENTATION_DUE"].
expandarray- Related objects to include in full on each expense: location, department, cost_center, merchant, receipts.download_uris, user, budget, payment, spending_entity, policy. Example: ["merchant", "user"].
expense_typesarray- Only return these expense types: CARD, BILLPAY, REIMBURSEMENT, CLAWBACK, UNSET. Example: ["CARD"].
limitinteger- Maximum number of expenses to return in one page, from 1 to 100. Leave empty to use the Brex default page size. Example: 50.
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
parent_expense_idsarray- Only return itemized expenses that belong to these parent expenses. Example: ["exp_xyz789"].
payment_posted_at_endstring- Only return expenses whose payment_posted_at is on or before this RFC 3339 date-time. Example: 2026-01-31T23:59:59Z.
payment_posted_at_startstring- Only return expenses whose payment_posted_at is on or after this RFC 3339 date-time. Example: 2026-01-01T00:00:00Z.
payment_statusarray- Only return expenses with these payment statuses: NOT_STARTED, PROCESSING, CANCELED, DECLINED, CLEARED, REFUNDING, REFUNDED, CASH_ADVANCE, CREDITED, AWAITING_PAYMENT, SCHEDULED. Example: ["CLEARED"].
purchased_at_endstring- Only return expenses whose purchased_at is on or before this RFC 3339 date-time. Example: 2026-01-31T23:59:59Z.
purchased_at_startstring- Only return expenses whose purchased_at is on or after this RFC 3339 date-time. Example: 2026-01-01T00:00:00Z.
spending_entity_idsarray- Only return expenses attributed to these spending entities (legal entities). Get IDs from brex_legal_entity_list. Example: ["le_cl9rh1n8g001e0j84w6fb4fd1"].
statusarray- Only return expenses in these statuses: DRAFT, SUBMITTED, APPROVED, OUT_OF_POLICY, VOID, CANCELED, SPLIT, SETTLED. Example: ["SUBMITTED", "OUT_OF_POLICY"].
updated_at_endstring- Only return expenses whose updated_at is on or before this RFC 3339 date-time. Example: 2026-01-31T23:59:59Z.
updated_at_startstring- Only return expenses whose updated_at is on or after this RFC 3339 date-time. Example: 2026-01-01T00:00:00Z.
user_idsarray- Only return expenses belonging to these users. Get IDs from brex_user_list or brex_current_user_get. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
brex_legal_entity_getGet one Brex legal entity by ID.Read-onlyGet Legal Entity
Get one Brex legal entity by ID. Returns its display name, billing address, creation date, status and whether it is the default entity. Use this to resolve a legal entity ID. Use brex_legal_entity_list to find IDs. Requires a legal entity ID from brex_legal_entity_list.
Inputs
legal_entity_idstringrequired- ID of the legal entity. Get it from brex_legal_entity_list. Example: le_cl9rh1n8g001e0j84w6fb4fd1.
brex_legal_entity_listList the legal entities on the Brex account.Read-onlyList Legal Entities
List the legal entities on the Brex account. Returns a page of legal entities with ID, display name, billing address, creation date, status and whether it is the default, plus next_cursor. Use this to find a legal entity ID for filtering users or expenses. Use brex_legal_entity_get for one entity.
Inputs
cursorstring- Pagination cursor for the legal entity list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of legal entities to return in one page. Leave empty to use the Brex default page size. Example: 50.
brex_linked_account_listList external bank accounts linked to Brex that can fund a Brex business account by ACH.Read-onlyList Linked Accounts
List external bank accounts linked to Brex that can fund a Brex business account by ACH. Returns a page of bank connections with ID, bank details, last four digits, current and available balances, and the Brex account it is linked to, plus next_cursor. Use this to find the linked account ID needed by brex_incoming_transfer_create.
Inputs
cursorstring- Pagination cursor for the linked account list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of linked accounts to return in one page. Leave empty to use the Brex default page size. Example: 50.
brex_location_getGet one Brex location by ID.Read-onlyGet Location
Get one Brex location by ID. Returns its ID, name and description. Use this to resolve a location ID, for example from a user record. Use brex_location_list to search. Requires a location ID from brex_location_list.
Inputs
location_idstringrequired- ID of the location. Get it from brex_location_list. Example: loc_cl9rh1n8g001e0j84w6fb4fd1.
brex_location_listList locations on the Brex account, optionally matching a name.Read-onlyList Locations
List locations on the Brex account, optionally matching a name. Returns a page of locations with ID, name and description, plus next_cursor. Use this to find a location ID. Use brex_location_get for one location.
Inputs
cursorstring- Pagination cursor for the location list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of locations to return in one page. Leave empty to use the Brex default page size. Example: 50.
namestring- Only return locations whose name matches this value. Leave empty to list all locations. Example: San Francisco HQ.
brex_primary_cash_account_getGet the primary Brex business (cash) account.Read-onlyGet Primary Cash Account
Get the primary Brex business (cash) account. Every Brex account has exactly one. Returns its ID, name, status, current and available balances, and account and routing numbers. Use this when you only need the main cash account. Use brex_cash_account_list for all cash accounts.
Inputs
This tool takes no inputs.
brex_spend_limit_getGet one Brex spend limit by ID.Read-onlyGet Spend Limit
Get one Brex spend limit by ID. Returns its name, parent budget, status, period, dates, authorization settings, visibility, merchant category controls, transaction limit, card settings and policy IDs. Use this for a known spend limit. Use brex_spend_limit_list to find IDs. Requires a spend limit ID from brex_spend_limit_list.
Inputs
spend_limit_idstringrequired- ID of the spend limit. Get it from brex_spend_limit_list. Example: sl_cl9rh1n8g001e0j84w6fb4fd1.
brex_spend_limit_listList Brex spend limits, optionally only those a given user is a member of.Read-onlyList Spend Limits
List Brex spend limits, optionally only those a given user is a member of. Returns a page of spend limits with ID, name, parent budget, status, period, dates, authorization settings, visibility, merchant category controls, transaction limit and card settings, plus next_cursor. Use this to find a spend limit ID or see which limits a user can spend from. Use brex_budget_list for tracking budgets.
Inputs
cursorstring- Pagination cursor for the spend limit list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of spend limits to return in one page. Leave empty to use the Brex default page size. Example: 50.
member_user_idsarray- Only return spend limits these users are members of. Get IDs from brex_user_list or brex_current_user_get. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
brex_title_getGet one Brex title by ID.Read-onlyGet Title
Get one Brex title by ID. Returns its ID and name. Use this to resolve a title ID, for example from a user record. Use brex_title_list to search. Requires a title ID from brex_title_list.
Inputs
title_idstringrequired- ID of the title. Get it from brex_title_list. Example: title_cl9rh1n8g001e0j84w6fb4fd1.
brex_title_listList titles on the Brex account, optionally matching a name.Read-onlyList Titles
List titles on the Brex account, optionally matching a name. Returns a page of titles with ID and name, plus next_cursor. Use this to find a title ID. Use brex_title_get for one title.
Inputs
cursorstring- Pagination cursor for the title list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of titles to return in one page. Leave empty to use the Brex default page size. Example: 50.
namestring- Only return titles whose name matches this value. Leave empty to list all titles. Example: Senior Engineer.
brex_transfer_getGet one Brex transfer by ID.Read-onlyGet Transfer
Get one Brex transfer by ID. Returns its counterparty, description, payment type, amount, process date, originating account, status, cancellation reason, estimated delivery date, external memo and wire references. Use this to check a transfer's status. Use brex_transfer_list to find IDs. Requires a transfer ID from brex_transfer_list or brex_transfer_create.
Inputs
transfer_idstringrequired- ID of the transfer. Get it from brex_transfer_list (or the response of brex_transfer_create). Example: tx_cl9rh1n8g001e0j84w6fb4fd1.
brex_transfer_listList outgoing and incoming Brex transfers on ACH, domestic wire, cheque and international wire rails.Read-onlyList Transfers
List outgoing and incoming Brex transfers on ACH, domestic wire, cheque and international wire rails. Returns a page of transfers with ID, counterparty, description, payment type, amount, process date, originating account, status, cancellation reason, estimated delivery date and creator, plus next_cursor. Use this to review payment history or find a transfer ID. Use brex_transfer_get for one transfer.
Inputs
cursorstring- Pagination cursor for the transfer list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of transfers to return in one page. Leave empty to use the Brex default page size. Example: 50.
brex_trip_booking_getGet one booking within a Brex Travel trip.Read-onlyGet Trip Booking
Get one booking within a Brex Travel trip. Returns the booking's type, status, source, booking details, references, policy and optional custom fields. Use this for a known booking. Use brex_trip_booking_list to find booking IDs. Requires a trip ID from brex_trip_list and a booking ID from brex_trip_booking_list.
Inputs
booking_idstringrequired- ID of the booking. Get it from brex_trip_booking_list. Example: booking_cl9t5dnu800040m3071dandeq.
trip_idstringrequired- ID of the trip. Get it from brex_trip_list. Example: trip_cl9rh1n8g001e0j84w6fb4fd1.
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
brex_trip_booking_listList the bookings (AIR, RAIL, LODGING or CAR_RENTAL) within one Brex Travel trip.Read-onlyList Trip Bookings
List the bookings (AIR, RAIL, LODGING or CAR_RENTAL) within one Brex Travel trip. Returns a page of bookings with ID, type, status, source, booking details, references, policy and optional custom fields, plus next_cursor. Use this to see what was booked on a trip. Use brex_trip_booking_get for one booking. Requires a trip ID from brex_trip_list.
Inputs
trip_idstringrequired- ID of the trip. Get it from brex_trip_list. Example: trip_cl9rh1n8g001e0j84w6fb4fd1.
cursorstring- Pagination cursor for the booking list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of bookings to return in one page. Leave empty to use the Brex default page size. Example: 50.
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
brex_trip_getGet one Brex Travel trip by ID.Read-onlyGet Trip
Get one Brex Travel trip by ID. Returns its name, booker, status, traveler, start and end times, billable date, trip reference and optional custom fields. Use this for a known trip. Use brex_trip_booking_list for the trip's bookings. Requires a trip ID from brex_trip_list.
Inputs
trip_idstringrequired- ID of the trip. Get it from brex_trip_list. Example: trip_cl9rh1n8g001e0j84w6fb4fd1.
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
brex_trip_listList Brex Travel trips, optionally only those updated after a given time.Read-onlyList Trips
List Brex Travel trips, optionally only those updated after a given time. Returns a page of trips with ID, name, booker, status, traveler, start and end times, billable date, trip reference and optional custom fields, plus next_cursor. Use this to find trips or sync travel. Use brex_trip_get for one trip and brex_trip_booking_list for its air, rail, lodging and car rental bookings.
Inputs
cursorstring- Pagination cursor for the trip list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
last_updated_afterstring- Only return trips updated after this RFC 3339 date-time. Example: 2026-01-01T00:00:00Z.
limitinteger- Maximum number of trips to return in one page. Leave empty to use the Brex default page size. Example: 50.
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
brex_user_getGet one Brex user by ID.Read-onlyGet User
Get one Brex user by ID. Returns the user's name, email, status, manager, department, location, title, cost center and legal entity IDs, metadata, remote display ID and optional custom fields. Use this for a known user. Use brex_user_list to search and brex_current_user_get for the connected user. Requires a user ID from brex_user_list.
Inputs
user_idstringrequired- ID of the user. Get it from brex_user_list or brex_current_user_get. Example: cuuser_cky0xs54b004h01pidi0pcuz1.
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
brex_user_listList users in the Brex account, optionally filtered by name, email, status, manager, department, location, title, cost center, legal entity or custom field.Read-onlyList Users
List users in the Brex account, optionally filtered by name, email, status, manager, department, location, title, cost center, legal entity or custom field. Returns a page of users with id, first and last name, email, status, manager, department, location, title, cost center and legal entity IDs, metadata and optional custom fields, plus next_cursor. Use this to find a user ID. Use brex_user_get for one known user and brex_current_user_get for the connected user. Values within one filter are OR-ed and separate filters are AND-ed. The single email or remote_display_id lookup returns at most one user and cannot be combined with the other filters.
Inputs
cost_center_idsarray- Only return users in one of these cost centers. Get IDs from brex_cost_center_list. Example: ["cc_cl9rh1n8g001e0j84w6fb4fd1"].
cursorstring- Pagination cursor for the user list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
custom_fieldsarray- Filter by custom field values, each given as key:option_id. Values for the same key are OR-ed; different keys are AND-ed. Example: ["team:efo_foobar"].
department_idsarray- Only return users in one of these departments. Get IDs from brex_department_list. Example: ["dept_cl9rh1n8g001e0j84w6fb4fd1"].
emailstring- Exact lookup of a single user by email address. Returns at most one user and cannot be combined with the other filters; use emails for multi-value filtering. Example: jane@acme.com.
emailsarray- Only return users with one of these email addresses. Example: ["jane@acme.com", "sam@acme.com"].
legal_entity_idsarray- Only return users in one of these legal entities. Get IDs from brex_legal_entity_list. Example: ["le_cl9rh1n8g001e0j84w6fb4fd1"].
limitinteger- Maximum number of users to return in one page. Leave empty to use the Brex default page size. Example: 50.
load_custom_fieldsboolean- Set to true to include custom field values on each returned record. Leave empty or false to skip them for a smaller response. Example: true.
location_idsarray- Only return users in one of these locations. Get IDs from brex_location_list. Example: ["loc_cl9rh1n8g001e0j84w6fb4fd1"].
manager_idsarray- Only return users whose manager is one of these user IDs. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
namestring- Fuzzy, case-insensitive match against the user's first name, last name and email. Example: jane.
remote_display_idstring- Exact lookup of a single user by remote display ID (the employee ID from your HRIS). Returns at most one user and cannot be combined with the other filters. Example: EMP-1042.
statusarray- Only return users in one of these statuses: INVITED, ACTIVE, DISABLED, PENDING_ACTIVATION, INACTIVE, ARCHIVED. By default deleted and archived users are excluded. Example: ["ACTIVE", "INVITED"].
title_idsarray- Only return users with one of these titles. Get IDs from brex_title_list. Example: ["title_cl9rh1n8g001e0j84w6fb4fd1"].
brex_vendor_getGet one Brex vendor by ID.Read-onlyGet Vendor
Get one Brex vendor by ID. Returns its company name, email, phone and payment accounts, including each payment instrument ID and type. Use this to get a payment instrument ID for brex_transfer_create. Use brex_vendor_list to find vendor IDs. Requires a vendor ID from brex_vendor_list.
Inputs
vendor_idstringrequired- ID of the vendor. Get it from brex_vendor_list. Example: vendor_cl9rh1n8g001e0j84w6fb4fd1.
brex_vendor_listList Brex vendors (payees), optionally matching a vendor name.Read-onlyList Vendors
List Brex vendors (payees), optionally matching a vendor name. Returns a page of vendors with ID, company name, email, phone and payment accounts (payment instrument IDs and types), plus next_cursor. Use this to find a vendor or its payment instrument ID before paying it with brex_transfer_create. Use brex_vendor_get for one vendor.
Inputs
cursorstring- Pagination cursor for the vendor list. Pass the next_cursor value from the previous response to fetch the next page; omit it to start from the first page. A null next_cursor in a response means there are no more pages. Example: dXNlcl9jdXJzb3JfMTIz.
limitinteger- Maximum number of vendors to return in one page. Leave empty to use the Brex default page size. Example: 50.
namestring- Only return vendors whose name matches this value. Leave empty to list all vendors. Example: Acme Supplies.
brex_budget_createCreate a Brex budget that tracks spend against a target amount under a parent budget.WriteCreate Budget
Create a Brex budget that tracks spend against a target amount under a parent budget. Returns the new budget with its budget ID, name, parent, owners, period, amount, dates and status. Use this to set up a tracking budget. Use brex_spend_limit_create for a limit that controls card authorizations. Requires a parent budget ID from brex_budget_list.
Inputs
amountintegerrequired- Target amount the budget tracks, as an integer in the smallest unit of the currency (cents for USD). For example 150000 means $1,500.00. Example: 150000.
descriptionstringrequired- What the budget is used for. Example: Cloud and tooling spend for the engineering team.
idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
namestringrequired- Name of the budget. Example: Engineering Q3.
parent_budget_idstringrequired- ID of the parent budget this budget sits under. Get it from brex_budget_list. Example: budget_cl9rh1n8g001e0j84w6fb4fd1.
period_recurrence_typestringrequired- How often the budget period repeats: WEEKLY, MONTHLY, QUARTERLY, YEARLY, or ONE_TIME. Example: QUARTERLY.one of
WEEKLYMONTHLYQUARTERLYYEARLYONE_TIME currencystring- ISO 4217 currency code for target amount the budget tracks. Brex defaults to USD when omitted. Example: USD.
end_datestring- Date (YYYY-MM-DD) the budget stops counting. Example: 2026-09-30.
limit_typestring- Whether the budget amount blocks spend. Only SOFT (track without blocking) is accepted here; HARD is rejected, so use brex_spend_limit_create for hard limits. Example: SOFT.one of
SOFT owner_user_idsarray- User IDs of the budget owners. Get IDs from brex_user_list. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
start_datestring- Date (YYYY-MM-DD) the budget starts counting. Example: 2026-07-01.
brex_budget_updateUpdate an existing Brex budget's name, description, parent, owners, period, amount or dates.WriteUpdate Budget
Update an existing Brex budget's name, description, parent, owners, period, amount or dates. Only the fields you provide change. Returns the updated budget. Use this to change a budget. Use brex_budget_get to read it first. Requires a budget ID from brex_budget_list.
- Idempotent
Inputs
budget_idstringrequired- ID of the budget. Get it from brex_budget_list. Example: budget_cl9rh1n8g001e0j84w6fb4fd1.
idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
amountinteger- New target amount the budget tracks, as an integer in the smallest unit of the currency (cents for USD). For example 150000 means $1,500.00. Leave empty to keep the current amount. Example: 150000.
currencystring- ISO 4217 currency code for the amount. Only used together with amount; Brex defaults to USD. Example: USD.
descriptionstring- What the budget is used for. Leave empty to keep the current value. Example: Cloud and tooling spend for the engineering team.
end_datestring- Date (YYYY-MM-DD) the budget stops counting. Leave empty to keep the current value. Example: 2026-09-30.
limit_typestring- Whether the budget amount blocks spend. Only SOFT (track without blocking) is accepted here; HARD is rejected, so use brex_spend_limit_create for hard limits. Leave empty to keep the current value. Example: SOFT.one of
SOFT namestring- Name of the budget. Leave empty to keep the current value. Example: Engineering Q3.
owner_user_idsarray- User IDs of the budget owners. Get IDs from brex_user_list. Leave empty to keep the current value. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
parent_budget_idstring- ID of the parent budget this budget sits under. Get it from brex_budget_list. Leave empty to keep the current value. Example: budget_cl9rh1n8g001e0j84w6fb4fd1.
period_recurrence_typestring- How often the budget period repeats: WEEKLY, MONTHLY, QUARTERLY, YEARLY, or ONE_TIME. Leave empty to keep the current value. Example: QUARTERLY.one of
WEEKLYMONTHLYQUARTERLYYEARLYONE_TIME start_datestring- Date (YYYY-MM-DD) the budget starts counting. Leave empty to keep the current value. Example: 2026-07-01.
brex_card_createCreate a new Brex card for a user, either a virtual or physical corporate card, or a virtual vendor card with its own spend limit.WriteCreate Card
Create a new Brex card for a user, either a virtual or physical corporate card, or a virtual vendor card with its own spend limit. Returns the new card's id, status, last four digits, owner, card type, limit type and spend controls. Use this to issue a card. Use brex_card_update to change an existing vendor card's limits. Requires the owner's user ID from brex_user_list. A physical card also needs a mailing address.
Inputs
card_namestringrequired- Display name for the card, at least 1 character. Example: AWS subscription.
card_typestringrequired- VIRTUAL or PHYSICAL. Vendor cards (limit_type CARD) must be VIRTUAL. A physical card needs the mailing address fields, and each user can have at most 10 active physical cards. Example: VIRTUAL.one of
VIRTUALPHYSICAL idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
limit_typestringrequired- CARD for a vendor card with its own spend limit (spend_limit_amount and spend_duration are then required), or USER for a corporate card that draws on the owner's user limit (leave the spend control fields empty). Example: CARD.one of
CARDUSER owner_user_idstringrequired- ID of the Brex user who will own the card. Get it from brex_user_list or brex_current_user_get. Example: cuuser_cky0xs54b004h01pidi0pcuz1.
allowed_merchant_namesarray- Merchant names the card may be used at (up to 50). Transactions at other merchants are declined. Cannot be combined with blocked_merchant_names. Example: ["Github", "AWS"].
blocked_merchant_namesarray- Merchant names the card may not be used at (up to 50). Cannot be combined with allowed_merchant_names. Example: ["Apple", "Amazon"].
lock_after_datestring- Date (YYYY-MM-DD) after which Brex automatically locks the card. Example: 2026-12-31.
mailing_citystring- Mailing address: City, district, suburb, town or village. Example: San Francisco.
mailing_countrystring- Mailing address: Two-letter ISO 3166-1 alpha-2 country code. Example: US.
mailing_line1string- Mailing address: Street address line 1 (no PO boxes). Example: 500 Main St.
mailing_line2string- Mailing address: Address line 2, such as suite, unit or floor. Example: Suite 200.
mailing_phone_numberstring- Mailing address: Phone number for the address. Example: +14155550123.
mailing_postal_codestring- Mailing address: ZIP or postal code. Example: 94105.
mailing_statestring- Mailing address: For US addresses the 2-letter state abbreviation; otherwise the county, province or region. Example: CA.
metadataobject- Key-value pairs (string values) to store on the card for your own reference, up to 50 keys; keys up to 40 characters. Do not store personal or sensitive data here. Example: {"cost_code": "ENG-42"}.
parent_budget_idstring- On the Empower platform Brex creates a budget for the new card; this nests it under the given parent budget. Leave empty to nest it under the user's default limit. Get budget IDs from brex_budget_list. Example: budget_cl9rh1n8g001e0j84w6fb4fd1.
policy_idstring- ID of the expense policy to apply to the card's spend. Leave empty for the account default. Example: policy_cl9rh1n8g001e0j84w6fb4fd1.
spend_controls_reasonstring- Free-text reason recorded for the spend control. Example: Annual SaaS subscription.
spend_durationstring- How often the card spend limit refreshes: MONTHLY, QUARTERLY, YEARLY, or ONE_TIME (the limit never refreshes). Required, together with spend_limit_amount, when limit_type is CARD. Example: MONTHLY.one of
MONTHLYQUARTERLYYEARLYONE_TIME spend_limit_amountinteger- Card spend limit as an integer in the smallest currency unit (cents for USD); 50000 means $500.00. Required, together with spend_duration, when limit_type is CARD; must be left empty when limit_type is USER. Example: 50000.
spend_limit_currencystring- ISO 4217 currency code for the spend limit. Only used together with spend_limit_amount; Brex defaults to USD. Example: USD.
three_domain_secure_preferencestring- Whether to enable the 3-D Secure protocol for online purchases on this card: THREE_DOMAIN_SECURE_ENABLED or THREE_DOMAIN_SECURE_DISABLED. Leave empty for the Brex default. Example: THREE_DOMAIN_SECURE_ENABLED.one of
THREE_DOMAIN_SECURE_ENABLEDTHREE_DOMAIN_SECURE_DISABLED
brex_card_lockLock an unlocked Brex card so it cannot be used until it is unlocked; the card owner is notified.WriteLock Card
Lock an unlocked Brex card so it cannot be used until it is unlocked; the card owner is notified. Returns the card with its updated status. Use this to pause a card temporarily. Use brex_card_unlock to reverse it. Requires a card ID from brex_card_list.
Inputs
card_idstringrequired- ID of the card. Get it from brex_card_list (or the response of brex_card_create). Example: card_cl9rh1n8g001e0j84w6fb4fd1.
reasonstringrequired- Why the card is being locked: CARD_DAMAGED, CARD_LOST, CARD_NOT_RECEIVED, DO_NOT_NEED_PHYSICAL_CARD, DO_NOT_NEED_VIRTUAL_CARD, FRAUD, or OTHER. Example: CARD_LOST.one of
CARD_DAMAGEDCARD_LOSTCARD_NOT_RECEIVEDDO_NOT_NEED_PHYSICAL_CARDDO_NOT_NEED_VIRTUAL_CARDFRAUDOTHER descriptionstring- Optional free-text note about why the card is locked. Example: Card misplaced during travel.
brex_card_unlockUnlock a locked Brex card so it can be used again.WriteUnlock Card
Unlock a locked Brex card so it can be used again. Returns the card with its updated status. Use this to reverse brex_card_lock. Requires a card ID from brex_card_list.
Inputs
card_idstringrequired- ID of the card. Get it from brex_card_list (or the response of brex_card_create). Example: card_cl9rh1n8g001e0j84w6fb4fd1.
brex_card_updateUpdate an existing Brex vendor card's spend controls or metadata.WriteUpdate Card
Update an existing Brex vendor card's spend controls or metadata. Returns the updated card, including its spend controls. Use this to change a vendor card's limit, refresh period, merchant rules or lock date. Use brex_card_lock or brex_card_unlock to change whether the card can be used. Requires a card ID from brex_card_list.
- Idempotent
Inputs
card_idstringrequired- ID of the card. Get it from brex_card_list (or the response of brex_card_create). Example: card_cl9rh1n8g001e0j84w6fb4fd1.
allowed_merchant_namesarray- Merchant names the card may be used at (up to 50). Transactions at other merchants are declined. Cannot be combined with blocked_merchant_names. Example: ["Github", "AWS"].
blocked_merchant_namesarray- Merchant names the card may not be used at (up to 50). Cannot be combined with allowed_merchant_names. Example: ["Apple", "Amazon"].
lock_after_datestring- Date (YYYY-MM-DD) after which Brex automatically locks the card. Example: 2026-12-31.
metadataobject- Key-value pairs (string values) to store on the card for your own reference, up to 50 keys; keys up to 40 characters. Do not store personal or sensitive data here. Example: {"cost_code": "ENG-42"}.
spend_controls_reasonstring- Free-text reason recorded for the spend control. Example: Annual SaaS subscription.
spend_durationstring- How often the card spend limit refreshes: MONTHLY, QUARTERLY, YEARLY, or ONE_TIME (the limit never refreshes). Leave empty to keep the current value. Example: MONTHLY.one of
MONTHLYQUARTERLYYEARLYONE_TIME spend_limit_amountinteger- Card spend limit as an integer in the smallest currency unit (cents for USD); 50000 means $500.00. Leave empty to keep the current limit. Example: 50000.
spend_limit_currencystring- ISO 4217 currency code for the spend limit. Only used together with spend_limit_amount; Brex defaults to USD. Example: USD.
brex_custom_field_createCreate a custom field on the Brex account, such as an accounting category or a user attribute.WriteCreate Custom Field
Create a custom field on the Brex account, such as an accounting category or a user attribute. Returns the new field with its Brex ID, name, remote ID, group and disabled flag. Use this to add a field before adding its values with brex_custom_field_value_create. A field in the ERP group needs an existing accounting integration ID.
Inputs
groupstringrequired- What the field is for: ACCOUNTING (categorize transactions for accounting), USER (attributes on users), ERP (synced with an ERP; requires integration_id), or TRAVEL. Example: ACCOUNTING.one of
ACCOUNTINGUSERERPTRAVEL idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
namestringrequired- Name of the custom field. Example: Project Code.
integration_idstring- Required when group is ERP: ID of an existing Brex accounting integration to attach the field to. Example: int_123.
is_disabledboolean- Set to true to create the field disabled, so it is not offered on new transactions. Example: false.
remote_idstring- ID of this field in an external system such as an ERP or HRIS. Example: foo_bar.
brex_custom_field_updateRename or enable/disable a Brex custom field.WriteUpdate Custom Field
Rename or enable/disable a Brex custom field. Returns the updated field. Use this to rename a field or stop it being used on new transactions. Use brex_custom_field_value_update to change the field's values. Requires a field ID from brex_custom_field_list.
- Idempotent
Inputs
field_idstringrequired- ID of the custom field. Get it from brex_custom_field_list. Example: extended_field_foobar.
is_disabledboolean- Set to true to disable the field (it stops appearing on new transactions; existing records keep it), or false to re-enable it. Example: true.
namestring- New name for the field. Leave empty to keep the current name. Example: Project Code.
brex_custom_field_value_createCreate up to 1000 values (options) for one Brex custom field in a single call.WriteCreate Custom Field Values
Create up to 1000 values (options) for one Brex custom field in a single call. Returns the created values with their Brex IDs. Use this to add options to a field. Use brex_custom_field_value_update to rename or disable existing values. Requires a field ID from brex_custom_field_list.
Inputs
field_idstringrequired- ID of the custom field. Get it from brex_custom_field_list. Example: extended_field_foobar.
idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
itemsarrayrequired- Values to create (up to 1000). Each needs a display value and can also carry a value ID (a code, usually the ID in your external system), a remote ID, and a disabled flag. Example: [{"value": "Marketing", "value_id": "MKT", "remote_id": "erp_mkt_01"}].
brex_custom_field_value_updateUpdate up to 1000 values of one Brex custom field in a single call, renaming or enabling/disabling them.WriteUpdate Custom Field Values
Update up to 1000 values of one Brex custom field in a single call, renaming or enabling/disabling them. Returns the updated values. Use this to rename or disable field options. Use brex_custom_field_value_create to add new ones. Requires a field ID from brex_custom_field_list and value identifiers from brex_custom_field_value_list.
- Idempotent
Inputs
field_idstringrequired- ID of the custom field. Get it from brex_custom_field_list. Example: extended_field_foobar.
itemsarrayrequired- Values to update (up to 1000). Identify each value by exactly one of its Brex ID, value ID or remote ID, and put the changes in a data object holding a new display value and/or a disabled flag. Example: [{"brex_id": "efo_foobar", "data": {"value": "Brand Marketing"}}, {"value_id": "OLD", "data": {"is_disabled": true}}].
brex_department_createCreate a department on the Brex account.WriteCreate Department
Create a department on the Brex account. Returns the new department with its ID, name and description. Use this to add a department. Use brex_department_update to rename an existing one.
Inputs
namestringrequired- Name of the department, at least 1 character. Example: Engineering.
descriptionstring- Optional description of the department. Example: Engineering team.
brex_department_updateUpdate a Brex department.WriteUpdate Department
Update a Brex department. Only the fields you provide change. Returns the updated department. Use this to rename a department. Use brex_department_create to add a new one. Requires a department ID from brex_department_list.
- Idempotent
Inputs
department_idstringrequired- ID of the department. Get it from brex_department_list. Example: dept_cl9rh1n8g001e0j84w6fb4fd1.
descriptionstring- New description for the department; pass an empty string to clear it. Leave empty (null) to keep the current one. Example: Engineering team.
namestring- New name for the department; cannot be blank when supplied. Leave empty to keep the current name. Example: Engineering.
brex_expense_updateUpdate the memo on a Brex card expense.WriteUpdate Expense Memo
Update the memo on a Brex card expense. Returns the updated expense with memo, category, merchant, amounts, status and payment status. Use this to add or correct an expense memo. Use brex_expense_get to read an expense. Requires a card expense ID from brex_expense_list. Admins and bookkeepers can update any expense; regular users only their own.
- Idempotent
Inputs
expense_idstringrequired- ID of the expense. Get it from brex_expense_list. Example: exp_xyz789.
memostringrequired- New memo text for the expense, describing the business purpose. Example: Team offsite lunch with design.
brex_incoming_transfer_createPull money into a Brex business (cash) account from a linked external bank account by ACH debit.WriteCreate Incoming Transfer
Pull money into a Brex business (cash) account from a linked external bank account by ACH debit. Returns the new transfer with its ID, status, amount, process date and estimated delivery date. Use this to fund a Brex account. Use brex_transfer_create to send money out. Requires a linked account ID from brex_linked_account_list and a cash account ID from brex_cash_account_list. Moves real money; Brex's Access Agreement applies.
Inputs
amountintegerrequired- Amount to pull in, as an integer in the smallest unit of the currency (cents for USD). For example 150000 means $1,500.00. Example: 150000.
descriptionstringrequired- Internal description of the transfer; not exposed externally. Example: Monthly operating top-up.
idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
linked_account_idstringrequired- ID of the linked external bank account to pull funds from. Get it from brex_linked_account_list. Example: bconn_cl9rh1n8g001e0j84w6fb4fd1.
receiving_account_idstringrequired- ID of the Brex business (cash) account to fund. Get it from brex_cash_account_list. Example: dpacc_cl9rh1n8g001e0j84w6fb4fd1.
currencystring- ISO 4217 currency code for amount to pull in. Brex defaults to USD when omitted. Example: USD.
brex_location_createCreate a location on the Brex account.WriteCreate Location
Create a location on the Brex account. Returns the new location with its ID, name and description. Use this to add a location. Use brex_location_update to rename an existing one.
Inputs
namestringrequired- Name of the location, at least 1 character. Example: San Francisco HQ.
descriptionstring- Optional description of the location. Example: San Francisco HQ team.
brex_location_updateUpdate a Brex location.WriteUpdate Location
Update a Brex location. Only the fields you provide change. Returns the updated location. Use this to rename a location. Use brex_location_create to add a new one. Requires a location ID from brex_location_list.
- Idempotent
Inputs
location_idstringrequired- ID of the location. Get it from brex_location_list. Example: loc_cl9rh1n8g001e0j84w6fb4fd1.
descriptionstring- New description for the location; pass an empty string to clear it. Leave empty (null) to keep the current one. Example: San Francisco HQ team.
namestring- New name for the location; cannot be blank when supplied. Leave empty to keep the current name. Example: San Francisco HQ.
brex_spend_limit_createCreate a Brex spend limit that controls how much members can spend, with authorization, visibility and card settings.WriteCreate Spend Limit
Create a Brex spend limit that controls how much members can spend, with authorization, visibility and card settings. Returns the new spend limit with its ID, status and settings. Use this to set up a controlled spending pool. Use brex_budget_create for a tracking-only budget. Requires an expense policy ID (visible on existing spend limits via brex_spend_limit_get). Member and owner IDs come from brex_user_list.
Inputs
authorization_typestringrequired- HARD declines card authorizations once the available balance is used; SOFT allows them. Example: HARD.one of
HARDSOFT authorization_visibilitystringrequired- PUBLIC shows the limit amount to all members; PRIVATE shows it only to controllers, bookkeepers and owners. Example: PUBLIC.one of
PUBLICPRIVATE auto_create_limit_cards_settingstringrequired- ALL_MEMBERS creates a limit card for every member automatically; DISABLED does not. Example: DISABLED.one of
DISABLEDALL_MEMBERS auto_transfer_cards_settingstringrequired- Whether virtual cards are transferred automatically: ENABLED or DISABLED. Example: DISABLED.one of
DISABLEDENABLED base_limit_amountintegerrequired- Base limit of the spend limit before increases or rollovers, as an integer in the smallest currency unit (cents for USD); 500000 means $5,000.00. Example: 500000.
expense_policy_idstringrequired- ID of the expense policy that applies to this spend limit. Find policy IDs in the Brex dashboard or on existing spend limits from brex_spend_limit_get. Example: policy_cl9rh1n8g001e0j84w6fb4fd1.
expense_visibilitystringrequired- SHARED lets all members see expenses on this limit; PRIVATE does not. Example: SHARED.one of
SHAREDPRIVATE idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
limit_increase_settingstringrequired- ENABLED lets members request limit increases; DISABLED does not. Example: ENABLED.one of
ENABLEDDISABLED namestringrequired- Name of the spend limit. Example: Team travel.
period_recurrence_typestringrequired- How often the limit resets: PER_WEEK, PER_MONTH, PER_QUARTER, PER_YEAR, or ONE_TIME. Example: PER_MONTH.one of
PER_WEEKPER_MONTHPER_QUARTERPER_YEARONE_TIME rollover_refresh_ratestringrequired- How unused funds roll over: OFF (no rollover), NEVER (roll over indefinitely), or PER_MONTH, PER_QUARTER, PER_YEAR (rolled-over funds reset at that interval). Example: OFF.one of
OFFNEVERPER_MONTHPER_QUARTERPER_YEAR spend_typestringrequired- BUDGET_PROVISIONED_CARDS_ONLY allows spend only from cards provisioned by this limit; NON_BUDGET_PROVISIONED_CARDS_ALLOWED also allows other cards. Example: BUDGET_PROVISIONED_CARDS_ONLY.one of
BUDGET_PROVISIONED_CARDS_ONLYNON_BUDGET_PROVISIONED_CARDS_ALLOWED base_limit_currencystring- ISO 4217 currency code for the base limit. Only used together with base_limit_amount; Brex defaults to USD. Example: USD.
department_idstring- Department that expenses on this limit are attributed to. Get IDs from brex_department_list. Example: dept_cl9rh1n8g001e0j84w6fb4fd1.
descriptionstring- What the spend limit is used for. Example: Flights and hotels for the sales team.
end_datestring- Date (YYYY-MM-DD) the spend limit expires. Example: 2026-12-31.
legal_entity_idstring- Legal entity that expenses on this limit are attributed to. If not set, expenses go to the spending user's entity. Get IDs from brex_legal_entity_list. Example: le_cl9rh1n8g001e0j84w6fb4fd1.
limit_approval_policy_idstring- ID of the policy for limit increase approvals; replaces limit_increase_request_policy_id. Example: policy_cl9rh1n8g001e0j84w6fb4fd3.
limit_buffer_percentageinteger- Flexible buffer on top of the limit, as an integer from 0 to 100. Example: 10.
limit_increase_request_policy_idstring- ID of the policy for limit increase requests. Example: policy_cl9rh1n8g001e0j84w6fb4fd2.
member_user_idsarray- User IDs of the members who can spend from this limit. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
owner_user_idsarray- User IDs of the spend limit owners. Get IDs from brex_user_list. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
parent_budget_idstring- ID of the parent budget this spend limit sits under. Get it from brex_budget_list. Example: budget_cl9rh1n8g001e0j84w6fb4fd1.
start_datestring- Date (YYYY-MM-DD) the spend limit starts counting. Example: 2026-07-01.
transaction_limit_amountinteger- Maximum amount allowed per transaction, as an integer in the smallest unit of the currency (cents for USD). For example 150000 means $1,500.00. Leave empty for no per-transaction limit. Example: 150000.
transaction_limit_currencystring- ISO 4217 currency code for the transaction limit. Only used together with transaction_limit_amount; Brex defaults to USD. Example: USD.
brex_spend_limit_updateUpdate an existing Brex spend limit's name, status, period, dates, limit amounts, visibility, merchant category controls, members or policies.WriteUpdate Spend Limit
Update an existing Brex spend limit's name, status, period, dates, limit amounts, visibility, merchant category controls, members or policies. Only the fields you provide change. Returns the updated spend limit. Use this to adjust a spend limit. Use brex_spend_limit_get to read it first. Requires a spend limit ID from brex_spend_limit_list.
- Idempotent
Inputs
idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
spend_limit_idstringrequired- ID of the spend limit. Get it from brex_spend_limit_list. Example: sl_cl9rh1n8g001e0j84w6fb4fd1.
allowed_merchant_categoriesarray- Only allow spend in these merchant categories, such as SOFTWARE, AIRLINE_EXPENSES or LODGING. Leave empty to keep the current setting. Example: ["SOFTWARE", "SERVERS"].
authorization_typestring- HARD declines card authorizations once the available balance is used; SOFT allows them. Leave empty to keep the current value. Example: HARD.one of
HARDSOFT authorization_visibilitystring- PUBLIC shows the limit amount to all members; PRIVATE shows it only to controllers, bookkeepers and owners. Leave empty to keep the current value. Example: PUBLIC.one of
PUBLICPRIVATE auto_create_limit_cards_settingstring- ALL_MEMBERS creates a limit card for every member automatically; DISABLED does not. Leave empty to keep the current value. Example: DISABLED.one of
DISABLEDALL_MEMBERS auto_transfer_cards_settingstring- Whether virtual cards are transferred automatically: ENABLED or DISABLED. Leave empty to keep the current value. Example: DISABLED.one of
DISABLEDENABLED base_limit_amountinteger- Base limit of the spend limit before increases or rollovers, as an integer in the smallest currency unit (cents for USD); 500000 means $5,000.00. Leave empty to keep the current value. Example: 500000.
base_limit_currencystring- ISO 4217 currency code for the base limit. Only used together with base_limit_amount; Brex defaults to USD. Example: USD.
blocked_merchant_categoriesarray- Block spend in these merchant categories, such as GAMBLING or BARS_NIGHTLIFE. Leave empty to keep the current setting. Example: ["GAMBLING"].
department_idstring- Department that expenses on this limit are attributed to. Get IDs from brex_department_list. Leave empty to keep the current value. Example: dept_cl9rh1n8g001e0j84w6fb4fd1.
descriptionstring- What the spend limit is used for. Leave empty to keep the current value. Example: Flights and hotels for the sales team.
end_datestring- Date (YYYY-MM-DD) the spend limit expires. Leave empty to keep the current value. Example: 2026-12-31.
expense_policy_idstring- ID of the expense policy that applies to this spend limit. Find policy IDs in the Brex dashboard or on existing spend limits from brex_spend_limit_get. Leave empty to keep the current value. Example: policy_cl9rh1n8g001e0j84w6fb4fd1.
expense_visibilitystring- SHARED lets all members see expenses on this limit; PRIVATE does not. Leave empty to keep the current value. Example: SHARED.one of
SHAREDPRIVATE legal_entity_idstring- Legal entity that expenses on this limit are attributed to. If not set, expenses go to the spending user's entity. Get IDs from brex_legal_entity_list. Leave empty to keep the current value. Example: le_cl9rh1n8g001e0j84w6fb4fd1.
limit_approval_policy_idstring- ID of the policy for limit increase approvals; replaces limit_increase_request_policy_id. Leave empty to keep the current value. Example: policy_cl9rh1n8g001e0j84w6fb4fd3.
limit_buffer_percentageinteger- Flexible buffer on top of the limit, as an integer from 0 to 100. Leave empty to keep the current value. Example: 10.
limit_increase_request_policy_idstring- ID of the policy for limit increase requests. Leave empty to keep the current value. Example: policy_cl9rh1n8g001e0j84w6fb4fd2.
limit_increase_settingstring- ENABLED lets members request limit increases; DISABLED does not. Leave empty to keep the current value. Example: ENABLED.one of
ENABLEDDISABLED member_user_idsarray- User IDs of the members who can spend from this limit. Leave empty to keep the current value. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
namestring- Name of the spend limit. Leave empty to keep the current value. Example: Team travel.
owner_user_idsarray- User IDs of the spend limit owners. Get IDs from brex_user_list. Leave empty to keep the current value. Example: ["cuuser_cky0xs54b004h01pidi0pcuz1"].
period_recurrence_typestring- How often the limit resets: PER_WEEK, PER_MONTH, PER_QUARTER, PER_YEAR, or ONE_TIME. Leave empty to keep the current value. Example: PER_MONTH.one of
PER_WEEKPER_MONTHPER_QUARTERPER_YEARONE_TIME rollover_refresh_ratestring- How unused funds roll over: OFF (no rollover), NEVER (roll over indefinitely), or PER_MONTH, PER_QUARTER, PER_YEAR (rolled-over funds reset at that interval). Leave empty to keep the current value. Example: OFF.one of
OFFNEVERPER_MONTHPER_QUARTERPER_YEAR set_end_date_nullboolean- Set to true to remove the expiry date. Example: true.
set_start_date_nullboolean- Set to true to remove the start date. Example: true.
set_transaction_limit_nullboolean- Set to true to remove the per-transaction limit. Example: true.
spend_typestring- BUDGET_PROVISIONED_CARDS_ONLY allows spend only from cards provisioned by this limit; NON_BUDGET_PROVISIONED_CARDS_ALLOWED also allows other cards. Leave empty to keep the current value. Example: BUDGET_PROVISIONED_CARDS_ONLY.one of
BUDGET_PROVISIONED_CARDS_ONLYNON_BUDGET_PROVISIONED_CARDS_ALLOWED start_datestring- Date (YYYY-MM-DD) the spend limit starts counting. Leave empty to keep the current value. Example: 2026-07-01.
statusstring- New status for the spend limit: ACTIVE, EXPIRED, ARCHIVED, or DELETED. Leave empty to keep the current status. Example: ACTIVE.one of
ACTIVEEXPIREDARCHIVEDDELETED transaction_limit_amountinteger- Maximum amount allowed per transaction, as an integer in the smallest unit of the currency (cents for USD). For example 150000 means $1,500.00. Leave empty for no per-transaction limit change. Example: 150000.
transaction_limit_currencystring- ISO 4217 currency code for the transaction limit. Only used together with transaction_limit_amount; Brex defaults to USD. Example: USD.
brex_title_createCreate a title on the Brex account.WriteCreate Title
Create a title on the Brex account. Returns the new title with its ID and name. Use this to add a title. Use brex_title_update to rename an existing one.
Inputs
namestringrequired- Name of the title, at least 1 character. Example: Senior Engineer.
brex_title_updateUpdate a Brex title.WriteUpdate Title
Update a Brex title. Only the fields you provide change. Returns the updated title. Use this to rename a title. Use brex_title_create to add a new one. Requires a title ID from brex_title_list.
- Idempotent
Inputs
namestringrequired- New name for the title, 1 to 255 characters. Example: Senior Engineer.
title_idstringrequired- ID of the title. Get it from brex_title_list. Example: title_cl9rh1n8g001e0j84w6fb4fd1.
brex_transfer_createSend money from a Brex business (cash) account to a vendor's payment instrument (ACH, domestic wire, cheque or international wire) or as a book transfer to another Brex business account.WriteCreate Transfer
Send money from a Brex business (cash) account to a vendor's payment instrument (ACH, domestic wire, cheque or international wire) or as a book transfer to another Brex business account. Returns the new transfer with its ID, status, payment type, amount, process date and estimated delivery date. Use this to pay a vendor. Use brex_incoming_transfer_create to pull money into Brex from a linked bank account. Requires a cash account ID from brex_cash_account_list and, for vendor payments, a payment instrument ID from brex_vendor_get. Moves real money; Brex's Access Agreement applies.
Inputs
amountintegerrequired- Amount to send, as an integer in the smallest unit of the currency (cents for USD). For example 150000 means $1,500.00. Example: 150000.
counterparty_typestringrequired- VENDOR to pay a vendor's payment instrument (set payment_instrument_id), or BOOK_TRANSFER to move money to another Brex business account (set recipient_type and recipient_id). Example: VENDOR.one of
VENDORBOOK_TRANSFER descriptionstringrequired- Internal description of the transfer; not shown to the recipient. Example: Invoice 1042 - Acme Supplies.
external_memostringrequired- Memo sent with the payment: the payment instructions for wires or the entry description for ACH. At most 90 characters for ACH and wires and 40 for cheques. Example: INV-1042.
idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
originating_account_idstringrequired- ID of the Brex business (cash) account to send from. Get it from brex_cash_account_list. Only USD transfers are supported. Example: dpacc_cl9rh1n8g001e0j84w6fb4fd1.
approval_typestring- Set to MANUAL to require a cash admin to approve the transfer before funds are sent. Leave empty to apply the account's default approval policy. Example: MANUAL.one of
MANUAL currencystring- ISO 4217 currency code for amount to send. Brex defaults to USD when omitted. Example: USD.
is_ppro_enabledboolean- Set to true to add Principal Protection (PPRO), where Brex covers fees charged by intermediary or receiving banks; PPRO charges are billed monthly. Example: false.
payment_instrument_idstring- Required when counterparty_type is VENDOR. ID of the vendor's payment instrument; its type (ACH, wire, cheque) decides the payment method. Get it from the payment_accounts of brex_vendor_get. Example: pi_cl9rh1n8g001e0j84w6fb4fd1.
recipient_idstring- Required when counterparty_type is BOOK_TRANSFER. The receiving Brex business account ID or payment instrument ID, matching recipient_type. Example: dpacc_cl9rh1n8g001e0j84w6fb4fd2.
recipient_typestring- Required when counterparty_type is BOOK_TRANSFER. ACCOUNT_ID if recipient_id is a Brex business account ID, or PAYMENT_INSTRUMENT_ID if it is the payment instrument of the receiving Brex account. Example: ACCOUNT_ID.one of
ACCOUNT_IDPAYMENT_INSTRUMENT_ID
brex_vendor_createCreate a Brex vendor (payee), optionally with ACH, domestic wire or cheque payment details.WriteCreate Vendor
Create a Brex vendor (payee), optionally with ACH, domestic wire or cheque payment details. Returns the new vendor with its ID, company name, contact details and payment accounts, including payment instrument IDs. Use this to add a payee before paying it with brex_transfer_create. Use brex_vendor_update to change an existing vendor.
Inputs
company_namestringrequired- Vendor name; must be unique on the account. It appears as the counterparty name on transfers. Example: Acme Supplies.
idempotency_keystringrequired- Unique key for this request, sent as the Idempotency-Key header that Brex requires on this endpoint. Generate a new value (for example a UUID) for each new operation, and reuse the same value only when retrying the same request, so Brex does not apply it twice. Example: 6f1c2b3a-9d4e-4f5a-8b7c-1d2e3f4a5b6c.
emailstring- Vendor contact email. Example: billing@acme.com.
payment_accountsarray- Payment accounts for the vendor, at most one per payment type. Each item has a details object whose type is ACH, DOMESTIC_WIRE or CHEQUE. ACH needs the routing number, account number, account type (CHECKING or SAVING) and account class (BUSINESS or PERSONAL). A domestic wire needs the routing number, account number and the bank's address object. A cheque needs a mailing address object and a recipient name of up to 40 characters. Any type can also carry a beneficiary name. Example: [{"details": {"type": "ACH", "routing_number": "121000358", "account_number": "000123456789", "account_type": "CHECKING", "account_class": "BUSINESS"}}].
phonestring- Vendor contact phone number. Example: +14155550123.
brex_vendor_updateUpdate an existing Brex vendor's name, contact details, beneficiary name or payment accounts.WriteUpdate Vendor
Update an existing Brex vendor's name, contact details, beneficiary name or payment accounts. Only the fields you provide change. Returns the updated vendor with its payment accounts. Use this to correct vendor details. Use brex_vendor_get to read the vendor first. Requires a vendor ID from brex_vendor_list. To change a payment account, send that account's complete details.
- Idempotent
Inputs
vendor_idstringrequired- ID of the vendor. Get it from brex_vendor_list. Example: vendor_cl9rh1n8g001e0j84w6fb4fd1.
beneficiary_namestring- Name of the payment beneficiary. Example: Acme Supplies Inc.
company_namestring- New vendor name. Leave empty to keep the current name. Example: Acme Supplies Inc.
emailstring- New vendor email. Leave empty to keep the current one. Example: ap@acme.com.
payment_accountsarray- Payment accounts to update. Send the complete details for each account you change, at most one per payment type. Each item has a details object whose type is ACH, DOMESTIC_WIRE or CHEQUE. ACH needs the routing number, account number, account type (CHECKING or SAVING) and account class (BUSINESS or PERSONAL). A domestic wire needs the routing number, account number and the bank's address object. A cheque needs a mailing address object and a recipient name of up to 40 characters. Any type can also carry a beneficiary name. Example: [{"details": {"type": "ACH", "routing_number": "121000358", "account_number": "000123456789", "account_type": "CHECKING", "account_class": "BUSINESS"}}].
phonestring- New vendor phone number. Leave empty to keep the current one. Example: +14155550199.
No tools match.