technologies: Kotlin, Spring boot, AWS ECS, .net, Flutter, Grafana
problem: gaps in payment method support for restaurant clients
A leading point-of-sale vendor needed to expand their payment offering as part of a broader POS legacy system modernization. The goal was to support a wider range of secure payment options, including benefit cards, employee meal cards and loyalty programs, alongside traditional methods like cash and credit cards.
the solution: new payment providers integrated into the POS
We centered this POS integration around major benefit cards and loyalty cards in the Israeli market, where our client operates, including payment providers such as Multipass, Verifone, Cibus, and Value Card.
To meet the client's needs, we built a comprehensive integration that connected their iPad-based POS systems with various payment providers via a real-time API. This allowed restaurant staff to offer a seamless checkout experience – customers could now select their preferred payment method, including benefit cards, and the system would automatically apply relevant discounts or benefits.
Technically, the integration works by sending a charge request from the POS to the external payment provider’s API, debiting the customer’s account with the order amount. The system then uses the provider’s response to update the payment status within the POS.
challenges: priorities, documentation gaps, and payment logic variations
One of the first challenges was strategic: with plans to integrate with five different payment providers, we had to prioritize carefully. We worked closely with the client to identify the most critical payment providers for their restaurant clients and started implementation there, ensuring maximum value early in the project.
A significant hurdle was the limited or inconsistent technical documentation from some of the third-party payment providers. While a few partners offered robust, well-documented APIs, others required a more hands-on approach. We engaged in extensive, thoughtful email correspondence with provider support teams to clarify edge cases.
We also faced the challenge of unifying payment logic and mapping discounts and confirmations across all third-parties. Each payment provider had a slightly different process flow, response format, and timing. To maintain a consistent user experience and back-end reporting logic, we had to adapt our internal system to normalize these differences. It ensured that every transaction, regardless of provider, was correctly processed, recorded, and confirmed.
To solve this, we developed for the POS system a dedicated microservice responsible for managing communication with external payment providers. This service acted as a proxy layer, handling request formatting, authentication, and response parsing. We also built a lightweight service that mapped the local order data into a standardized payment request format and routed it through the microservice. This architecture not only simplified the client-side logic but also made it easier to scale and onboard new providers over time.
the results: increased redemptions and strengthened market position
The impact of the integration was clear almost immediately. In just the first month after launch, meal redemptions through benefit cards rose by 35%, indicating strong user adoption and improved convenience for customers.
By the end of the implementation, restaurants gained access to a broader set of payment options beyond the usual methods. This added flexibility not only improved the customer experience but also strengthened our client’s position in the highly competitive point-of-sale market.