Client name kept private. Same retail group as the RFID rollout.
The problem
A retail group in Saudi Arabia with more than 110 stores needed its point-of-sale (POS) systems to take card payments through Mada terminals on the Geidea gateway. The POS couldn't talk to the terminals directly, and a payment problem at the till costs money and customer trust immediately, so the integration had to handle failures as well as it handles the happy path.
What I built
A backend service that sits between the POS, the card terminal and the Geidea Mada gateway:
- Secure POS handoff. The POS sends a payment request; the service runs the transaction on the terminal through Geidea's Mada SDK and returns the result to the POS.
- Sales and refunds, plus cancellations and receipt reprints, so store staff can handle everyday cases without calling support.
- Error recovery for failed transactions, so a dropped connection or terminal error doesn't leave a payment in an unknown state.
- Receipts and transaction logs, so any payment can be traced later.
- Per-store configuration and repeatable installs: one build rolled out to every location with its own settings, scripts and an installation guide.
Stack
Python · Geidea Mada SDK · point-of-sale integration · Windows services · logging
What this means for your project
Payment integrations are mostly about the unhappy paths: refunds, cancellations, failed transactions 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.