# Clear your missing Brex receipts and memos in one place

> Everyone opens one screen, sees only their own undocumented card spend oldest first, and attaches a receipt and memo to clear each row.

- Workflow type: app
- Services: Brex, Slack
- Categories: Finance, Operations
- Published: 2026-08-14

## What it does

- Gives each person a personal queue of their own company card charges that are still missing a receipt or a memo, oldest first, with an aging badge so the stalest ones stand out
- Lets them attach the receipt and fill in the memo and category right on the row, and the row clears the moment both are there
- Gives finance and bookkeepers a separate rollup by person and department, with outstanding counts and total undocumented dollars for each
- Adds a button that sends one private Slack nudge to a chosen person, so no one has to chase receipts in a group channel or a spreadsheet

## What you'll need

- A Brex account with company cards in use
- Each person signs in with their own Brex connection, which is what keeps their list limited to their own expenses
- Admin or bookkeeper access in Brex for anyone who should see the company wide finance rollup
- A Slack workspace, if you want the private nudge button in the finance view

## Prompt

Build me an internal app my team opens to clear their own undocumented Brex card spend, so we can retire the receipt chasing spreadsheet. There are two views: a personal cleanup queue that every employee works out of, and a finance rollup for admins and bookkeepers.

The main screen is My Undocumented Expenses. Load the signed in person's card expenses with the Brex List expenses operation, paging through with the cursor until you have the full set, and keep only the ones missing a receipt, missing a memo, or missing both. Sort oldest first. Each row shows the merchant, the transaction date, the formatted amount, and a chip for what is missing: Needs receipt, Needs memo, or both. Put an aging badge on every row driven by days since the transaction, for example green under 7 days, amber 7 to 29, and red at 30 or more. Show a header summary with the count of open rows and the person's total undocumented dollars. Use Get expense to pull full detail when someone expands a row, so the list request stays light.

On each row the person can do two things without leaving the list. First, attach a receipt through a file picker wired to Upload receipt to expense, accepting photos and PDFs, with an inline uploading state and a clear error message on failure. Second, edit the memo and pick a category, saved with Update card expense. Save optimistically, then refresh just that row with Get expense. The moment a row has both a receipt and a memo it clears out of the queue with a brief confirmation and the header counts drop.

The second view is Finance Rollup, for admins and bookkeepers. It reads the same expense data alongside List users and List departments, then groups it two ways: by person and by department. Each person row shows name, department, outstanding item count, total undocumented dollars, and the age of their oldest outstanding item, sorted by dollars descending. Department rows roll their people up the same way. Include a search box and a filter for items older than a chosen number of days.

Every person row in the finance view gets a Nudge button that sends one private Slack DM to that person. Match the Brex user to a Slack account by email using Slack List Users and the email on the Slack profile, open the direct message with Open a Conversation, and post it with Send a Message. Keep the message short and friendly: their outstanding count, their total, and the two or three oldest items. It goes to that one person only, never to a channel. Show a sent confirmation and prevent double sending the same nudge in a session.

Two things to bake in. Brex already scopes List expenses by role, so an ordinary user's connection returns only their own expenses while admins and bookkeepers get everything. The per person view therefore falls out of the connected credential and must not do manual filtering by user; the finance view should degrade gracefully with an explanatory empty state if someone without the right role opens it. Second, Brex returns money as integer minor units plus a currency code, for example an amount of 1000 with currency USD meaning $10.00, so convert and format with the currency everywhere you display it, including the rollup totals and the Slack nudge.

Keep this self service. It is the surface where people fix expenses in place, not a scheduler. Do not build recurring reminders or background jobs; the only outbound message is the manual nudge a finance user clicks.

## How to customize

- Change what counts as undocumented, for example only require a receipt above a certain amount
- Adjust the aging thresholds behind the badge colors, or hide anything from the last few days
- Reword the private nudge, or send it to someone's manager instead of the person who spent

## FAQ

### Can my teammates see each other's expenses?

No. Brex itself decides what each connection can see, so an ordinary employee only ever gets their own card expenses back. Admins and bookkeepers see everything, which is what makes the finance rollup work without anyone setting up filters.

### Do we still need our receipt reminder messages?

They solve different halves of the problem. A reminder tells someone they owe you a receipt; this app is the place they actually go to fix it. Many teams run both, with the reminder linking straight here.

### What can people attach as a receipt?

Photos and PDFs, the same things Brex accepts today. The file goes straight onto the expense in Brex, so there is nothing to re-upload or sync afterwards.

### Do the memo and category save back to Brex?

Yes. Both are written onto the expense record itself, so your month end exports and accounting sync pick them up like any other documented charge.

### Who does the private nudge come from?

It is sent as the finance or bookkeeping person who clicks the button, and it lands as a direct message to one individual. It is never posted to a channel.

Use this prompt in General Input: https://www.generalinput.com/prompts/clear-your-missing-brex-receipts-and-memos-in-one-place