How We Built a Tool Purchasing App for HVAC Technicians

  • ~5 days from receipt submission to reimbursement
  • ~70% fewer missing receipts at month-end
  • ~$38K/yr reconciled (client's count)

A US HVAC service company had a half-finished Flutter app and technicians still texting photos of receipts to the office. LITSLINK took over the procurement management software development and gave every field technician one place to log tool purchases, submit receipts, and keep their account current.

Three phone screens: the technician's account details, a tool log with the current balance and purchase listed with technician, reference number and status, and a receipt list where each submission is marked accepted or missing

|  

Project Details

The client runs residential and commercial HVAC service across several states in the southeastern US with roughly 120 field technicians. Each technician buys small tools and consumables against a company allowance, then has to prove the purchase to accounts payable. A previous vendor had built about 60% of a Flutter procurement software app for this and walked away, so the client came to us with source code, a deadline, and no clear picture of what actually worked.

CLIENT
Kalos
INDUSTRY
Energy, Field Service / HVAC
SOLUTION
Mobile procurement management app for tool purchases, receipts, and account data
SERVICE
Flutter Development + Full Cycle QA + Maintenance & Support
PLATFORM
Mobile App (iOS, Android)
SCOPE
Flutter app completion, REST API integration, receipt workflow, QA, store release
DURATION
3 months
LOCATION
US

|  

Business Challenge: Modernizing Procurement System for Heating, Ventilation, and Air Conditioning Technicians

A heating, ventilation, and air conditioning technician buys what the job needs on the way to the job. A drill bit at a supply house at 7 a.m., a gauge set the next week, a replacement hammer when the old one stays behind on a roof. Every one of those purchases was a slip of thermal paper in a truck cab, and the purchasing process behind it was a text message to the office. Finance had no spend visibility until the card statement arrived, and technicians had no idea where their tool balance stood. Manual processes like that scale badly past a few dozen people, and the client had 120. Many companies still operate the same way: 30.5% lack a formal procurement process, which creates avoidable inefficiencies.

This case shows what procurement management software development looks like in practice: building a mobile and web app that lets field technicians log purchases, upload receipts, track balances, and route procurement data to finance in real time. It is aimed at companies running field service teams, especially HVAC and energy businesses that need to replace paper receipts and incomplete purchasing workflows with a working digital system.

Clock icon

Half-Built App, Hard Deadline

The inherited Flutter codebase compiled, but receipt submission did not work, purchase history was a placeholder, and some 40 screens sat in different states of done. The client needed a timeline they could trust, then a release date they could hold.

Warning icon

Receipts Lost Between Truck and Office

About one receipt in five never reached accounts payable. Technicians paid out of pocket and waited close to three weeks for reimbursement, while the back office spent around ten hours a week chasing paper and matching it to card charges.

Exchange icon

No Audit Trail for Tool Spend

Nobody could say which technician bought what, when, or whether the purchase fit the budget. Policy compliance came down to memory, and year-end reporting meant rebuilding the procurement data from statements by hand.

|  

Technologies Behind the Procurement Platform

|  

Our Procurement Software Development Solution

The first two weeks went to reading code, not writing it. We audited every screen in the inherited app, marked what worked, what half-worked, and what had to go, then handed the client a list with an estimate against each line. That list became the backlog. It also answered their first question, which was whether to keep the codebase at all. We kept about 80% of it.

Scope stayed deliberately narrow because when teams choose the right procurement management software, the fit has to match the organization’s size and process complexity; here that meant focusing on technician and supervisor workflows. This is a field service mobile app for the technician and their supervisor. A technician opens it to see the tool balance, log a purchase, attach the receipt, and check whether the office has accepted it. The approval side stays where the client already had it, in the back office where purchase requests were already reviewed. The app feeds that workflow instead of replacing it, which is why three people could finish the build in three months.

Four user roles share one backend: technician and supervisor in the Flutter app, accounts payable clerk and admin in the client’s existing office tools. Each role sees a different slice of the same procurement data, and permissions live on the server, so a role change never needs an app update. If you are weighing a similar cross-platform build, our Flutter development team has been shipping on the framework since its first stable release.

01

Personal Account Management

Name, phone, email, and mailing address on one screen, editable in place. The address matters more than it sounds. It is where reimbursement checks go, and wrong addresses were a recurring back-office ticket before launch.

02

Tool Log With Live Balance

Every tool purchase sits in a dated log with technician name, reference number, status, processed date, and amount. The running balance at the top updates the moment a purchase is logged, so a technician knows the budget before the next supply house stop.

03

Receipt Upload and Submission

Snap the receipt, attach it, submit. The app blocks submission with no document attached, which alone shrank the "missing" pile. Files land on the server tagged to the purchase record, ready for invoice matching on the finance side.

04

Status Tracking and Resubmission

Each receipt carries a status: New, Submitted, Missing, Rejected, or Accepted. A rejected receipt can be edited and resubmitted from the same card, and the technician sees the reason without calling anyone.

05

Purchase History and Filters

Six months of purchases, filterable by date, status, and reference number. Technicians use it to check a card charge. Supervisors use it to spot a spending pattern before it becomes a conversation, and the same history can later support centralized supplier information for easier comparison and monitoring of vendor performance.

06

Push Notifications

A status change on the office side reaches the phone within seconds. Rejected receipts stopped sitting unseen for weeks, which turned out to be the single biggest reason the reimbursement cycle got shorter.

Planning a Similar Procurement Development Project?

Request similar solution

— Agile Development Methodology

|  

Procurement Management Software Development Project Journey

The three-month engagement ran in six two-week sprints, and the first one shipped nothing new: it produced the audit of the inherited code and the revised estimate the client had asked for. From sprint two on, each cycle ended with a build installed on the client’s own devices, so their operations lead tested receipt submission on the same Android phones the technicians carried. Every sprint closed on the date it was planned for.

0
Week sprint cycles
0
Sprints completed
0
of sprints delivered on schedule
0
Team members across Flutter, backend, and QA

|  

How the Procurement Management App Works

1
Technician logs a tool purchase
  • After buying at a supply house, the technician adds the item, amount, and reference number. The balance updates on the spot.
2
Receipt gets attached and submitted
  • A photo of the receipt goes onto the record. The app refuses to submit without one, so nothing leaves the phone incomplete.
3
Office reviews against the allowance
  • Accounts payable sees the submission in its existing queue, checks it against the tool budget and the card charge, and marks it accepted or rejected.
4
Status returns to the phone
  • A push notification tells the technician what happened. A rejected receipt shows the reason and can be fixed and resent from the same screen.
5
History stays searchable for both sides
  • Every accepted purchase joins the technician's history, and finance keeps the same record for month-end reporting and audits.

|  

Scrum Process Flow

Taking over half-finished app development is a different job from starting clean, and the two-week cadence was how we kept it honest. Each sprint review put a real build in the client’s hands, so the “is it actually done” question got answered by them rather than by a status report. Two of those reviews changed the receipt flow outright, once to add the mandatory document check and once to let technicians edit a rejected receipt in place.

Phone showing a new purchase form: tool, amount, reference number and supplier, with a photo of the receipt attached and confirmed before the submit button
Inside Each Sprint
Plan Design Develop Test Review
Daily Scrum
15-min sync every morning
Retrospective
Inspect & adapt process
Sprint Review
Demo to stakeholders
Increment
Shippable product update

|  

How We Delivered a Procurement Management Solution

1
Scope & Timeline
  • We define the project goal together, agree on priority features, and set a realistic delivery date and budget.
2
Feature Priorities
  • We build a ranked list of everything the product needs, starting with what matters most to the business.
3
Sprint Kickoff
  • Work is broken into 2-week cycles. At the start of each, we select the next set of features to deliver.
4
Development Cycle
  • The team builds, tests, and integrates features throughout the sprint.
5
Review & Feedback
  • At the end of every sprint, you see working software and give feedback that shapes the next cycle.
6
Delivery
  • Each sprint produces a shippable piece of the product. We review what worked, adjust, and move forward.

|  

UI/UX Design: Intuitive Interface for Procurement Management

The client already had a direction: brand red (#983131), white, and a dark blue (#414259) for text, in a layout the earlier vendor had started. We kept the visual language and fixed the flow. Our product design work here was less about new screens and more about removing steps.

Technicians use the app one-handed, often in a parking lot, sometimes in gloves. So every primary action sits at the bottom of the screen, tap targets run larger than the platform minimum, and the account form stacks labels above the fields instead of hiding them as placeholders, because placeholders vanish the moment you start typing.

The tool log leans on the status word, not just the color. “Missing” and “Rejected” appear as text inside a red outline, “New” as plain text, and an accepted purchase drops the outline entirely. Anyone can read the state at arm’s length without remembering a color code. Amounts and reference numbers sit on their own lines so a technician can match a card charge without opening the record.

One small change did the most work. The submit button used to accept a purchase with no receipt attached, and the office would later mark it “Missing.” We turned that into a blocking error with one plain sentence: “Please upload a document before submitting.” That single rule removed a whole category of back-and-forth between technicians and accounts payable.

Two phones at an angle: the tool log with the current balance and purchases listed by date, and a submission blocked by a dialog asking the user to upload a document first
Phone on a dark background showing the account screen: first and last name, phone, email, city, street address and zip code, each editable, with a change login button at the bottom
Phone showing a rejected receipt: date, payment method and amount at the top, the reason for rejection, a status timeline from submitted to rejected, and an edit and resubmit button

|  

Results

Before

  • ✕Receipts arrived by text, email, or paper, and roughly 1 in 5 never reached accounts payable
  • ✕Reimbursement took close to 3 weeks from purchase to check
  • ✕Technicians learned their tool balance from the monthly statement, after the spending
  • ✕The back office spent around 10 hours a week matching receipts to card charges
  • ✕No searchable purchase history, no audit trail, no way to enforce policy compliance

After

  • ✔~5 days from receipt submission to reimbursement
  • ✔~70% fewer missing receipts, since the app blocks submission without a document
  • ✔Live balance on every technician's phone, with roughly 850 purchases logged a month
  • ✔~4 hours a week of reconciliation on the finance side, down from 10
  • ✔One record per purchase, shared by the technician, the supervisor, and accounts payable
Two phones: a lock screen with a push notification that a receipt was accepted and the new balance, and the purchase history list with supplier, item, amount and status for each entry

Impact of the Procurement Platform After Launch

The money shows up in two places. Reimbursement stopped being a cash-flow problem for technicians, which the client's operations lead credits with fewer complaints and, in her words, fewer people quietly buying less than the job needed. On the finance side, purchases that used to be written off as unmatched, about $38,000 a year by the client's own count, now close against a receipt. Spend visibility arrived as a side effect. For the first time, the client could see tool spend per technician per month and set the allowance from data instead of habit.
The lesson we took from this procurement software development project is about scope. The client had been quoted a full procurement platform with supplier management, purchase orders, and automated approval workflows built in. They did not need it. They needed one technician to be able to prove one purchase from one truck. Building exactly that, in three months, delivered more cost savings than a larger procurement system would have in a year, and it left room to add spend management tools later, once the data existed to justify them.
Spend Visibility
Faster Reimbursement
Audit-Ready Records

Want a purchasing app your field team will actually use?

Contact us

|  

What’s Next

The app handles purchases, receipts, and accounts today. Three items sit on the roadmap:

  • AI Receipt Capture: OCR that reads the vendor, date, and total off the photo and fills the form, so a technician confirms instead of typing.
  • Accounting System Sync: A direct connection to the client’s accounting systems, so an accepted receipt can connect with the wider finance stack and post to accounts payable without a manual re-entry step or a heavy setup.
  • Spend Analytics Dashboard: A web view for finance teams with tool spend by technician, by branch, and by preferred supplier, plus an alert when a balance nears its limit.
Gloved hands holding a phone that scans a paper receipt: the vendor, date and total are highlighted on the photo and filled into the form below, ready to confirm

— Verified Reviews

Our Reputation on Leading Platforms

LITSLINK holds a 4.8 rating on Clutch and GoodFirms, with Top Developer and Top Company badges on both. Clients who write about our mobile and software development work most often mention clear timelines, steady communication, and a willingness to pick up a project someone else started.

Clutch B2B Ratings & Reviews

4.8

78 reviews

Top Developer
GoodFirms Research & Reviews Platform

4.8

32 reviews

Top Company
Behance Creative Portfolio Platform

150+

design projects

View projects

Have a Procurement Project in Mind?

Need procurement management software development for a field service team, or an HVAC technician app? Tell us where the purchases happen and who approves them, and our specialist gets back to you within 48 hours. You can also hire Flutter developers from our team if you already have a product owner and just need hands.

Next steps:
1
LITSLINK specialist reviews your request and contacts you to discuss the details;
2
If needed, we can sign an NDA before moving forward;
3
We send a project proposal – estimates, timeline, and team CVs included;
4
After launch, we stay on for any updates your product needs.
⚡ 48h Response
💙 1540+ Projects

Litslink icon