Project Awesome project awesome

Monetization > Inapp Purchase

Features set of 'in app purchase' derived from react-native-iap by dooboolab.

Package 593 stars Archived GitHub

⚠️ This repository has moved to the OpenIAP monorepo. This repository is deprecated and will be archived soon. All future development happens in the monorepo. See the 📢 announcement issue or the discussion thread for details. This repository is deprecated and will be archived soon. All future development happens in the monorepo. Please see the announcement for details.

flutter_inapp_purchase

flutter_inapp_purchase logo

Pub Version Flutter CI OpenIAP Coverage Status License

A comprehensive Flutter plugin for implementing in-app purchases that conforms to the Open IAP specification

Open IAP

📚 Documentation

📖 Visit our comprehensive documentation site →

📦 Installation

dependencies:
  flutter_inapp_purchase: ^8.0.0

🔧 Quick Start

Basic Usage

import 'package:flutter_inapp_purchase/flutter_inapp_purchase.dart';

// Create instance
final iap = FlutterInappPurchase();

// Initialize connection
await iap.initConnection();

// Fetch products with explicit type
final products = await iap.fetchProducts<Product>(
  skus: ['product_id'],
  type: ProductQueryType.InApp,
);

// Request purchase (builder DSL)
await iap.requestPurchaseWithBuilder(
  build: (builder) {
    builder
      ..type = ProductQueryType.InApp
      ..android.skus = ['product_id']
      ..ios.sku = 'product_id';
  },
);

Using with AI Assistants

flutter_inapp_purchase provides AI-friendly documentation for Cursor, GitHub Copilot, Claude, and ChatGPT.

AI Assistants Guide

Quick links:

Development

See CONTRIBUTING.md for development setup and guidelines.

Singleton Usage

For global state management or when you need a shared instance:

// Use singleton instance
final iap = FlutterInappPurchase.instance;
await iap.initConnection();

// The instance is shared across your app
final sameIap = FlutterInappPurchase.instance; // Same instance

Powered by OpenIAP

OpenIAP

flutter_inapp_purchase conforms to the OpenIAP specification — an open, vendor-neutral interoperability standard for in-app purchases. OpenIAP provides:

  • Shared specification — Common types, error codes, and purchase flows across all platforms
  • Generated type-safe bindings — Swift, Kotlin, Dart, and GDScript from a single GraphQL schema
  • Platform implementationsopeniap-apple (StoreKit 2) and openiap-google (Play Billing 8.x)
  • Verification profiles — Standardized receipt validation and purchase verification patterns

Other libraries built on OpenIAP: react-native-iap · expo-iap · kmp-iap · godot-iap

Learn more about the OpenIAP standard →

Sponsors

💼 View Our Sponsors

📄 License

MIT License - see LICENSE file for details.

Back to Flutter