That means handling things like webhook verification, payment state, duplicate events, failures, backend validation, and what the application should do after Stripe reports an event.
Working through this in Python and FastAPI changed how I thought about payment integrations.
The goal isn't simply to accept money.
The goal is to build a backend that can reliably understand what happened and respond correctly.
That's a much more interesting engineering problem.
Crenaly: a booking SaaS I designed and built end-to-end for appointment-based businesses in France: salons, barbers, beauty and wellness.
The core idea: when a client cancels, the freed slot is automatically offered to clients who asked for an earlier time. The first to accept gets it, their appointment moves in place, and the slot they leave is offered next. No double booking, no manual work.
Around it, a full product:
→ Branded booking page for each business, embeddable on their own site
→ Mobile-first booking flow, no account needed
→ Agenda, client management, team roles & permissions
→ Verified reviews, analytics, Stripe billing
Automatically offering a cancelled slot to the next client is such a practical feature for salons and barbers. Designing and building Crenaly end to end must have made those flows much tighter.
Business banking is already complex. The product shouldn’t make it feel even harder.
That was the thinking behind Bankora.
Payments, invoices, cash flow, financial overview. These are things business teams deal with constantly, yet many banking products still bury simple actions under dense data, long paths, and complicated navigation.
So I started with the workflows, not the screens.
I looked at the tasks people need to complete most often, where unnecessary steps appear, and what information actually needs attention first.
From there, I built the experience around clearer priorities: key actions available quickly, predictable navigation, structured financial data, and modular UI that makes things like pending and overdue invoices easier to understand at a glance.
I also designed an interactive cash flow calculator to help users see where the business may be heading, not just what has already happened.
The goal wasn’t to make financial operations simpler than they really are.
It was to make interacting with them feel simpler.
Less searching. Less cognitive load. More confidence in what to do next.
And it was especially nice to see Bankora later featured by Contra.