Skip to content
HM
Back to Portfolio

Data Engineering & Automation · Real Case

Data platform for a São Paulo distributor, built on Omie ERP

A full internal data platform on top of Omie ERP — scheduled multi-entity extraction into a Parquet warehouse, and Streamlit apps for pipeline management and self-service reporting, including automated overdue-invoice processing.

01

Overview

Built an end-to-end data platform for a São Paulo-based distributor running entirely on Omie, a Brazilian cloud ERP with no data layer of its own — every report meant exporting spreadsheets by hand, screen by screen, with no history and no automation.

02

The Challenge

Turn a set of manual, error-prone spreadsheet exports into a reliable, auditable data platform — without introducing a database server or ongoing infrastructure the small internal team would have to maintain.

03

The Solution

Built an internal Python library that extracts every relevant entity from the Omie API (sales orders, receivables, clients, products, sellers, categories) on a scheduled cadence into a two-layer Parquet warehouse: a raw layer mirroring the API, and a treated layer with typed, cleaned data. On top of it, two Streamlit apps: one to trigger and monitor extraction pipelines, with jobs running in a background worker that survives closing the browser tab; another for self-service management reports (cash flow, aging, stalled orders) exportable straight to Excel. One report goes beyond reading — it processes overdue invoices end-to-end: detecting and fixing missing tax codes, updating billing dates, and issuing the invoice back through the API, with a clear pending-items export for anything that needs a human.

04

Results & Impact

Reports that used to take hours of manual spreadsheet work now run in minutes and are self-service for finance and sales — no dependency on IT to pull a number. Overdue-invoice handling went from a fully manual finance task to a supervised, automated run with a clear audit trail per order.