Brex

App · Payments & Billing · 8 actions

Manage Brex card spend, expenses, transactions, and virtual cards.

Actions

ActionWhat it does
Create a Brex cardCreate a new virtual or physical Brex card.
Get a Brex expenseFetch a single card expense by ID.
List Brex card transactionsList settled transactions on the primary card account.
List Brex cardsList Brex cards, optionally filtered by user.
List Brex expensesList card expenses, with optional filters by user, budget, status, payment status, and purchase date range.
List Brex usersList users in the Brex account, with an optional email filter.
Update a Brex expenseUpdate the memo on a card expense.
Upload a Brex receiptUpload 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 IDowner_user_idtextRequired
The ID of the user the card is issued to. You can find user IDs with the List Brex users action.
Card namecard_nametextRequired
Display name for the card (e.g. 'AWS - Vendor').
Card typecard_typetextRequired
Choose VIRTUAL or PHYSICAL. Vendor cards must be VIRTUAL.
Limit typelimit_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 amountspend_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 currencyspend_limit_currencytext
Three-letter currency code, for example USD. Default is USD.Default: USD.
Spend durationspend_durationtext
Required when the limit type is CARD. How long the spend limit applies: MONTHLY, QUARTERLY, YEARLY, or ONE_TIME.
Reasonreasontext
The reason for the spend limit.
Lock after datelock_after_datetext
The card locks automatically after this date. Use the format yyyy-mm-dd, for example 2026-12-31.
Mailing addressmailing_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_nametext
card_typetext
idtext
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_typetext
ownerobject
{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 IDexpense_idtextRequired
The ID of the expense. You can find it with the List Brex expenses or List Brex card transactions actions.
Extra details to includeexpandlist
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 IDsuser_idslist
Only include transactions made by these users. You can find user IDs with the List Brex users action.
Posted date fromposted_at_starttext
Only include transactions posted at or after this time (for example, 2026-04-01T00:00:00Z).
Cursorcursortext
To get the next page of results, enter the next_cursor value from the previous run.
Limitlimitnumber
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 IDuser_idtext
Only include cards owned by this user. You can find user IDs with the List Brex users action.
Cursorcursortext
To get the next page of results, enter the next_cursor value from the previous run.
Limitlimitnumber
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 IDuser_idlist
Only include expenses owned by these users. You can find user IDs with the List Brex users action.
Budget IDbudget_idlist
Filter to expenses charged against these budget IDs.
Parent expense IDparent_expense_idlist
Only include expenses that belong to these parent expenses.
Expense statusexpense_statuslist
Only include expenses with these statuses: DRAFT, SUBMITTED, APPROVED, OUT_OF_POLICY, VOID, CANCELED, SPLIT, or SETTLED.
Payment statuspayment_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 frompurchased_at_starttext
Only include expenses purchased at or after this time (for example, 2026-04-01T00:00:00Z).
Purchase date topurchased_at_endtext
Only include expenses purchased up to this time (for example, 2026-04-30T00:00:00Z).
Extra details to includeexpandlist
Extra details to include with each expense. Options: merchant, location, department, receipts.download_uris, user, budget, payment, spending_entity, policy.
Cursorcursortext
To get the next page of results, enter the next_cursor value from the previous run.
Limitlimitnumber
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

Emailemailtext
Filter to a user by email address.
Remote display IDremote_display_idtext
Filter by the user's ID from your HR or sign-in system.
Cursorcursortext
To get the next page of results, enter the next_cursor value from the previous run.
Limitlimitnumber
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 IDexpense_idtextRequired
The ID of the expense to update. You can find it with the List Brex expenses action.
MemomemotextRequired
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 namereceipt_nametextRequired
Filename including extension (e.g. 'receipt-2026-04-07.pdf').
FilefiletextRequired
The receipt file to upload (PDF, PNG, or JPG). You can attach a file or enter its file path.
Expense IDexpense_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"
}

On this page