Skip to main content
← All posts

Paid It Yourself? Approve Out-of-Pocket Reimbursements Like Any Other Purchase

October 23, 2026 · BuyFlow Team

Someone on the team buys a $240 train ticket for a customer visit, or a $90 cable the day before a demo, on their own card. A week later they post a photo of the receipt in Slack and ask, "can I get this back?" Someone reacts with a thumbs-up. Then the receipt sits in a thread until close, finance asks who approved it, and the employee waits a month for their money.

Out-of-pocket reimbursements are the purchases most likely to skip your approval flow, because the money is already spent. That's exactly why they need the same structure as any other purchase request — just with a few extra fields, and with a clock running.

Why the clock matters (US teams)

In the US, how you run reimbursements decides whether they're tax-free to the employee. The IRS calls a compliant setup an "accountable plan." The IRS summary of the rules boils it down to three requirements from Treasury Regulation 1.62-2:

  1. The expense has a business purpose and connection.
  2. The employee substantiates it to the company within a reasonable period of time.
  3. Any amount paid over the substantiated expense is returned within a reasonable period of time.

Amounts that aren't substantiated or returned in time are reportable on Form W-2 and subject to employment tax withholding, per that same IRS page.

"Reasonable period" has a safe harbor in the regulation itself. Under the fixed date method in 26 CFR 1.62-2(g), an advance made within 30 days of the expense, substantiation within 60 days after the expense is paid or incurred, and a return of any excess within 120 days are all treated as reasonable.

So a receipt that surfaces in a Slack thread three months later isn't just a bookkeeping annoyance. It can fall outside the window your policy relies on. This isn't tax advice — talk to your accountant about your setup — but the practical takeaway is simple: capture the proof and the purpose when the request is made, not when finance goes looking.

Ask before the spend when you can

The cleanest reimbursement is one that was approved before the card came out. If someone knows they'll be buying travel, a conference ticket, or equipment with personal funds, they should open a normal purchase request first and mark it "paying personally, will need reimbursement."

That gets you the same things as any other approval: the right approver, the budget check, the coding. Weel's guide to building a reimbursement process that closes makes the same point — define what needs prior approval, and require pre-approval above a threshold.

Below that threshold, after-the-fact claims are fine. They just need to arrive complete.

What an out-of-pocket request should capture in Slack

Whether it's pre-approved or after the fact, the request should answer the same questions every time. Weel's guide lists the core four — receipt, category, business purpose, and date — and says every submission should answer them before it reaches a manager. For a Slack-first team, we'd add a few more:

  • Amount and currency, as paid.
  • Date of the expense. This starts the 60-day clock above, so it's a field, not a guess from the message timestamp.
  • Business purpose. One sentence a stranger could understand at audit time: "Train to Acme Corp onsite, Oct 14."
  • Receipt attached. Not "I'll send it later." No receipt, no approval.
  • Category / GL account (and class, location, or tracking category if you use them), so it doesn't get recoded at close.
  • Paid personally: yes. This is the flag that tells finance a person is owed money, not a vendor.
  • Linked pre-approval, if there was one, so the approver can see it was already okayed.

Route it to the person who can confirm the business purpose — usually the requester's manager — not straight to finance. Weel's guide is direct on this: finance shouldn't be the approval bottleneck; they're the payment executor. It suggests holding approvers to about three business days.

And the usual rule still applies: nobody approves their own reimbursement.

Book it once in QuickBooks or Xero

The approval is only half the job. The other half is getting the expense into the books without double-counting it.

QuickBooks Online. Intuit's help article on how to reimburse an employee gives two paths: pay now, or record the expense first and pay later. To record it first, you make a journal entry that debits the expense account for the purchase and credits a liability account for the amount owed to the employee, then pay the employee from that liability. The common mistake is coding the purchase to an expense account and then coding the repayment to the same expense account too — that books the cost twice.

Xero. With Xero Expenses, approved claims are automatically turned into bills that you pay from your bank account. If your approval happens in Slack, make sure the claim in Xero matches what was approved, so the bill isn't a second, unreviewed version of the same request.

Either way, the coding the approver saw in Slack should be the coding that lands in the ledger.

Pay on a cycle, and say what it is

People stop asking for permission when they don't know when they'll get paid back. Pick a payment cycle and publish it. Weel's guide calls weekly the standard that balances efficiency with what the team expects.

When the reimbursement goes out, close the loop in the same Slack thread: "Paid Oct 24, $240.00." That one line answers the employee's question, and it gives finance a trail from request to approval to payment.

A short checklist

  • Out-of-pocket spend above your threshold gets a purchase request before the purchase.
  • Every reimbursement request carries amount, date, purpose, receipt, category, and a "paid personally" flag.
  • Requests older than your policy window (60 days is the IRS fixed-date safe harbor for substantiation) get flagged, not quietly approved.
  • The manager approves the purpose; finance books and pays.
  • In QBO, owed-but-unpaid reimbursements sit in a liability account, not a second expense entry. In Xero, the approved claim becomes the bill.
  • Payment happens on a published cycle, and the payment is posted back to the thread.

None of this needs a separate expense app if your purchase approvals already run in Slack. It needs the out-of-pocket case to be a first-class request type instead of a thumbs-up on a receipt photo.