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.
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.
What does this prompt do?
- 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 do I need to use this?
- 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
How can I customize it?
- 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
FAQs
Can my teammates see each other's expenses?
Do we still need our receipt reminder messages?
What can people attach as a receipt?
Do the memo and category save back to Brex?
Who does the private nudge come from?
Related templates
Search creators for free, shortlist the best with your team, and spend an audit credit only when you decide someone is worth a closer look.
One screen showing invited, completed, and shortlisted counts for every open role, plus the stalled invites that have quietly gone nowhere.
Open one board each morning to see which of your facilities, suppliers and shipping lanes are sitting near trouble in the news right now.
Pick creators from your saved list and see their best and worst Instagram posts side by side, so your brief is built on what actually lands.
One screen where your hiring team watches every unscored candidate, reads the transcript alongside each answer, and scores and shortlists on the spot.
Drag every new company from your Harmonic saved searches through New, Tracking, Meeting and Passed, with a one click diligence brief on every card.
Stop chasing receipts in a spreadsheet.
Give your team one screen where they clear their own undocumented card spend, and give finance the rollup that shows who is still behind.