Client name kept private.
The problem
A retail group in Saudi Arabia with more than 110 stores needed its existing point-of-sale (POS) software to take card payments through Mada terminals provided by Geidea. The POS could not talk to the terminals directly, and every store needed the same reliable setup.
What I built
A Python payment service that runs alongside the POS on each store machine and acts as the bridge between the POS and the card terminal:
- POS handoff. The POS writes a payment request; the service picks it up, runs the transaction on the terminal through Geidea's Mada SDK, and writes the response back for the POS to read.
- Full payment lifecycle. Purchases, refunds, cancellations and receipt reprints, so store staff can handle the everyday cases without calling support.
- Receipts and logs. Every transaction is logged and its receipt saved, so any payment can be traced later.
- Per-store configuration. Each store's settings live in a config file, so one build can be rolled out to every location.
- Repeatable rollout. Installation scripts and a written installation guide, so the setup can be installed at each store the same way.
Stack
Python · Geidea Mada SDK · Windows services · file-based POS integration · logging
What this means for your project
Payment integrations are mostly about the unhappy paths: refunds, cancellations, reprints and being able to trace what happened. If you need a payment provider connected to an existing system, that's where I put the effort.