Skip to content
LENDAGO

Finance

The receipt photographed on the spot, the claim closed without the pile

Receipts collected in a wallet and reached accounting once a month, creased and without context. Half the time spent on claims went into reconstructing who spent what, where and why.

A company with field teams and monthly expense claims

Field Internal finance, field teams
Users Field staff, managers and accounting
Duration 6 weeks to the first month claimed in the application
Our role Analysis, development, training the field team
Technologies Symfony MySQL PWA

Where we started

The part missing from most case studies, and the only one that tells you whether it resembles your own situation.

Field staff paid from their own money or from an advance and collected the receipts. At month end an envelope of paper reached accounting, where someone sorted it, glued it onto sheets and tried to reconstruct the context of each item. Lost thermal receipts were a category of their own: after three weeks in a wallet, half of them were unreadable.

The manager approved the claim at the end, when nothing could be done about it. An expense over the threshold was discovered after it had already been incurred, and the conversation became about the past rather than about the rules.

What was breaking, concretely

  • The context of an expense existed only in the memory of the person who incurred it.
  • Thermal receipts faded before they reached accounting.
  • Threshold overruns showed up at approval, too late to matter.
  • Allocation to a project or cost centre was estimated at month end.

Goals

What the application had to solve

01

The expense should be recorded when it happens, not three weeks later.

02

The document should be saved before it can deteriorate or be lost.

03

A threshold overrun should be flagged before the expense, not after.

04

Accounting should receive the data in the form it already uses, with the documents attached.

What we built

The application, module by module

Not a feature list, but what each piece does and why it was needed.

  1. 01

    Recording from the field

    The person opens the application on their phone, photographs the receipt, picks the category and the project, and types the amount. It takes under a minute and it happens at the till, while the context is still fresh. The application is a PWA: it opens from a link, with no store installation.

    What it covers

    • The receipt photograph, saved to the server immediately
    • The company's own categories and cost centres, not a generic list
    • It works without a signal: the entry syncs when one returns
  2. 02

    Thresholds and approval

    Every category has a threshold, per day or per month. When an expense approaches the limit, the person gets the warning at the moment of entry. Approval goes to the manager, with a value threshold: below it, approval happens at team level; above it, it goes higher.

    What it covers

    • Limits per category, with a warning before they are exceeded
    • Approval by manager and by value threshold
    • The reason for a rejection stays in writing, visible to the person who spent
  3. 03

    Closing the month

    At month end the claim is already assembled: every expense is categorised, approved and has its document attached. The export goes to accounting in the format of the software used there, with the documents in an archive, named after the line they belong to.

    What it covers

    • An export in the accounting software's format
    • An archive of documents, named after their position in the claim
    • Reports by person, by category and by cost centre

Decisions

What we chose and why

The choices that changed the project: where we took the simpler option, where we insisted on the more expensive one, and what would have happened otherwise.

01

The amount is typed by a person, not read from the photo

Automatic recognition of the amount on the receipt was the first requirement. We built it and tested it on real receipts: on creased thermal paper the error rate was high enough to turn every claim into a verification exercise. We removed it. A person types the amount in three seconds and it is certain. The photo stays as a document, which is its real job.

02

A PWA instead of a store app

An app published in the stores would have meant two builds, two review processes, and an update half the people never install. An installable web application opens from a link, updates itself and has camera access. The accepted trade-off: notifications are more limited. It did not matter for this flow.

03

A warning, not a block

We were asked to have the application block expenses over the threshold. We refused and proposed a warning with a mandatory justification. A block in a field application means someone pays anyway and records it elsewhere, and then you learn nothing. A warning keeps the expense in the system and moves the conversation where it belongs.

How the work looks now

No percentages and no hours saved — only what you can see by opening the application.

The claim is no longer assembled at month end, it builds up as it goes. Accounting receives data already categorised, with a legible document attached to every line.

  • The document is saved at the moment of the expense, before it can fade.
  • The context is filled in by the person who incurred it, while they still know it.
  • A threshold overrun appears with a justification, not as a surprise at approval.
  • Allocation to a project happens at source, rather than being estimated at the end.

What we learned

Including what we got wrong

An impressive feature that is sometimes wrong is worse than a mundane one that is never wrong. Automatic amount recognition looked good in a demo and was a problem in daily use.

Rules that block people in the field are not followed, they are worked around. A rule that warns and asks for an explanation stays in force because it stops nobody from doing their job.

Interactive demo

Open the application, not only its story

Six working screens, with navigation and search, available in English and Romanian. The names, companies and figures are demonstrative.

Open the full demo →

Frequently asked questions

What people ask us about this project

If your question is not here, write to us — we answer just as directly.

Ask us a question
Does it work without a signal, out in the field?

Yes. The entry and the photo are saved locally and sync when the connection returns. It was a requirement from the start, because the places without a signal are exactly where most travel expenses happen.

Does it connect to the accounting software?

Here it was done through an export in the format used there, with the documents in an archive. If your software has an integration interface, it can connect directly — we check what it exposes during analysis and only then promise anything.

Who can see other people's expenses?

It is configured per role. In this project, a field worker sees only their own expenses, the manager sees their team's, and accounting sees everything but cannot approve.

Do you recognise anything in the situation above?

Tell us how you work today and where it gets stuck. The first conversation is about you, not about what we did for someone else.