R2 Pádel
A padel club's bar till, connected to an analytics app and to Holded, built on the backup the till already made every day.


[01] The Challenge
R2 Pádel's bar runs on Ágora, a hospitality POS, in its Lite edition: no integration module, no API, no export beyond what the till prints. Four and a half years of sales lived in a SQL Server database on one touchscreen PC behind the bar. The club wanted to see what sells, when and at what price, and the day's sales had to reach Holded, its accounting software, without anyone typing them in again.

[02] The Approach
Rather than pay for Ágora's integration module or run code against the live till, AEMEDIA used something the POS already does every day: its own backup. A small scheduled agent on the till sends each new backup to our server over HTTPS, in resumable 2 MB chunks, so the bar's connection can drop mid-upload without losing the day. On the server, a worker restores it on SQL Server Express, runs a set of checks (totals against lines, payments against totals) and loads a clean sales history into PostgreSQL. Nothing is ever deleted, so a reset till can't take the past with it.

- Python
- FastAPI
- PostgreSQL
- SQL Server Express
- React
- Holded API
- Docker
System Integration · Data Pipelines · Analytics App · Accounting Sync · Monitoring
[03] The Solution
On top of that history sits a private, bilingual analytics app (Spanish and English): sales over time against any earlier period, the busiest hours of each weekday, what sells by family and product, card against cash, and a price history that shows what happened to sales after each price change. Every view exports to Excel. From the same data, each closed day becomes one sales receipt in Holded, with a line per product and the day's card and cash payments. Holded rounds VAT line by line and Ágora ticket by ticket, so the sync spreads a few cents across lines until both agree; tested against the full history, every day matches the till to the cent.
[04] Outcome
The analytics app has been in production since October 2026, fed every day by the till's own backup, with monitoring and email alerts if a backup doesn't arrive or a check fails. The Holded sync is built and running against a test company, waiting for the accountant's sign-off before it posts to the real books.

Send us the problem, not a brief.
Three lines are enough: what's broken or missing, what you use today, and when you need it by. One of the two of us replies. There's no form pipeline.
hello@aemedia.es ↗