Jay GajjarSenior Software Engineer
All work

Operations and financeDelivered

AI invoice capture

From a photo of an invoice to a checked purchase record, kept in step with the accounting system.

Role
Dedicated developer
Status
Delivered
Stack
PHP 8, CodeIgniter 3, MySQL, OpenAI API, REST APIs
An invoice becomes structured, checked data before anyone saves it.

The challenge

Four businesses needed purchase invoices captured accurately and quickly, inventory and accounting kept consistent with a separate accounting system, and production flows that respect real stock.

The solution

An AI invoice scanner that turns an uploaded image or PDF into structured data and prefills the purchase invoice for review, plus a staged, logged sync with the accounting system.

My role

  • Dedicated developer across four client systems for four months
  • Designed, built and deployed the invoice scanner and the accounting sync

At a glance

Business systems delivered to
4
As dedicated developer
4 months

Challenges and solutions

  1. Reading invoices reliably

    Challenge

    Invoices arrive as photos and PDFs in every layout, and a misread total is worse than no automation.

    Solution

    The AI returns structured data that only prefills the purchase invoice; a person reviews and saves it, so the model speeds work up without being trusted blindly.

    Trade-offOne step stays human, so a misread invoice never posts itself.

  2. Never recording the same invoice twice

    Challenge

    The same invoice can be uploaded again by different people, and new vendors appear all the time.

    Solution

    Likely duplicates are flagged before saving, and new vendors are created from the extracted details.

  3. Syncing with accounting safely

    Challenge

    Accounting data must stay correct even when an integration call fails or data needs mapping first.

    Solution

    Records pass through staging tables and entity mapping before they reach the accounting system, sync behaviour is configurable, and every call is logged.

    Trade-offMore moving parts than a direct call, in exchange for data that can be checked before it reaches the books.

  4. Stock that follows production

    Challenge

    Production orders must draw the right materials and give them back if work is cancelled.

    Solution

    Materials come from scrap stock before general stock, with warehouse reservation and reversal, so stock levels stay true.

What was delivered

  • AI invoice scanning with human review
  • Automatic vendor onboarding and duplicate detection
  • Staged, logged sync with the accounting system
  • Production planning from estimate to manufacturing order
  • Cost pricing driven by bills of materials
  • Documented REST endpoints for purchasing

How it fits together

Four ERP/CRM systems, each run by a separate business, covering purchasing through manufacturing, warehouse and payroll.

  1. UploadImage or PDF of a purchase invoice
  2. ExtractAI returns structured data
  3. ReviewPrefilled invoice, vendor and duplicate checks
  4. SyncStaged, mapped and logged into accounting

Constraints

  • Work inside each business's existing ERP/CRM
  • The accounting system stays the source of record
  • Every business has its own data and settings