flutterinapppurchase

August 4, 2026 · View on GitHub

Important

⚠️ This repository has moved to hyodotdev/openiap. flutter_inapp_purchase is now developed in the monorepo at libraries/flutter_inapp_purchase — this repository is archived and read-only.

OpenIAP

📦 This project now lives in the OpenIAP monorepo

flutter_inapp_purchase is actively maintained — development simply moved home.
This repository is archived and kept read-only as history.

🧭 Source codehyodotdev/openiap → libraries/flutter_inapp_purchase
🏠 Monorepohyodotdev/openiap
📚 Docsopeniap.dev/docs/setup/flutter · legacy docs
🐛 Issueshyodotdev/openiap/issues
💬 Q&Aflutter_inapp_purchase discussions

The pub.dev package name is unchanged — flutter pub add flutter_inapp_purchase keeps working as always.

Background: 📢 announcement issue · discussion thread


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 the documentation →

📦 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 · maui-iap · godot-iap

Learn more about the OpenIAP standard →

Sponsors

💼 View Our Sponsors

📄 License

MIT License - see LICENSE file for details.