iOS In-App Purchases & Subscriptions
HypnoELP monetizes through Apple In-App Purchases. Users buy individual courses, AI credit packs, or subscriptions. All purchases are consumable (can be bought multiple times) except subscriptions.
Product Catalog
Courses (Consumable)
| Product ID | Course | Price |
|---|---|---|
C99ENB |
Intro to Hypnosis | Free |
H01ENB |
Moderation or Abstinence | $20 |
H02ENB |
Quit Smoking and Vaping | $20 |
P01ENB |
Stop Doom Scrolling | $20 |
S01ENB |
Healthy Food Relationship | $20 |
S02ENB |
Restorative Sleep | $20 |
E01ENB |
Shadow Work | $20 |
X99ENB |
Custom Audio | $20 |
Courses are consumable — users can repurchase the same course with a different voice (male/female).
AI Credits (Consumable)
| Product ID | Credits | Price |
|---|---|---|
ai_credits_2500 |
2,500 | TBD |
ai_credits_5000 |
5,000 | TBD |
ai_credits_10000 |
10,000 | TBD |
Credit Types
weekly_limit_credits— Free weekly allowance, resets automaticallybank_limit_credits— Purchased credits, persist until used
Key Files
iOS-side code changes are managed by Sean (not sent to Jaz). Our changes ride on top of Jaz’s codebase.
| File | Purpose |
|---|---|
subscription_service.dart |
StoreKit 2 integration, purchase flow, receipt handling |
subscription_plans_dialog.dart |
UI for displaying plans and triggering purchases |
| App Store Connect | Product configuration, pricing, availability |
Purchase Flow
- User selects course or credit pack in app
subscription_service.dartinitiates StoreKit 2 purchase- Apple processes payment
- App receives transaction receipt
- Receipt verified server-side via Supabase edge function
- Course unlocked or credits added to user’s account
- Handshake sync confirms purchase state between app and server
Server-Side Verification
Purchase receipts are verified through Supabase edge functions (part of the main HypnoELP backend). The server validates the receipt with Apple, then updates the user’s entitlements in the database.
Key tables involved:
- User purchase records
- Credit balances (
weekly_limit_credits,bank_limit_credits) - Course unlock status
iOS Code Ownership
All iOS-side code changes are managed by Sean’s team. Changes ride on top of Jaz’s Flutter codebase. Key modified files are tracked in hypnoelp-ios-changes.md.
App Store Configuration
- Bundle ID:
me.hypnoelp.app - Team: OmelasAI LLC (
33JFY5GB65) - App Store Connect: Managed by Chas
- Pricing: Set in App Store Connect, matches course prices above
Status
Working in production. Course purchases and AI credits functional. Subscription model details managed through App Store Connect.