The Problem We Were Actually Solving
We were trying to sell digital products online, but our target audience was living in countries where certain payment processors were blocked. Countries like Iran, North Korea, and Syria were off-limits for big payment processors like PayPal and Stripe. We needed to find a solution that worked not just technically, but also from a regulatory standpoint. Our users needed to be able to purchase and sell digital products without relying on intermediary services that could freeze their funds or block their accounts.
What We Tried First (And Why It Failed)
My initial assumption was that using cryptocurrency like Bitcoin or Ethereum would solve the problem. Cryptocurrencies were decentralized, which meant that no single entity could block or freeze transactions. Sounds perfect for our use case. But the reality was that using cryptocurrency required users to create and manage their own wallets, which added an unnecessary layer of complexity to our platform. We would need to create a cryptocurrency exchange, or at least integrate with existing ones, which would have added an immense amount of technical debt. Moreover, the volatility of cryptocurrencies made it difficult to accurately display prices and handle refunds. We decided to abandon this approach after six weeks of development and testing, with a loss of around 10,000 USD in development costs.
The Architecture Decision
We decided to use a combination of localized payment gateways and direct bank transfers to bypass the big payment processors. We started by integrating with localized payment gateways in each country, such as Yookassa in Russia or Paytm in India. These gateways would allow users to purchase and sell digital products using their local currencies. For countries where these gateways did not exist, we implemented direct bank transfers using APIs like Swift or IBAN. This approach required us to design a custom payment routing system that could negotiate with multiple payment gateways and banks programmatically. We also had to deal with issues like handling multiple currencies, exchange rates, and payment schedules. The technical debt was still high, but we were able to keep it manageable by breaking it down into smaller, more focused projects.
What The Numbers Said After
By integrating localized payment gateways and direct bank transfers, we were able to increase our transaction volume by 300% within the first three months of launch. Our user engagement also increased by 50%, as users were able to make purchases and sell their digital products without reliance on intermediary services. Our MRR also increased by 150%, which offset the development costs of our payment system.
What I Would Do Differently
If I were to do this again, I would focus on building a more flexible payment routing system using cloud-based APIs and services. We used a monolithic architecture to handle payment routing, which made it difficult to scale and maintain. I would also invest more time in researching and integrating localized payment gateways, as this would have saved us significant amounts of time and resources. Additionally, I would implement more robust error handling and analytics for our payment system, which would have helped us identify and resolve issues sooner.
Top comments (0)