Petty cash log in SharePoint: spends, receipt photos and approvals
Short answer: make one SharePoint list where every petty cash movement gets one row. A row has a date, an amount, a type (spend or top-up), a reason, a receipt photo and an approver. Then add saved views for pending items and for totals, so you can see the cash balance without a hand-kept page. This guide is a how-to for a tracking log. It is not accounting advice. Follow your own policy for limits, receipts and who may approve.
What this log is for
Petty cash is a small amount of cash kept for small costs. A paper log book or a loose spreadsheet can work for a while. The trouble starts when the book is locked in a drawer, the receipt is in a coat pocket, and nobody can say what the balance should be today.
A list in Microsoft 365 gives you one shared place. Each spend is its own row. The receipt photo sits on the row. The approver is named on the row. A view shows what still needs approval. Another view shows totals.
The log records what happened. It does not decide how much cash you may hold, what needs a receipt or who may sign off. Those rules come from your own policy. Ask the right person in your organization, then build the list to match.
Before you start
Make three choices now. They are easier to make before you have 200 rows.
- Who adds a row. One way to start is to let the person who spent the cash add the row the same day.
- Who approves. Pick one named person, plus one backup for days when they are away.
- What counts as a top-up. A top-up is cash added to the box. Log it as its own row, so the balance can be worked out from the list.
Write one sentence that says what goes in the log. For example: "Every time cash leaves or enters the petty cash box."
Step 1. Create the list
- Open https://www.microsoft365.com and go to the SharePoint site for your team, or open the Lists app from there.
- Choose the option to create a new list.
- Start from blank.
- Name it "Petty cash log".
Exact menu names may differ in your tenant. Microsoft's page on creating a list has the click-by-click steps if your screen looks different.
Step 2. Add the columns
Columns are the fields on each row. Here is one way to start:
- Title (the list has this by default). Use it for a short reason, such as "Printer paper". Title is required by default; rename it or turn off Require. You can rename it to "What was it for".
- Date (type: Date and time, date only). The date the cash moved.
- Type (type: Choice). Choices: 1 Spend, 2 Top-up. The number prefixes keep your order. A Choice column sorts by its text, so the prefix is what holds the order you want.
- Amount (type: Currency). Microsoft says: "Use this column field type to store monetary values." Enter every amount as a plain positive number. The Type column says whether it went out or came in.
- Category (type: Choice). Example choices: Office, Cleaning, Postage, Refreshments, Other.
- Receipt photo (type: Image). Microsoft says: "Use to add a single image file from your device to an item in a list or a library." That means one photo per row. If a spend has two receipts, put two photos in one picture, or add a second Image column.
- Spent by (type: Person or Group). Limit it to one person.
- Approver (type: Person or Group). Limit it to one person.
- Status (type: Choice). Choices: 1 Pending, 2 Approved, 3 Rejected. Set the default value to 1 Pending. A blank Status hides rows from status views, so a default prevents that. Microsoft says: "A default value is the selection that appears automatically when someone adds a new item."
- Approver note (type: Multiple lines of text). A short reason if a row is rejected.
Make Date, Type, Amount, Spent by and Approver required. Leave the rest optional so logging stays quick. A person who enters the spend should not be the same person who approves it. That is our advice, not a Microsoft rule. Your policy may say something different.
Step 3. Add sample rows to test it
Before you tell the team, add four test rows. Mark them as tests and delete them afterward. Here is a set:
- Title: Opening float. Type: 2 Top-up. Amount: 200.00. Status: 2 Approved.
- Title: Printer paper. Type: 1 Spend. Amount: 18.40. Status: 2 Approved.
- Title: Postage stamps. Type: 1 Spend. Amount: 9.60. Status: 1 Pending.
- Title: Window cleaner. Type: 1 Spend. Amount: 6.25. Status: 3 Rejected.
Work out the answer by hand. Counting approved rows only: 200.00 minus 18.40 leaves 181.60. Your policy decides whether pending rows count. A test with a known answer lets you check your views in Step 5.
Step 4. Decide how to work out the balance
A calculated column cannot add up other rows. Microsoft says: "Note that the formula in a calculated column can only reference other columns in the same list or library." So a running balance column on each row is not possible with a calculated column. Use a view with totals instead.
Microsoft says the Totals setting of a view "Displays summary calculations for the columns in the view, such as: count, average, maximum, minimum." Check your view's Totals menu for what it offers on a Currency column.
One way to start:
- Make a view that shows only top-ups. Show the total of Amount.
- Make a view that shows only approved spends. Show the total of Amount.
- Balance = top-ups total minus approved spends total. Write the two totals on a sticky note, or put them in the list description.
Totals are part of each view. A total set in one view does not show in another view.
Step 5. Build the views
Microsoft says views let you organize, sort, filter and group list data. A saved view means no one has to set filters each time. On a screen it can look like this:
- Pending approval. In the classic view editor (Edit current view, then Filters), set Status is equal to 1 Pending. Sort by Date, ascending. This is the view the approver opens first.
- Top-ups. In the classic view editor, set Type is equal to 2 Top-up. Show the total of Amount.
- Approved spends. In the classic view editor, set Type is equal to 1 Spend, And Status is equal to 2 Approved. Show the total of Amount.
- My entries. Microsoft's page says a filter can use "[Me] to show items for the user of the view." In the classic view editor, set Spent by is equal to [Me]. [Today] and [Me] filters need the classic view editor.
- This month. Use a date range, not one date. In the classic view editor, set Date is greater than or equal to the first day of the month, And Date is less than the first day of next month. Change the two dates each month.
Our advice, not a Microsoft rule: set blank and "is not equal to" filters in the classic view editor too.
Views are not security. A view only changes what is shown. A person who can open the list can still reach every row. If some rows must be private, see "People see only their own items".
Step 6. Add an approval step
You can use the Status column by hand: the approver opens the Pending approval view, checks the receipt photo and changes Status. That is enough to start.
If you want a message to go to the approver when a new row is added, a Power Automate flow can send it. For a full build, see "Expense approval in SharePoint". Do not build a flow that changes the same row it triggers on without a guard. See "Power Automate flow keeps running itself over and over".
Count the cash on a schedule
The list shows what the box should hold. It cannot see the box. One way to start is to count the cash on a fixed day each week and compare it with the balance from Step 4. If they differ, ask your approver how your policy wants the gap recorded, then add a row that says so in plain words.
What to avoid
- Do not skip the Title. A required Title with no good name leads to rows named "stuff". Rename it to "What was it for".
- Do not let a blank Status in. Set the default value, so every new row shows in the Pending approval view.
- Do not enter negative amounts for spends. One sign rule is easier to total than two.
- Do not rely on a view to hide rows. Views are not security.
- Do not edit rows after approval without a note. Use the Approver note column.
- Do not put card numbers or bank details in the log.
Honest limits
A list does not stop someone from entering a wrong amount. It makes the entry visible, with a photo and a name next to it. The balance in Step 4 is only as good as the rows. Also, a list is not a cash box: if cash leaves without a row, the list will not know. Start with one box and one approver, and fix what does not work before you add more boxes.
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
Can SharePoint show a running balance on each row?
Not with a calculated column. Microsoft says: "Note that the formula in a calculated column can only reference other columns in the same list or library." Use views with totals for top-ups and approved spends, then subtract.
How do I attach a receipt photo?
Add an Image column. Microsoft says it is used "to add a single image file from your device to an item in a list or a library." That gives one photo per row.
Why use a Currency column and not Number?
Microsoft says Currency is "to store monetary values" and Number is for "numerical values that aren't monetary values." Use Currency for amounts. Our advice: if you need to show an amount through a lookup, use Number, because a lookup cannot show a Currency column.
Who should approve a spend?
Your policy decides. One way to start is one named approver and one backup, and a rule that the person who spent the cash does not approve it.
Can I hide petty cash rows from some people?
A view does not hide anything from people who can open the list. If rows must be private, change the permissions. See the guide on people seeing only their own items.
Sources
- Microsoft Support, List and library column types and options
- Microsoft Support, Create, change, or delete a view of a list or library
- Microsoft Support, Create a list