Module 6, Lesson 11: Building Payments and OCR (Phase 3)
How do you build the monetization phase of an app with Claude Code, receipts, payments, and all? You hand Claude Code the whole epic again, let it break the phase into sprints by difficulty, and make the calls it can't make for you: native in-app payment instead of Stripe checkout for App Store compliance, and a cheaper open-source vision model instead of the default OpenAI or Claude Vision recommendation for OCR. You still catch what it can't catch itself, including a login regression a green test run missed. The full walkthrough is in The Product Path.
What does it take to build payments and OCR into an app with Claude Code?
Phase 3 covers three things: a PDF expense report, in-app messaging over WebSocket, and OCR receipt scanning, gated behind a paid tier. You hand the whole phase epic to Claude Code the same way you did in the last lesson, but the decisions get harder here: whether to use Stripe or native in-app payment for App Store compliance, and which AI vision model to pay for on every single receipt scan. Claude Code will recommend the default, easy path. Your job is to know when the default isn't the right call for your app.
Where We Are in the Course
Phase 2, the expense lifecycle, closed out in the last lesson with a working two-user approval flow tested across two emulators. This lesson moves into Phase 3: the monetization phase, where Nurturo gets a PDF expense report, in-app messaging, and OCR receipt scanning behind a paid tier.
Before We Start
From previous lessons:
- Phase 2 is built and closed, with the expense lifecycle tested solo and between two accounts. Module 6, Lesson 10
- You know the pattern for handing over a full epic: review every story and sub-issue, ask clarifying questions before writing code, work by priority. Module 6, Lesson 10
- Your YouTrack Agile board has Phase 3 laid out as an epic with sub-issues for the PDF report, messaging, and payment/OCR work. Module 3, Lessons 7 and 9
Tools / setup you'll need:
- WebStorm, with your backend (API) and mobile frontend modules open
- Claude Code, with your YouTrack MCP connection active, on Opus 5 for this session
- Your Android emulator, up and running
- Your local Postgres instance running through Docker Compose
- An API key from an inference provider for the OCR vision model. Novita AI or Groq both work; either one gives you access to open-source models at a fraction of the cost of OpenAI or Claude
By the end of this lesson, you'll:
- Have handed Claude Code the Phase 3 epic and let it break the phase into sprints by difficulty
- Have chosen native in-app payment over a Stripe checkout webview, and know why that choice matters for App Store approval
- Have caught a login regression by testing manually, reported it with a screenshot, and had it fixed without losing your place in the build
- Have pushed back on the default AI vision model recommendation and had Claude Code research a cheaper open-source alternative instead
- Have wired up an API key the safe way, through an env file instead of pasting it into the chat
About This Lesson
Duration: ~19 minutes video
Skill Level: Advanced
What You'll Build: The PDF expense report, WebSocket messaging, and the OCR receipt-scanning pipeline for Nurturo, plus the groundwork for in-app payment.
This is the phase where the app starts asking for real decisions, not just implementation. Stripe or native payment. The default AI model or a cheaper one you have to go find yourself. I also hit a real regression this lesson, a login loop that only showed up once I started testing by hand, which is exactly the kind of thing an automated test run won't catch.