"IAP" The In-App Purchase Journey – Part 1: Intro


Ouch. In-App Purchases (IAP) — also known as “Instant Agony Protocol” — are a true pain in the ass.
Once upon a time, we had a beautiful, well-designed, clearly documented mobile app. Everything was in harmony — code, design, logic — a dev’s little utopia.
Then came the twist:
“Users should be able to buy items.”
Fair enough. I’ve built dozens of apps with third-party payment gateways — Stripe, PayPal, you name it. We scoped the vision, locked the timeline, and moved forward confidently.
But then the client dropped the bomb:
They had to use the official App Store / Play Store IAP system.
I paused, blinked, and thought,
“No big deal. How bad could it be? It’s just another payment gateway… right?”
— Naive me, 72 hours before descending into IAP hell.
💭 What I Thought vs. What Actually Happened
What I expected:
A weekend project with clean documentation and straightforward integration.
What I got:
A month-long odyssey through bureaucratic nightmares, cryptic error messages, and the kind of debugging sessions that make you reconsider your career — and sanity.
🚀 The Journey Ahead
This series will walk you through the complete IAP implementation — the good, the bad, and the “why-is-this-even-a-thing” ugly. This series covers the complete IAP gauntlet:
Part 2: Store Setup – The Bureaucratic Maze
Setting up products in both App Store Connect and Google Play Console sounds simple — until you realize each platform speaks a different language.
We’ll dive into the endless forms, approval purgatory, and the mysterious art of getting test products to actually show up in sandbox mode.
Spoiler alert: “Pending review” will become your least favorite phrase.
Part 3: Ionic Capacitor Implementation – When Plugins Attack
Integrating IAP into Ionic + Capacitor should be plug-and-play, right? Wrong.
We’ll explore the fragmented plugin ecosystem, outdated docs, and the joy of discovering that what works on iOS breaks Android — and vice versa.
Plus: the not-so-universal "purchase flow."
Part 4: The Sync Nightmare – When Reality Hits
Here’s where things get spicy.
Users buy products, but your backend doesn’t know.
Receipts validate but aren’t delivered.
Network failures create zombie transactions.
We’ll tackle:
Receipt validation
Webhook reliability
The dark art of syncing chaotic platforms
Part 5: Admin Features – The Control Room
Nothing says “pro” like giving your client full control without touching App Store dashboards.
We’ll build an admin interface to:
Track purchases
Handle refunds
Manage IAP products
A lifesaver for you, and your client’s support team.
🧯 The Reality Check
If you're about to embark on your own IAP journey, buckle up.
This isn't your average API integration. It’s a multi-platform, multi-store, multi-headache saga that will test your patience, your debugging skills, and possibly your relationship with mobile development.
But once you survive it — and you will — you’ll have conquered one of mobile’s most notorious dragons.
And hey, you’ll have some killer war stories for your next dev meetup.
Coming Soon
🚧 Part 2: Store Setup – The Bureaucratic Maze
💡 As time allows:
I’m building MikaIAP — a full open-source In-App Purchase system using Ionic, NestJS, and MikaForm. Stay tuned for the GitHub release when it’s ready,
Subscribe to my newsletter
Read articles from Fadi Fannoun directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Fadi Fannoun
Fadi Fannoun
Full-stack software engineer with 15+ years of hands-on experience building scalable web and hybrid applications across startups, enterprises, and public institutions. Specialized in Angular, NestJS, and Ionic, with deep expertise in building modular admin systems, CMS integrations, and dynamic form engines. Proven track record in leading cross-functional teams, mentoring developers, and delivering production-ready solutions with a product mindset. Currently focused on launching MikaForm - a dynamic admin panel system with full modularity, multilingual support, and API-first integration.