Agentic expense auditing

Every receipt audited. Only the arguments reach you.

Expenze reads each receipt line by line, checks it against your policy, and settles what is clean. What is left arrives at Finance with the deduction computed and the rule cited.

1credit per receipt, no per-seat licence
3ways in: WhatsApp, email, API
0apps for your staff to install
THE COPPER TABLE
118 W Adams St, Chicago IL · Aug 14, 2026 · 8:42 PM
Table 12 · Party of 4 · Check 4471
Caesar salad ×232.00food
Grilled salmon ×268.00food
Ribeye 12oz48.00food
Iced tea ×212.00non-alcoholic beverage
House IPA ×218.00alcohol · not reimbursable
Malbec, glass ×222.00alcohol · not reimbursable
Sales tax 8.875%17.75
Gratuity 20%40.00
Check total257.75 Alcohol−40.00 Sales tax, pro rata 20%−3.55 Gratuity, pro rata 20%−8.00
Settled · no human $206.20

Alcohol is not reimbursable under Policy v4 §3.2. Tax and gratuity were charged on the whole check, so the same 20% share comes off each. Paid to J. Okafor, Aug 14, 8:44 PM.

Audited the way the product does it — including the pro rata on tax and gratuity that most expense tools get wrong.

What happens to a receipt

Four steps, and only one of them is a model

Reading a crumpled bill is a job for a model. Deciding what your company owes is not.

Step 1

Read

Vendor, date, currency, every line, and how many people it covered. Handwritten and non-English included — or an honest “unknown”.

Step 2

Judge

Each line is categorised. Soft drink or bar tab? Stationery or hardware? That judgment is what a model is worth paying for.

Step 3

Apply the rules

Deterministic code, not the model, computes the verdict from your policy. The same receipt always produces the same outcome.

Step 4

Settle or queue

In policy, it clears and the sender is told. Out of policy, it reaches Finance with the reason already written.

The question finance asks first

“What happens when it gets one wrong?”

01

The model never decides what you owe

It reads the bill and names the categories. The verdict is computed by deterministic code from your written policy — so the same receipt gives the same answer every time, which is not a property any model has.

02

Every deduction cites a line and a rule

Not a confidence score. The line it came from, the clause it breached, and the arithmetic — as in the check above. Your employee can read it, and so can your auditor.

03

A human can overrule, and is named for it

Approve, correct a category, or reject with a reason that reaches the employee by email and WhatsApp. Every claim records who decided it — the agent, or the person, by name.

04

When it cannot tell, it says so

An unreadable total or a missing headcount is queued, not guessed at. Uncertainty goes to a person.

How receipts arrive

Three ways in, one pipeline

Staff use whatever they already have open, and nobody is trained on anything. Every route lands on the same audit.

WhatsApp

photograph → send

The verdict comes back in the same chat. Matched by the mobile they send from, and only once that number has been verified by its owner.

Email

forward → receipts@expenze.ai

Cab invoices, hotel folios, SaaS bills. Attachments, inline images and PDFs are all read, and the sender gets an acknowledgement.

REST API

POST /intake/api

Your travel desk, HRMS or ERP submits on a person's behalf. Keyed, and safe to retry — a repeated idempotency key returns the original result.

A caption or an email body is read too, so “dinner for four” answers the question a receipt rarely prints.

Control without a bottleneck

Budgets that warn you, not ones that stop your staff

A budget that blocks submissions does not reduce spending — it moves the receipt into a drawer until you find out later. Expenze never refuses a receipt; it tells the people whose job it is to act.

Budgets

Weekly or monthly, organisation-wide with individual overrides, per category or as one cap, and per group. Measured against everything submitted rather than only what has settled, so the figure is not flattering.

Reports

By month and year, by category, group and person, exceptions separated from the routine. Every claim traces to the original image or PDF, kept and viewable.

Roles

A Solution Owner writes policy and buys credits. Finance Executives work the queue. Everyone else just sends receipts — no seat, no licence, no login.

Pricing

You pay per receipt, not per person

Start with 50 free credits. After that one credit per submission, whether it clears on its own or reaches a human. Credits never expire.

Bundle Credits Price Per receipt vs. entry rate

What spends a creditOne receipt, by any channel. A re-send after a query does not, and nor does an API retry carrying the same idempotency key.
What does notSeats, roles, invitations, API keys, storage, budgets, reports, or a Finance Executive working the queue all day.
Running outReceipts keep arriving and queue unprocessed — nothing is lost. Auditing resumes on the ones already waiting the moment you top up.

For the systems you already run

Push a receipt on someone's behalf

staff_idYour own identifier. Survives someone changing their phone or email.
emailMatches the staff record's registered address.
mobileE.164. The same number used for WhatsApp.
idempotency_keyYour key. A repeat returns the original claim and spends no second credit.
AuthorizationA key you issue in the console. Stored hashed, shown once, revocable.
# One receipt, one credit. Your base URL is in
# the console under Channels & API.
curl -X POST $EXPENZE_BASE_URL/intake/api \
  -H "Authorization: Bearer $EXPENZE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "staff_id": "M80-4417",
    "idempotency_key": "trip-8821-dinner",
    "image_url": "https://.../receipt.jpg"
  }'

# => { "submission_id": "sub_9f2c...",
#      "status": "auditing",
#      "credits_remaining": 4821 }

Start

Audit a real week before you decide anything

Fifty credits, no card, no call. Point one week of your actual receipts at it — the messy ones, the handwritten ones, the ones with a bar tab halfway down.

Nothing to installStaff send from WhatsApp or email on day one.
Nothing to migrateWrite your policy, add a few people, start sending.
Nothing to cancelCredits, not a subscription.