Agentic expense auditing

Your team sends receipts. Most never reach a human.

Expenze reads every receipt, checks it against your policy, and settles what's clean on its own. Finance sees only the exceptions — with every deduction traced to a line item and a rule.

64%cleared with no human
1credit per receipt
3ways to send one in

WhatsApp · Email · API. No app for your staff to install.

How receipts arrive

Three ways in, one pipeline

Staff use whatever they already have open. Every route lands on the same audit, so the verdict does not depend on how the receipt was sent.

WhatsApp

photograph → send

Staff forward a photo to your Expenze number. Identified by the mobile number they sent from — nothing to install, nothing to log into.

Email

forward → receipts@yourorg

Forward the booking confirmation or the PDF invoice. Identified by the sending address, attachments and inline images both read.

API

POST /v1/receipts

Your travel desk, HRMS or ERP pushes receipts on a person's behalf, identified by staff ID, email or mobile. Same audit, same credit.

Step 1

Read

Vendor, date, currency, every line item, and how many people it covered — or an honest "unknown" rather than a guess.

Step 2

Judge

The model categorises each line. Is that a beverage or a bar tab? That is the judgment worth paying a model for.

Step 3

Apply the rules

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

Step 4

Settle or queue

In policy, it clears. Out of policy or missing a fact, it goes to Finance with the reason already stated.

Who does what

Three roles, and only one of them is a full-time job

Most of your organisation never signs in. They send a receipt and get told what happened.

Solution Owner

Sets the rules

Created automatically for whoever signs the organisation up.

  • Writes and versions expense policy
  • Decides what the agent may settle alone
  • Buys credits and sees the burn rate
  • Appoints Finance Executives
Finance Executive

Works the queue

Administers the system day to day and decides the exceptions.

  • Approves, rejects or queries what the agent flagged
  • Corrects a category or a headcount
  • Manages staff records and identifiers
  • Reads policy, but cannot change it
Staff

Sends receipts

Identified by email address, mobile number, or both.

  • Sends by WhatsApp or email
  • Gets a plain-language answer, not a status code
  • Answers a follow-up when a fact is missing
  • No licence, no seat, no login required

Pricing

You pay per receipt, not per person

Every organisation starts with 50 free trial credits — enough to audit a real week of receipts before deciding anything. After that, one credit is consumed per expense submission, whether it clears automatically or goes to a human. Credits do not expire, and the rate falls as volume rises.

Placeholder rates. Tier sizes are fixed as specified; the USD prices are a proposed volume curve, not a commercial decision. Overwrite them before this page goes anywhere near a customer.
Bundle Credits Price (USD) Per receipt vs. entry rate
What consumes a creditOne receipt submitted, through any channel. A resubmission of the same receipt after a query does not.
What does notSeats, roles, invitations, API keys, storage, or a Finance Executive working the queue.
ExpiryCredits do not expire. Unused balance carries forward indefinitely.
Running outReceipts keep arriving and queue as unprocessed; nothing is lost. Auditing resumes the moment you top up.

For third-party systems

Push a receipt on someone's behalf

Your travel desk, HRMS or ERP submits on behalf of a member of staff. Identify them however your system already knows them.

staff_idYour own unique identifier, if you keep one. Preferred — it survives people changing their phone or email.
emailMatches the staff record's registered address.
mobileE.164 format. The same number used for WhatsApp submissions.
idempotency_keySafe to retry. A repeated key returns the original result and never spends a second credit.
# One receipt, billed as one credit
curl -X POST https://api.expenze.ai/v1/receipts \
  -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"
  }'

# => 202 Accepted
# {   "expense_id": "exp_9f2c...",
#     "status": "auditing",
#     "credits_remaining": 4821  }