Use Brex to retrieve spend data, update expense memos, manage budgets and vendors, and create transfers.
- List and filter expenses by status, owner, or purchase date; retrieve merchant, amount, and receipt details.
- Attach a receipt to a card expense or upload one for Brex to match automatically.
- Read settled card and cash transactions, account balances, and finalized statements.
- Read or create budgets and spend limits, inspect current-period balances, and archive budgets.
- Look up users, departments, locations, titles, cards, vendors, and transfers; create or update vendors.
Authenticate with a Brex user token from Developer → Settings in the Brex dashboard. Create Transfer can move money from a Brex cash account to a vendor. Set Approval Type to MANUAL when the transfer should require cash-admin approval, and inspect its returned status before assuming payment completed. Archiving a budget makes its child spend limits unusable for future expenses. The block does not issue cards or expose card numbers.
Use the block
List and update expenses, upload and match receipts, view card and cash transactions, accounts, budgets, spend limits, vendors, transfers, and team data.
Actions
Brex List Expenses
List expenses in the Brex account with optional filters for user, status, payment status, and purchase date range
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
userIds | string | No | Comma-separated user IDs to filter expenses by owner |
statuses | string | No | Comma-separated expense statuses to filter by: DRAFT, SUBMITTED, APPROVED, OUT_OF_POLICY, VOID, CANCELED, SPLIT, SETTLED |
paymentStatuses | string | No | Comma-separated payment statuses to filter by: NOT_STARTED, PROCESSING, CANCELED, DECLINED, CLEARED, REFUNDING, REFUNDED, CASH_ADVANCE, CREDITED, AWAITING_PAYMENT, SCHEDULED |
purchasedAtStart | string | No | Only include expenses purchased at or after this ISO 8601 timestamp |
purchasedAtEnd | string | No | Only include expenses purchased at or before this ISO 8601 timestamp |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of expenses to return (max 100) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Expenses matching the filters |
↳ id | string | Unique expense ID |
↳ memo | string | Memo on the expense |
↳ status | string | Expense status (DRAFT, SUBMITTED, APPROVED, OUT_OF_POLICY, VOID, CANCELED, SPLIT, SETTLED) |
↳ payment_status | string | Payment status (NOT_STARTED, PROCESSING, CANCELED, DECLINED, CLEARED, REFUNDING, REFUNDED, CASH_ADVANCE, CREDITED, AWAITING_PAYMENT, SCHEDULED) |
↳ expense_type | string | Expense type (CARD, BILLPAY, REIMBURSEMENT, CLAWBACK, UNSET) |
↳ category | string | Expense category (e.g., RESTAURANTS, RECURRING_SOFTWARE_AND_SAAS, AIRLINE_EXPENSES) |
↳ merchant | json | Merchant details |
↳ raw_descriptor | string | Raw merchant descriptor |
↳ mcc | string | Merchant category code |
↳ country | string | Merchant country |
↳ user | json | User who made the expense |
↳ id | string | User ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ budget | json | Budget the expense belongs to |
↳ id | string | Budget ID |
↳ name | string | Budget name |
↳ department | json | Department of the expense owner |
↳ id | string | Department ID |
↳ name | string | Department name |
↳ location | json | Location of the expense owner |
↳ id | string | Location ID |
↳ name | string | Location name |
↳ original_amount | json | Original transaction amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ billing_amount | json | Amount billed to the account |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ purchased_amount | json | Amount at the time of purchase |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ receipts | array | Receipts attached to the expense |
↳ id | string | Receipt ID |
↳ download_uris | array | Pre-signed receipt download URLs |
↳ purchased_at | string | Purchase timestamp (ISO 8601) |
↳ updated_at | string | Last update timestamp (ISO 8601) |
↳ dashboard_url | string | Link to the expense in the Brex dashboard |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get Expense
Get a single Brex expense by its ID, including merchant, user, and receipt details
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
expenseId | string | Yes | ID of the expense to fetch |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique expense ID |
memo | string | Memo on the expense |
status | string | Expense status (DRAFT, SUBMITTED, APPROVED, OUT_OF_POLICY, VOID, CANCELED, SPLIT, SETTLED) |
paymentStatus | string | Payment status (NOT_STARTED, PROCESSING, CANCELED, DECLINED, CLEARED, REFUNDING, REFUNDED, CASH_ADVANCE, CREDITED, AWAITING_PAYMENT, SCHEDULED) |
expenseType | string | Expense type (CARD, BILLPAY, REIMBURSEMENT, CLAWBACK, UNSET) |
category | string | Expense category (e.g., RESTAURANTS, RECURRING_SOFTWARE_AND_SAAS, AIRLINE_EXPENSES) |
merchantId | string | Merchant ID |
merchant | json | Merchant details (raw descriptor, MCC, country) |
↳ raw_descriptor | string | Raw merchant descriptor |
↳ mcc | string | Merchant category code |
↳ country | string | Merchant country |
budgetId | string | Budget ID |
budget | json | Budget the expense belongs to |
↳ id | string | Budget ID |
↳ name | string | Budget name |
departmentId | string | Department ID |
department | json | Department of the expense owner |
↳ id | string | Department ID |
↳ name | string | Department name |
locationId | string | Location ID |
location | json | Location of the expense owner |
↳ id | string | Location ID |
↳ name | string | Location name |
userId | string | ID of the user who made the expense |
user | json | User who made the expense |
↳ id | string | User ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
originalAmount | json | Original transaction amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
billingAmount | json | Amount billed to the account |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
purchasedAmount | json | Amount at the time of purchase |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
usdEquivalentAmount | json | USD equivalent amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
purchasedAt | string | Purchase timestamp (ISO 8601) |
updatedAt | string | Last update timestamp (ISO 8601) |
paymentPostedAt | string | Timestamp the payment was posted (ISO 8601) |
receipts | array | Receipts attached to the expense |
↳ id | string | Receipt ID |
↳ download_uris | array | Pre-signed receipt download URLs |
dashboardUrl | string | Link to the expense in the Brex dashboard |
Brex Update Expense
Update the memo of a Brex card expense
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
expenseId | string | Yes | ID of the card expense to update |
memo | string | Yes | New memo for the expense |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique expense ID |
memo | string | Updated memo on the expense |
status | string | Expense status (DRAFT, SUBMITTED, APPROVED, OUT_OF_POLICY, VOID, CANCELED, SPLIT, SETTLED) |
paymentStatus | string | Payment status (NOT_STARTED, PROCESSING, CANCELED, DECLINED, CLEARED, REFUNDING, REFUNDED, CASH_ADVANCE, CREDITED, AWAITING_PAYMENT, SCHEDULED) |
category | string | Expense category (e.g., RESTAURANTS, RECURRING_SOFTWARE_AND_SAAS, AIRLINE_EXPENSES) |
merchantId | string | Merchant ID |
budgetId | string | Budget ID |
originalAmount | json | Original transaction amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
billingAmount | json | Amount billed to the account |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
purchasedAt | string | Purchase timestamp (ISO 8601) |
updatedAt | string | Last update timestamp (ISO 8601) |
Brex Upload Receipt
Upload a receipt file and attach it to a specific Brex card expense
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
expenseId | string | Yes | ID of the card expense to attach the receipt to |
file | file | Yes | Receipt file to upload (max 50 MB) |
receiptName | string | No | Receipt file name including extension (defaults to the uploaded file name) |
Output
| Parameter | Type | Description |
|---|---|---|
receiptId | string | Unique identifier of the receipt upload |
receiptName | string | Name the receipt was uploaded with |
expenseId | string | ID of the expense the receipt was attached to |
Brex Match Receipt
Upload a receipt file and let Brex automatically match it with existing expenses
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
file | file | Yes | Receipt file to upload (max 50 MB) |
receiptName | string | No | Receipt file name including extension (defaults to the uploaded file name) |
Output
| Parameter | Type | Description |
|---|---|---|
receiptId | string | Unique identifier of the receipt match request |
receiptName | string | Name the receipt was uploaded with |
expenseId | string | Always null for receipt match (Brex matches the receipt asynchronously) |
Brex List Card Transactions
List settled card transactions for all Brex card accounts
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
userIds | string | No | Comma-separated user IDs to filter transactions by cardholder |
postedAtStart | string | No | Only include transactions posted at or after this ISO 8601 timestamp |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of transactions to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Settled card transactions |
↳ id | string | Unique transaction ID |
↳ card_id | string | ID of the card used |
↳ description | string | Transaction description |
↳ amount | json | Transaction amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ initiated_at_date | string | Date the transaction was initiated |
↳ posted_at_date | string | Date the transaction was posted |
↳ type | string | Transaction type (PURCHASE, REFUND, CHARGEBACK, REWARDS_CREDIT, COLLECTION, BNPL_FEE) |
↳ merchant | json | Merchant details |
↳ raw_descriptor | string | Raw merchant descriptor |
↳ mcc | string | Merchant category code |
↳ country | string | Merchant country |
↳ expense_id | string | Associated expense ID |
nextCursor | string | Cursor for fetching the next page of results |
Brex List Cash Transactions
List transactions for a Brex cash account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
accountId | string | Yes | ID of the cash account to list transactions for |
postedAtStart | string | No | Only include transactions posted at or after this ISO 8601 timestamp |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of transactions to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Cash account transactions |
↳ id | string | Unique transaction ID |
↳ description | string | Transaction description |
↳ amount | json | Transaction amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ initiated_at_date | string | Date the transaction was initiated |
↳ posted_at_date | string | Date the transaction was posted |
↳ type | string | Transaction type |
↳ transfer_id | string | Associated transfer ID |
nextCursor | string | Cursor for fetching the next page of results |
Brex List Card Accounts
List all Brex card accounts with balances and limits
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
Output
| Parameter | Type | Description |
|---|---|---|
accounts | array | Card accounts |
↳ id | string | Unique account ID |
↳ status | string | Account status |
↳ current_balance | json | Current balance |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ available_balance | json | Available balance |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ account_limit | json | Account limit |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ current_statement_period | json | Current statement period (start_date, end_date) |
Brex List Cash Accounts
List all Brex cash accounts with balances and account details
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of accounts to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Cash accounts |
↳ id | string | Unique account ID |
↳ name | string | Account name |
↳ status | string | Account status |
↳ current_balance | json | Current balance |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ available_balance | json | Available balance |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ account_number | string | Bank account number |
↳ routing_number | string | Bank routing number |
↳ primary | boolean | Whether this is the primary cash account |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get Cash Account
Get a Brex cash account by ID, or the primary cash account when no ID is provided
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
accountId | string | No | ID of the cash account (defaults to the primary cash account) |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique account ID |
name | string | Account name |
status | string | Account status |
currentBalance | json | Current balance |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
availableBalance | json | Available balance |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
accountNumber | string | Bank account number |
routingNumber | string | Bank routing number |
primary | boolean | Whether this is the primary cash account |
Brex List Card Statements
List finalized statements for the primary Brex card account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of statements to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Finalized card account statements |
↳ id | string | Unique statement ID |
↳ start_balance | json | Balance at the start of the period |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ end_balance | json | Balance at the end of the period |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ period | json | Statement period (start_date, end_date) |
nextCursor | string | Cursor for fetching the next page of results |
Brex List Cash Statements
List finalized statements for a Brex cash account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
accountId | string | Yes | ID of the cash account to list statements for |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of statements to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Finalized cash account statements |
↳ id | string | Unique statement ID |
↳ start_balance | json | Balance at the start of the period |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ end_balance | json | Balance at the end of the period |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ period | json | Statement period (start_date, end_date) |
nextCursor | string | Cursor for fetching the next page of results |
Brex List Users
List users in the Brex account, optionally filtered by email
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
email | string | No | Filter users by exact email address |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of users to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Users in the Brex account |
↳ id | string | Unique user ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ email | string | Email address |
↳ status | string | User status (INVITED, ACTIVE, CLOSED, DISABLED, DELETED, PENDING_ACTIVATION, INACTIVE, ARCHIVED) |
↳ manager_id | string | ID of the manager |
↳ department_id | string | Department ID |
↳ location_id | string | Location ID |
↳ title_id | string | Title ID |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get User
Get a Brex user by their ID
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
userId | string | Yes | ID of the user to fetch |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique user ID |
firstName | string | First name |
lastName | string | Last name |
email | string | Email address |
status | string | User status (INVITED, ACTIVE, CLOSED, DISABLED, DELETED, PENDING_ACTIVATION, INACTIVE, ARCHIVED) |
managerId | string | ID of the manager |
departmentId | string | Department ID |
locationId | string | Location ID |
titleId | string | Title ID |
Brex Get Current User
Get the Brex user associated with the API token
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique user ID |
firstName | string | First name |
lastName | string | Last name |
email | string | Email address |
status | string | User status (INVITED, ACTIVE, CLOSED, DISABLED, DELETED, PENDING_ACTIVATION, INACTIVE, ARCHIVED) |
managerId | string | ID of the manager |
departmentId | string | Department ID |
locationId | string | Location ID |
titleId | string | Title ID |
Brex List Departments
List departments in the Brex account, optionally filtered by name
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
name | string | No | Filter departments by name |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of departments to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Departments in the Brex account |
↳ id | string | Unique department ID |
↳ name | string | Department name |
↳ description | string | Department description |
nextCursor | string | Cursor for fetching the next page of results |
Brex List Locations
List locations in the Brex account, optionally filtered by name
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
name | string | No | Filter locations by name |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of locations to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Locations in the Brex account |
↳ id | string | Unique location ID |
↳ name | string | Location name |
↳ description | string | Location description |
nextCursor | string | Cursor for fetching the next page of results |
Brex List Titles
List job titles in the Brex account, optionally filtered by name
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
name | string | No | Filter titles by name |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of titles to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Job titles in the Brex account |
↳ id | string | Unique title ID |
↳ name | string | Title name |
nextCursor | string | Cursor for fetching the next page of results |
Brex List Cards
List cards in the Brex account, optionally filtered by card owner
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
userId | string | No | Filter cards by the ID of the card owner |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of cards to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Cards in the Brex account |
↳ id | string | Unique card ID |
↳ owner | json | Card owner (type, user_id) |
↳ status | string | Card status |
↳ last_four | string | Last four digits of the card number |
↳ card_name | string | Card name |
↳ card_type | string | Card type (VIRTUAL or PHYSICAL) |
↳ limit_type | string | Limit type (CARD or USER) |
↳ spend_controls | json | Spend controls on the card |
↳ billing_address | json | Billing address of the card |
↳ expiration_date | json | Card expiration date (month, year) |
↳ budget_id | string | Associated budget ID |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get Company
Get the Brex company associated with the API token
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique company ID |
legalName | string | Legal name of the company |
mailingAddress | json | Company mailing address (line1, line2, city, state, country, postal_code) |
accountType | string | Brex account type (BREX_CLASSIC or BREX_EMPOWER) |
Brex List Budgets
List budgets in the Brex account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of budgets to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Budgets in the Brex account |
↳ budget_id | string | Unique budget ID |
↳ account_id | string | Account ID the budget belongs to |
↳ name | string | Budget name |
↳ description | string | Budget description |
↳ parent_budget_id | string | Parent budget ID |
↳ owner_user_ids | array | User IDs of the budget owners |
↳ period_recurrence_type | string | Budget period recurrence (WEEKLY, MONTHLY, QUARTERLY, YEARLY, ONE_TIME) |
↳ start_date | string | Budget start date |
↳ end_date | string | Budget end date |
↳ amount | json | Budget amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ spend_budget_status | string | Budget status |
↳ limit_type | string | Budget limit type |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get Budget
Get a Brex budget by its ID
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
budgetId | string | Yes | ID of the budget to fetch |
Output
| Parameter | Type | Description |
|---|---|---|
budgetId | string | Unique budget ID |
accountId | string | Account ID the budget belongs to |
name | string | Budget name |
description | string | Budget description |
parentBudgetId | string | Parent budget ID |
ownerUserIds | array | User IDs of the budget owners |
periodRecurrenceType | string | Budget period recurrence (WEEKLY, MONTHLY, QUARTERLY, YEARLY, ONE_TIME) |
startDate | string | Budget start date |
endDate | string | Budget end date |
amount | json | Budget amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
spendBudgetStatus | string | Budget status (ACTIVE, ARCHIVED, DELETED) |
limitType | string | Budget limit type (HARD or SOFT) |
Brex Create Budget
Create a new budget in the Brex account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
name | string | Yes | Name for the budget |
description | string | Yes | Description of what the budget is used for |
parentBudgetId | string | Yes | ID of the parent budget |
periodRecurrenceType | string | Yes | Period type of the budget (WEEKLY, MONTHLY, QUARTERLY, YEARLY, ONE_TIME) |
amount | number | Yes | Budget amount, in the smallest unit of the currency (e.g., cents for USD) |
currency | string | No | ISO 4217 currency code (defaults to USD) |
ownerUserIds | string | No | Comma-separated user IDs of the budget owners |
startDate | string | No | Date the budget should start counting (YYYY-MM-DD) |
endDate | string | No | Date the budget should stop counting (YYYY-MM-DD) |
Output
| Parameter | Type | Description |
|---|---|---|
budgetId | string | Unique budget ID |
accountId | string | Account ID the budget belongs to |
name | string | Budget name |
description | string | Budget description |
parentBudgetId | string | Parent budget ID |
ownerUserIds | array | User IDs of the budget owners |
periodRecurrenceType | string | Budget period recurrence (WEEKLY, MONTHLY, QUARTERLY, YEARLY, ONE_TIME) |
startDate | string | Budget start date |
endDate | string | Budget end date |
amount | json | Budget amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
spendBudgetStatus | string | Status of the created budget |
limitType | string | Budget limit type |
Brex Archive Budget
Archive a Brex budget, making any spend limits beneath it unusable for future expenses and removing it from the UI
Inputs and outputs
Brex List Spend Limits
List spend limits in the Brex account, optionally filtered by member user
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
memberUserIds | string | No | Comma-separated user IDs to filter spend limits by member |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of spend limits to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Spend limits in the Brex account |
↳ id | string | Unique spend limit ID |
↳ account_id | string | Account ID the spend limit belongs to |
↳ name | string | Spend limit name |
↳ description | string | Spend limit description |
↳ parent_budget_id | string | Parent budget ID |
↳ status | string | Spend limit status |
↳ period_recurrence_type | string | Period recurrence (PER_WEEK, PER_MONTH, PER_QUARTER, PER_YEAR, ONE_TIME) |
↳ spend_type | string | Spend type of the limit |
↳ start_date | string | Spend limit start date |
↳ end_date | string | Spend limit end date |
↳ owner_user_ids | array | User IDs of the spend limit owners |
↳ member_user_ids | array | User IDs of the spend limit members |
↳ current_period_balance | json | Spend and rollover amounts for the current period |
↳ start_date | string | Start date of the current period |
↳ end_date | string | End date of the current period |
↳ start_time | string | Start time of the current period (ISO 8601) |
↳ end_time | string | End time of the current period (ISO 8601) |
↳ amount_spent | json | Amount spent in the current period |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ rollover_amount | json | Amount rolled over from previous periods |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ authorization_settings | json | Authorization settings (base limit, authorization type, rollover refresh) |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get Spend Limit
Get a Brex spend limit by its ID
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
spendLimitId | string | Yes | ID of the spend limit to fetch |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique spend limit ID |
accountId | string | Account ID the spend limit belongs to |
name | string | Spend limit name |
description | string | Spend limit description |
parentBudgetId | string | Parent budget ID |
status | string | Spend limit status (ACTIVE, EXPIRED, ARCHIVED) |
periodRecurrenceType | string | Period recurrence (PER_WEEK, PER_MONTH, PER_QUARTER, PER_YEAR, ONE_TIME) |
spendType | string | Spend type of the limit |
startDate | string | Spend limit start date |
endDate | string | Spend limit end date |
ownerUserIds | array | User IDs of the spend limit owners |
memberUserIds | array | User IDs of the spend limit members |
currentPeriodBalance | json | Spend and rollover amounts for the current period |
↳ start_date | string | Start date of the current period |
↳ end_date | string | End date of the current period |
↳ start_time | string | Start time of the current period (ISO 8601) |
↳ end_time | string | End time of the current period (ISO 8601) |
↳ amount_spent | json | Amount spent in the current period |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ rollover_amount | json | Amount rolled over from previous periods |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
authorizationSettings | json | Authorization settings (base limit, authorization type, rollover refresh) |
Brex Create Spend Limit
Create a new spend limit (hard-authorization card program) in the Brex account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
name | string | Yes | Name for the spend limit |
periodRecurrenceType | string | Yes | Period type of the spend limit (PER_WEEK, PER_MONTH, PER_QUARTER, PER_YEAR, ONE_TIME) |
spendType | string | Yes | Whether the spend limit can only be spent from cards it provisions (BUDGET_PROVISIONED_CARDS_ONLY, NON_BUDGET_PROVISIONED_CARDS_ALLOWED) |
expenseVisibility | string | Yes | Whether expenses on this spend limit are viewable by all members (SHARED, PRIVATE) |
authorizationVisibility | string | Yes | Whether the limit amount is visible to all members, or just controllers/bookkeepers/owners (PUBLIC, PRIVATE) |
limitIncreaseSetting | string | Yes | Whether members can request limit increases (ENABLED, DISABLED) |
autoTransferCardsSetting | string | Yes | How auto transfer works for virtual cards on this spend limit (DISABLED, ENABLED) |
autoCreateLimitCardsSetting | string | Yes | How auto limit card creation works for members (DISABLED, ALL_MEMBERS) |
expensePolicyId | string | Yes | ID of the expense policy corresponding to this spend limit |
baseLimitAmount | number | Yes | Base spend limit amount, without increases/rollovers, in the smallest unit of the currency (e.g., cents for USD) |
currency | string | No | ISO 4217 currency code for the base limit (defaults to USD) |
authorizationType | string | Yes | Whether authorizations decline based on available balance (HARD, SOFT) |
rolloverRefreshRate | string | Yes | Recurrence at which rolled-over unused funds stop rolling over (OFF, NEVER, PER_MONTH, PER_QUARTER, PER_YEAR) |
limitBufferPercentage | number | No | Flexible buffer on the limit as a 0-100 percentage |
description | string | No | Description of what the spend limit is used for |
parentBudgetId | string | No | ID of the parent budget |
startDate | string | No | Date the spend limit should start counting (YYYY-MM-DD) |
endDate | string | No | Date the spend limit should expire (YYYY-MM-DD) |
transactionLimitAmount | number | No | Per-transaction limit this spend limit enforces, in the smallest unit of the currency |
ownerUserIds | string | No | Comma-separated user IDs of the spend limit owners |
memberUserIds | string | No | Comma-separated user IDs of the spend limit members |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique spend limit ID |
accountId | string | Account ID the spend limit belongs to |
name | string | Spend limit name |
description | string | Spend limit description |
parentBudgetId | string | Parent budget ID |
status | string | Spend limit status |
periodRecurrenceType | string | Period recurrence (PER_WEEK, PER_MONTH, PER_QUARTER, PER_YEAR, ONE_TIME) |
spendType | string | Spend type of the limit |
startDate | string | Spend limit start date |
endDate | string | Spend limit end date |
ownerUserIds | array | User IDs of the spend limit owners |
memberUserIds | array | User IDs of the spend limit members |
currentPeriodBalance | json | Spend and rollover amounts for the current period |
↳ start_date | string | Start date of the current period |
↳ end_date | string | End date of the current period |
↳ start_time | string | Start time of the current period (ISO 8601) |
↳ end_time | string | End time of the current period (ISO 8601) |
↳ amount_spent | json | Amount spent in the current period |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ rollover_amount | json | Amount rolled over from previous periods |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
authorizationSettings | json | Authorization settings (base limit, authorization type, rollover refresh) |
Brex List Vendors
List vendors in the Brex account, optionally filtered by name
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
name | string | No | Filter vendors by name |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of vendors to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Vendors in the Brex account |
↳ id | string | Unique vendor ID |
↳ company_name | string | Vendor company name |
↳ email | string | Vendor email address |
↳ phone | string | Vendor phone number |
↳ payment_accounts | array | Payment accounts associated with the vendor |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get Vendor
Get a Brex vendor by its ID
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
vendorId | string | Yes | ID of the vendor to fetch |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique vendor ID |
companyName | string | Vendor company name |
email | string | Vendor email address |
phone | string | Vendor phone number |
paymentAccounts | array | Payment accounts associated with the vendor |
Brex Create Vendor
Create a new vendor in the Brex account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
companyName | string | Yes | Name for the vendor (must be unique) |
email | string | No | Email address for the vendor |
phone | string | No | Phone number for the vendor |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique vendor ID |
companyName | string | Vendor company name |
email | string | Vendor email address |
phone | string | Vendor phone number |
paymentAccounts | array | Payment accounts associated with the vendor |
Brex Update Vendor
Update an existing vendor in the Brex account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
vendorId | string | Yes | ID of the vendor to update |
companyName | string | No | New name for the vendor |
email | string | No | New email address for the vendor |
phone | string | No | New phone number for the vendor |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique vendor ID |
companyName | string | Vendor company name |
email | string | Vendor email address |
phone | string | Vendor phone number |
paymentAccounts | array | Payment accounts associated with the vendor |
Brex List Transfers
List money transfers in the Brex account
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
cursor | string | No | Pagination cursor from a previous response |
limit | string | No | Number of transfers to return (default 100, max 1000) |
Output
| Parameter | Type | Description |
|---|---|---|
items | array | Transfers in the Brex account |
↳ id | string | Unique transfer ID |
↳ counterparty | json | Transfer counterparty details |
↳ description | string | Transfer description |
↳ payment_type | string | Payment type (ACH, DOMESTIC_WIRE, CHEQUE, INTERNATIONAL_WIRE, BOOK_TRANSFER, STABLECOIN) |
↳ amount | json | Transfer amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
↳ process_date | string | Date the transfer processes |
↳ originating_account | json | Account the transfer originates from |
↳ status | string | Transfer status (PROCESSING, SCHEDULED, PENDING_APPROVAL, FAILED, PROCESSED) |
↳ cancellation_reason | string | Reason the transfer was canceled |
↳ estimated_delivery_date | string | Estimated delivery date |
↳ creator_user_id | string | ID of the user who created the transfer |
↳ created_at | string | Creation timestamp |
↳ display_name | string | Transfer display name |
↳ external_memo | string | External memo |
↳ is_ppro_enabled | boolean | Whether Principal Protection (PPRO) is enabled |
nextCursor | string | Cursor for fetching the next page of results |
Brex Get Transfer
Get a Brex money transfer by its ID
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
transferId | string | Yes | ID of the transfer to fetch |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique transfer ID |
counterparty | json | Transfer counterparty details |
description | string | Transfer description |
paymentType | string | Payment type (ACH, DOMESTIC_WIRE, CHEQUE, INTERNATIONAL_WIRE, BOOK_TRANSFER, STABLECOIN) |
amount | json | Transfer amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
processDate | string | Date the transfer processes |
originatingAccount | json | Account the transfer originates from |
status | string | Transfer status (PROCESSING, SCHEDULED, PENDING_APPROVAL, FAILED, PROCESSED) |
cancellationReason | string | Reason the transfer was canceled |
estimatedDeliveryDate | string | Estimated delivery date |
creatorUserId | string | ID of the user who created the transfer |
createdAt | string | Creation timestamp |
displayName | string | Transfer display name |
externalMemo | string | External memo |
isPproEnabled | boolean | Whether Principal Protection (PPRO) is enabled |
Brex Create Transfer
Create a money transfer from a Brex cash account to a vendor
Inputs and outputs
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Brex user token (generated from Developer Settings in the Brex dashboard) |
cashAccountId | string | Yes | ID of the Brex cash account to send the transfer from (found via the /accounts endpoint) |
vendorPaymentInstrumentId | string | Yes | ID of the vendor's payment instrument to send the transfer to (from the vendor's payment_accounts) |
amount | number | Yes | Amount to transfer, in the smallest unit of the currency (e.g., cents for USD) |
currency | string | No | ISO 4217 currency code (defaults to USD) |
description | string | Yes | Description of the transfer for internal use (not exposed externally) |
externalMemo | string | Yes | External memo shown to the recipient (max 90 characters for ACH/Wire, 40 for Cheque) |
approvalType | string | No | Set to MANUAL to require cash admin approval before the transfer is sent |
isPproEnabled | boolean | No | Enable Principal Protection (PPRO) to have Brex cover intermediary/receiving bank fees (international wires only) |
Output
| Parameter | Type | Description |
|---|---|---|
id | string | Unique transfer ID |
counterparty | json | Transfer counterparty details |
description | string | Description of the transfer |
paymentType | string | Payment type (ACH, DOMESTIC_WIRE, CHEQUE, INTERNATIONAL_WIRE, BOOK_TRANSFER, STABLECOIN) |
amount | json | Transfer amount |
↳ amount | number | Amount in the smallest unit of the currency (e.g., cents for USD) |
↳ currency | string | ISO 4217 currency code (e.g., USD) |
processDate | string | Transaction processing date |
originatingAccount | json | Originating account details for the transfer |
status | string | Transfer status (PROCESSING, SCHEDULED, PENDING_APPROVAL, FAILED, PROCESSED) |
cancellationReason | string | Reason the transfer was canceled |
estimatedDeliveryDate | string | Estimated delivery date for the transfer |
creatorUserId | string | ID of the user who created the transfer |
createdAt | string | Creation timestamp of the transfer |
displayName | string | Human-readable name of the transfer |
externalMemo | string | External memo of the transfer |
isPproEnabled | boolean | Whether Principal Protection (PPRO) is enabled for the transfer |