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
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
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.
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.
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.
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.
UploadImage or PDF of a purchase invoiceExtractAI returns structured dataReviewPrefilled invoice, vendor and duplicate checksSyncStaged, 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