Back to projects
Fintech Payment Platform

Baksis

A peer to peer payment platform built from scratch, designed to handle the full flow of digital transactions, payments and payouts between users.

Among other things, it included a custom transaction engine, wallet system, balance and payment tracking, and real world integrations with payment gateways, payout providers, and banking APIs.

The platform was built without a backend framework, with the core payment logic, transaction handling, integrations, and application architecture implemented from the ground up.

RoleFounder / Lead Engineer
StatusDiscontinued Product
TypeFintech / Payments
Digital Tipping Platform Fintech Payment Processing Payouts & Settlements Banking Integrations Custom Transaction Logic End-to-End Product Development
Baksis peer-to-peer tipping platform mobile screens
Baksis mobile screen 1
Baksis mobile screen 2
Baksis mobile screen 3
Baksis mobile screen 4
Baksis mobile screen 5
Problem

Tipping in Serbia was still overwhelmingly tied to cash, while everyday payments were increasingly moving to cards and phones. That created a simple problem, customers often wanted to leave a tip but had no cash, while service workers had no straightforward way to receive a digital tip directly.

Baksis was created as the first dedicated attempt to solve that problem in the Serbian market giving customers a fast way to tip digitally while creating a system through which those tips could actually reach the people they were intended for.

What looked like a simple consumer interaction, scan, choose an amount, tip, required an entirely new payment and payout model behind it because the existing local infrastructure had not been built around this use case.

What I Built
  • End-to-end digital tipping platform: Built the product from the backend and database through to the customer facing application, payment flows, payouts, and internal operations tools.
  • Custom Python backend: Built without a web framework, including the HTTP server, routing, middleware, request handling, authentication, sessions, validation, and the application’s API layer.
  • React frontend: Built the customer facing application for accounts, wallets, transaction history, payment flows, and account management.
  • Financial data model: Designed the MySQL schema around transaction integrity, auditability, immutable financial history, and reliable tracking of every stage of a payment.
  • Payment gateway integration: Implemented card payment processing, webhook handling, transaction status tracking, and recovery from failed or incomplete payment flows.
  • Payout and banking integrations: Connected the platform to the systems responsible for disbursements, settlements, account verification, and banking operations, including retry and reconciliation logic where external systems were unreliable.
  • Transaction and fee logic: Implemented the rules controlling platform fees, transaction limits, payment states, payout conditions, routing decisions, and operational alerts.
  • Internal operations panel: Built tools for monitoring transactions, managing users, investigating failed payments, manually intervening when necessary, and handling support and day to day platform operations.
Hard Parts

Making the business model work in the real banking system. There was no existing blueprint for launching a tipping platform in Serbia. I had to work directly with banks, payment providers, and other parties to establish how money could legally and technically move through the platform. That included setting up a company specifically for Baksis, coordinating a four-party contractual structure, selecting the payment gateway and payout mechanism, and getting the model through the required approval process.

Turning several financial systems into one payment flow. Taking a tip looked simple from the user's perspective, but behind it were several independent systems, including the payment gateway, transaction processor, payout flow, banking infrastructure, and Baksis itself. Each had different rules and failure modes. I built the logic that connected them and controlled how transactions, platform fees, settlements, and payouts moved through the system.

Working around unreliable financial APIs. Several payment and banking integrations came with outdated documentation, differences between test and production environments, incomplete error responses, and behavior that sometimes had to be established experimentally. Integrations were built defensively, with explicit validation, retries, transaction tracking, and reconciliation rather than assuming the provider would always behave as documented.

Keeping financial data correct when something failed halfway through. Payments create awkward failure states, a payment can succeed while a later payout fails, an external service can time out after actually processing a request, or two wallet operations can happen at the same time. I handled those cases with database locking, idempotent operations, reconciliation jobs, and explicit recovery paths so that an integration failure did not silently create incorrect balances or duplicate transactions.

Owning the application stack without relying on a backend framework. The backend was built in Python without a web framework, so core application infrastructure, including authentication, sessions, CSRF protection, rate limiting, validation, security headers, database interactions, and transaction handling, was designed and implemented directly rather than inherited from a framework.

Tech Stack
Python React MySQL Custom HTTP Server REST / JSON APIs Webhooks Payment & Banking APIs Linux
Business Value
  • Created a workable model for digital tipping in Serbia: Baksis turned a cash dependent interaction into a digital payment flow that could work within the local banking and payment system.
  • Kept control of the business model: Owning the transaction and fee logic meant the product could define its own pricing, payout conditions, and revenue structure instead of being forced into the limitations of an existing payment SaaS product.
  • Built the infrastructure around the product, not the other way around: The payment gateway, banking relationships, payout process, contracts, and internal transaction logic were structured specifically around how Baksis needed to operate.
  • Created knowledge and relationships that were difficult to replicate: Going through the approval process and working directly with banks, processors, and other parties produced practical knowledge of how to launch and operate this kind of fintech product in Serbia, creating a meaningful barrier for anyone trying to build the same thing from scratch.

Let's build something useful.

I'm open to remote contract, part-time or full-time opportunities where the priority is simple: understand the system, find the bottleneck, and start shipping.

Download CV Send message