Brex
App · Payments & Billing · 8 actions
Manage Brex card spend, expenses, transactions, and virtual cards.
Actions
| Action | What it does |
|---|---|
| Create a Brex card | Create a new virtual or physical Brex card. |
| Get a Brex expense | Fetch a single card expense by ID. |
| List Brex card transactions | List settled transactions on the primary card account. |
| List Brex cards | List Brex cards, optionally filtered by user. |
| List Brex expenses | List card expenses, with optional filters by user, budget, status, payment status, and purchase date range. |
| List Brex users | List users in the Brex account, with an optional email filter. |
| Update a Brex expense | Update the memo on a card expense. |
| Upload a Brex receipt | Upload a receipt file to Brex. |
Create a Brex card
Create a new virtual or physical Brex card. For a vendor card with its own spending limit, set the limit type to CARD. For an employee card that uses the person's existing limit, set the limit type to USER.
Inputs
- Owner user ID
owner_user_idtextRequired - The ID of the user the card is issued to. You can find user IDs with the List Brex users action.
- Card name
card_nametextRequired - Display name for the card (e.g. 'AWS - Vendor').
- Card type
card_typetextRequired - Choose VIRTUAL or PHYSICAL. Vendor cards must be VIRTUAL.
- Limit type
limit_typetextRequired - Choose CARD (a vendor card with its own limit) or USER (a corporate card that uses the person's limit). If you choose CARD, the spend limit amount and spend duration are required.
- Spend limit amount
spend_limit_amountnumber - Required when the limit type is CARD. Enter the amount in the smallest currency unit (for example, cents for USD, so 50000 means $500).
- Spend limit currency
spend_limit_currencytext - Three-letter currency code, for example USD. Default is USD.Default:
USD. - Spend duration
spend_durationtext - Required when the limit type is CARD. How long the spend limit applies: MONTHLY, QUARTERLY, YEARLY, or ONE_TIME.
- Reason
reasontext - The reason for the spend limit.
- Lock after date
lock_after_datetext - The card locks automatically after this date. Use the format yyyy-mm-dd, for example 2026-12-31.
- Mailing address
mailing_addressobject - Required for physical cards. The shipping details, with these fields: recipient_name, phone_number, and address (which contains line1, line2, city, state, postal_code, and country).
Outputs
card_nametextcard_typetextidtext- New card ID. Use as card_id in subsequent actions (list_card_transactions filter, future lock/terminate).
last_fourtext- Last four digits of the new card.
limit_typetextownerobject- {type, user_id}. Echoes the input.
spend_controlsobject- Echoes the input spend_controls when limit_type=CARD.
statustext- Initial status, typically ACTIVE.
Example output
{
"card_name": "AWS - Vendor",
"card_type": "VIRTUAL",
"id": "card_abc123",
"last_four": "4242",
"limit_type": "CARD",
"status": "ACTIVE"
}Get a Brex expense
Fetch a single card expense by ID.
Inputs
- Expense ID
expense_idtextRequired - The ID of the expense. You can find it with the List Brex expenses or List Brex card transactions actions.
- Extra details to include
expandlist - Extra details to include with the expense. Options: merchant, location, department, receipts.download_uris, user, budget, payment, spending_entity, policy.
Outputs
A single Brex expense object. Same shape as one entry of list_expenses.items.
Example output
{
"amount": {
"amount": 1800,
"currency": "USD"
},
"id": "expense_abc123",
"memo": "Notion subscription"
}List Brex card transactions
List settled transactions on the primary card account. Pending transactions are not included. Regular users can only see their own purchase, refund, and chargeback transactions.
Inputs
- User IDs
user_idslist - Only include transactions made by these users. You can find user IDs with the List Brex users action.
- Posted date from
posted_at_starttext - Only include transactions posted at or after this time (for example, 2026-04-01T00:00:00Z).
- Cursor
cursortext - To get the next page of results, enter the next_cursor value from the previous run.
- Limit
limitnumber - How many results to return per page, up to 100. Default is 50.Default:
50.
Outputs
itemslist- Settled card transactions.
next_cursortext- Cursor for the next page.
Example output
{
"items": [
{
"amount": {
"amount": 1800,
"currency": "USD"
},
"description": "NOTION LABS INC",
"id": "txn_abc123",
"type": "PURCHASE"
}
],
"next_cursor": null
}List Brex cards
List Brex cards, optionally filtered by user.
Inputs
- User ID
user_idtext - Only include cards owned by this user. You can find user IDs with the List Brex users action.
- Cursor
cursortext - To get the next page of results, enter the next_cursor value from the previous run.
- Limit
limitnumber - How many results to return per page, up to 100. Default is 50.Default:
50.
Outputs
itemslist- List of Brex card objects.
next_cursortext- Cursor for the next page.
Example output
{
"items": [
{
"card_name": "AWS - Vendor",
"card_type": "VIRTUAL",
"id": "card_abc123",
"last_four": "4242",
"limit_type": "CARD",
"status": "ACTIVE"
}
],
"next_cursor": null
}List Brex expenses
List card expenses, with optional filters by user, budget, status, payment status, and purchase date range. Results come back one page at a time.
Inputs
- User ID
user_idlist - Only include expenses owned by these users. You can find user IDs with the List Brex users action.
- Budget ID
budget_idlist - Filter to expenses charged against these budget IDs.
- Parent expense ID
parent_expense_idlist - Only include expenses that belong to these parent expenses.
- Expense status
expense_statuslist - Only include expenses with these statuses: DRAFT, SUBMITTED, APPROVED, OUT_OF_POLICY, VOID, CANCELED, SPLIT, or SETTLED.
- Payment status
payment_statuslist - Only include expenses with these payment statuses: NOT_STARTED, PROCESSING, CANCELED, DECLINED, CLEARED, REFUNDING, REFUNDED, CASH_ADVANCE, CREDITED, AWAITING_PAYMENT, or SCHEDULED.
- Purchase date from
purchased_at_starttext - Only include expenses purchased at or after this time (for example, 2026-04-01T00:00:00Z).
- Purchase date to
purchased_at_endtext - Only include expenses purchased up to this time (for example, 2026-04-30T00:00:00Z).
- Extra details to include
expandlist - Extra details to include with each expense. Options: merchant, location, department, receipts.download_uris, user, budget, payment, spending_entity, policy.
- Cursor
cursortext - To get the next page of results, enter the next_cursor value from the previous run.
- Limit
limitnumber - How many results to return per page, up to 100. Default is 50.Default:
50.
Outputs
itemslist- List of Brex expense objects.
next_cursortext- Cursor for the next page. null/empty when there are no more pages.
Example output
{
"items": [
{
"amount": {
"amount": 1800,
"currency": "USD"
},
"expense_status": "SETTLED",
"id": "expense_abc123",
"memo": "Notion subscription",
"payment_status": "CLEARED"
}
],
"next_cursor": null
}List Brex users
List users in the Brex account, with an optional email filter. Use the user IDs from this action to create cards or to filter expenses and cards by user.
Inputs
- Email
emailtext - Filter to a user by email address.
- Remote display ID
remote_display_idtext - Filter by the user's ID from your HR or sign-in system.
- Cursor
cursortext - To get the next page of results, enter the next_cursor value from the previous run.
- Limit
limitnumber - How many results to return per page, up to 100. Default is 50.Default:
50.
Outputs
itemslist- List of Brex users.
next_cursortext- Cursor for the next page.
Example output
{
"items": [
{
"email": "alex@example.com",
"first_name": "Alex",
"id": "user_abc123",
"last_name": "Chen",
"status": "ACTIVE"
}
],
"next_cursor": null
}Update a Brex expense
Update the memo on a card expense. The memo is the only field Brex allows this action to change.
Inputs
- Expense ID
expense_idtextRequired - The ID of the expense to update. You can find it with the List Brex expenses action.
- Memo
memotextRequired - The new memo text. It replaces the existing memo; leave it empty to clear the memo.
Outputs
Updated expense object. Subset of the full expense schema returned by get_expense.
idtext- Updated expense ID.
memotext- Memo after update.
updated_attext- RFC 3339 timestamp reflecting this update.
Example output
{
"id": "expense_abc123",
"memo": "Updated memo",
"updated_at": "2026-04-07T12:00:00Z"
}Upload a Brex receipt
Upload a receipt file to Brex. If you provide an expense ID, the receipt is attached to that expense. Otherwise Brex matches it to an expense by amount, merchant, and date.
Inputs
- Receipt name
receipt_nametextRequired - Filename including extension (e.g. 'receipt-2026-04-07.pdf').
- File
filetextRequired - The receipt file to upload (PDF, PNG, or JPG). You can attach a file or enter its file path.
- Expense ID
expense_idtext - Optional. The expense to attach the receipt to. You can find expense IDs with the List Brex expenses action. If left blank, Brex matches the receipt to an expense automatically.
Outputs
idtext- Brex receipt ID. Use to look up the matched expense via list_expenses with expand=receipts.download_uris.
matched_expense_idtext- Expense the receipt matched to. Null when match is still pending. Use as expense_id in get_expense / update_expense.
statustext- Upload status: 'uploaded' or 'pending_match'.
Example output
{
"id": "receipt_xyz789",
"matched_expense_id": "expense_abc123",
"status": "uploaded"
}