Mohammad Jahangir
← All articles
Mohammad Jahangir

Building OCR-Based Expense Processing

How Opperiq turns a photographed receipt into structured expense data in the finance module, removing manual entry from the workflow.

OCRBullMQRedis

The manual step being removed

Before OCR processing, an employee submitting a fuel or supplies receipt meant someone on the finance side manually reading the receipt and typing the amount, vendor, and date into the system. That's slow, and it's exactly the kind of repetitive data-entry task that OCR is well suited to remove — not by replacing the finance team's judgment, but by removing the transcription step before it.

Where OCR fits in the request flow

Receipt images are submitted from the field app, but OCR extraction doesn't happen synchronously in that request — it's handed off to a background job via Redis and BullMQ, the same queueing infrastructure used elsewhere in Opperiq for attendance events and notifications. That keeps the mobile app responsive immediately after a photo is taken, with extracted line-item and expense data appearing in the finance module once processing completes.

Structured output, not just text

The goal isn't raw OCR text — it's structured fields (amount, vendor, date, category) that can populate a finance record directly. That means the extraction step has to parse receipt layout conventions, not just recognize characters, before the data is usable by the finance workflows built on top of it.

Related project

Opperiq

A multi-tenant operating system for field workforces.