PackageTrack
Sign in Get early access

flutter_inapp_purchase

In App Purchase plugin for flutter. This project has been forked by react-native-iap and we are willing to share same experience with that on react-native.

10.3.2 6.8K downloads/mo #3448 most downloaded on pub.dev hyodotdev/openiap

What this package is like to depend on

Last release 2 days ago

21 Aug 2026

Ships fairly regularly

a new release about every 2 weeks

Most releases are documented

notes for 182 of 215 stable releases

3 versions withdrawn

withdrawn after publishing

8 years old

227 releases · first in 2018

102 releases in the last 12 months

see the full history below

Release timeline

227 releases · Aug 2018 to Aug 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 227
  1. 10.3.2 21 Aug 2026
    Release notes

    flutter_inapp_purchase 10.3.2

    Flutter plugin for the OpenIAP specification.

    What's Changed

    Installation

    # pubspec.yaml
    dependencies:
      flutter_inapp_purchase: ^10.3.2
    flutter pub get

    Documentation

    Links

    Open source →
    Release notes
    • chore(release): [email protected]
    • fix: improve purchase diagnostics (#373)
    • ci: skip native matrices for docs-only changes (#363)
    • docs: refresh amazon and iapkit surfaces (#361)
    • fix(security): harden release supply chain (#343)
    • chore(release): standardize version commits
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  2. 10.3.1 14 Aug 2026
    Release notes
    • chore(google): bump version to 3.3.1
    • chore(apple): bump version to 3.2.1
    • fix: harden SDK compatibility and UI surfaces (#333)
    • fix: harden iapkit response compatibility
    • feat(conformance): add versioned conformance suite and fix entitlement defects (#316)
    • feat(docs): live ecosystem diagram, Migration page rename, collapsible sidebar (#315)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
    Release notes

    flutter_inapp_purchase 10.3.1

    Compare

    Choose a tag to compare

    Open source →
  3. 10.3.0 11 Aug 2026
    Release notes
    • chore(google): bump version to 3.3.0
    • chore(apple): bump version to 3.2.0
    • fix(kit): harden store verification integrity (#313)
    • docs: formalize community service and governance
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  4. 10.2.4 11 Aug 2026
    Release notes
    • chore(google): bump version to 3.2.3
    • fix(google): avoid r8 billing reflection (#309)
    • test: enforce 90 percent SDK coverage (#308)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  5. 10.2.3 10 Aug 2026
    Release notes
    • ci: configure monorepo coverage reporting (#306)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  6. 10.2.2 10 Aug 2026
    Release notes
    • chore(google): bump version to 3.2.2
    • fix(google): restore Kotlin consumer compatibility (#305)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  7. 10.2.1 10 Aug 2026 withdrawn
    Release notes
    • chore(google): bump version to 3.2.1
    • chore(apple): bump version to 3.1.1
    • fix: harden store API follow-up
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  8. 10.2.0 09 Aug 2026 withdrawn
    Release notes
    • chore(google): bump version to 3.2.0
    • chore(apple): bump version to 3.1.0
    • fix: modernize store API integrations (#299)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  9. 10.1.0 08 Aug 2026 withdrawn
    Release notes
    • fix: harden remaining dependency release CI (#298)
    • chore(google): bump version to 3.1.0
    • chore: modernize library dependencies (#294)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  10. 10.0.1 03 Aug 2026
    Release notes
    • chore(google): bump version to 3.0.1
    • chore(apple): bump version to 3.0.1
    • feat(google): expose amazon userId and marketplace on purchases (#275)
    • fix(google): fall back to token for blank horizon order ids (#278)
    • fix: preserve purchase query failures across sdks (#276)
    • fix: ship app store-safe apple artifacts (#265)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  11. 10.0.0 30 Jul 2026
    Release notes
    • chore(google): bump version to 3.0.0
    • chore(apple): bump version to 3.0.0
    • refactor(api)!: remove legacy compatibility (#256)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  12. 9.6.2 27 Jul 2026
    Release notes
    • chore(google): bump version to 2.5.2
    • fix(google): reconcile ambiguous purchase errors (#257)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  13. 9.6.1 26 Jul 2026
    Release notes
    • chore(google): bump version to 2.5.1
    • chore(apple): bump version to 2.4.4
    • feat(kit): add scoped publishable and secret keys
    • fix(android): support API 23 warning sets (#253)
    • chore(apple): bump version to 2.4.3
    • fix: preserve native purchase payloads across SDKs (#252)
    • fix: preserve Flutter payloads and warn before legacy removals (#251)
    • fix(release): derive spec from native version floor
    • refactor(gql): enforce generated contract SSOT (#250)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  14. 9.6.0 23 Jul 2026
    Release notes
    • chore(google): bump version to 2.5.0
    • chore(apple): bump version to 2.4.2
    • feat(iap): add Android offer code redemption across SDKs (#243)
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  15. 9.5.1 16 Jul 2026
    Release notes
    • No direct Flutter package changes found between releases; this release picks up the latest OpenIAP native package updates.
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  16. 9.5.0 13 Jul 2026
    Release notes
    • No direct Flutter package changes found between releases; this release picks up the latest OpenIAP native package updates.
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  17. 9.4.1 12 Jul 2026
    Release notes
    • No direct Flutter package changes found between releases; this release picks up the latest OpenIAP native package updates.
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  18. 9.4.0 11 Jul 2026
    Release notes
    • No direct Flutter package changes found between releases; this release picks up the latest OpenIAP native package updates.
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases

    Flutter keeps this file for pub.dev, while detailed release history remains centralized in the OpenIAP release notes and GitHub Releases.

    • Consolidated release notes: https://openiap.dev/docs/updates/releases
    • Flutter package releases: https://github.com/hyodotdev/openiap/releases?q=flutter-iap&expanded=true
    Open source →
  19. 9.4.0-rc.3 05 Jul 2026 pre-release
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.4.0-rc.3
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  20. 9.4.0-rc.2 05 Jul 2026 pre-release
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.4.0-rc.2
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  21. 9.4.0-rc.1 02 Jul 2026 pre-release

    Nothing published for this version

  22. 9.3.7 01 Jul 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.7
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  23. 9.3.6 27 Jun 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.6
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  24. 9.3.5 25 Jun 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.5
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  25. 9.3.4 23 Jun 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.4
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  26. 9.3.3 23 Jun 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.3
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  27. 9.3.2 11 Jun 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.2
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  28. 9.3.1 19 May 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.1
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  29. 9.3.0 16 May 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.3.0
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  30. 9.2.8 13 May 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.8
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  31. 9.2.7 08 May 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.7
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  32. 9.2.6 08 May 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.6
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  33. 9.2.5 07 May 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.5
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  34. 9.2.4 04 May 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.4
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  35. 9.2.3 24 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.3
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  36. 9.2.2 24 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.2
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  37. 9.2.1 16 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.1
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  38. 9.2.0 16 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.2.0
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  39. 9.1.0 15 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.1.0
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  40. 9.0.3 15 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.0.3
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  41. 9.0.2 14 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.0.2
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  42. 9.0.1 14 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.0.1
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  43. 9.0.0 11 Apr 2026
    Release notes
    • See the Flutter GitHub Release for package-specific changes: https://github.com/hyodotdev/openiap/releases/tag/flutter-iap-9.0.0
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  44. 9.0.0-rc.1 10 Apr 2026 pre-release
    Release notes
    • See the Flutter release tag for the source snapshot: https://github.com/hyodotdev/openiap/tree/flutter-iap-9.0.0-rc.1
    • See the consolidated OpenIAP release notes: https://openiap.dev/docs/updates/releases
    Open source →
  45. 8.2.8 27 Feb 2026
    Release notes
    • ci: add automated deploy workflow for pub.dev (#622)
    • fix: map PlatformException to proper ErrorCode in all methods (#621)
    • chore: update openiap apple to 1.3.15 (#618)

    CHANGELOG

    Open source →
  46. 8.2.7 11 Feb 2026
    Release notes

    Bug Fixes

    • subscriptionOffers Parsing for iOS: Fixed ProductSubscriptionIOS.subscriptionOffers always being null even though the native OpenIAP layer returned the data correctly
    • Safe Numeric Parsing: Added _toDouble and _toInt helpers to handle both num and String inputs from platform channels, preventing runtime TypeErrors
    Open source →
  47. 8.2.6 11 Feb 2026
    Release notes

    New Features

    • InstallmentPlanDetailsAndroid (Billing Library 7.0+): Subscription installment plan details for plans that allow users to pay in installments
    • PendingPurchaseUpdateAndroid (Billing Library 5.0+): Details about pending subscription upgrades/downgrades
    • purchaseOptionIdAndroid: New field on DiscountOffer to identify which purchase option the user selected

    Dependencies

    • Updated OpenIAP versions:
      • openiap-gql: 1.3.16 -> 1.3.17
      • openiap-google: 1.3.27 -> 1.3.28
    Open source →
  48. 8.2.5 25 Jan 2026
    Release notes

    New Features

    • ExternalPurchaseCustomLink API (iOS 18.1+): Support for Apple's custom external purchase links
      • isEligibleForExternalPurchaseCustomLinkIOS() - Check eligibility
      • getExternalPurchaseCustomLinkTokenIOS() - Get token for reporting
      • showExternalPurchaseCustomLinkNoticeIOS() - Show disclosure notice

    Dependencies

    • Updated OpenIAP versions:
      • openiap-apple: 1.3.13 -> 1.3.14
      • openiap-gql: 1.3.15 -> 1.3.16
    Open source →
  49. 8.2.4 20 Jan 2026
    Release notes

    Dependencies

    • Updated OpenIAP versions:
      • openiap-google: 1.3.26 -> 1.3.27
    Open source →
  50. 8.2.3 20 Jan 2026
    Release notes

    New Features

    • One-Time Purchase Discounts (Android 8.0+): Added offerToken field to RequestPurchaseAndroidProps for applying discounts to non-subscription purchases

    Breaking Changes

    • Simplified Android Field Names: Input fields in Android-specific request props now use simplified names without redundant Android suffix:
      • obfuscatedAccountIdAndroid -> obfuscatedAccountId
      • obfuscatedProfileIdAndroid -> obfuscatedProfileId
      • purchaseTokenAndroid -> purchaseToken
      • replacementModeAndroid -> replacementMode

    Dependencies

    • Updated OpenIAP versions:
      • openiap-apple: 1.3.12 -> 1.3.13
      • openiap-gql: 1.3.14 -> 1.3.15
      • openiap-google: 1.3.25 -> 1.3.26
    Open source →
  51. 8.2.2 18 Jan 2026
    Release notes

    New Features

    • Win-Back Offers (iOS 18+): Re-engage churned subscribers with discounts or free trials via WinBackOfferInputIOS
    • JWS Promotional Offers (iOS 15+): Simplified JWS format for promotional offers via PromotionalOfferJWSInputIOS
    • Introductory Offer Eligibility Override (iOS 15+): Override system-determined eligibility with introductoryOfferEligibility
    • Product Status Codes (Android 8.0+): ProductStatusAndroid enum for product fetch results (Ok, NotFound, NoOffersAvailable, Unknown)
    • Suspended Subscriptions (Android 8.1+): includeSuspendedAndroid option and isSuspendedAndroid field
    • Sub-Response Codes (Android 8.0+): SubResponseCodeAndroid for granular error information via BillingResultAndroid

    New Types

    • ProductStatusAndroid - Product fetch status enum
    • SubResponseCodeAndroid - Detailed error codes enum
    • SubscriptionOfferTypeIOS.WinBack - Win-back offer type
    • WinBackOfferInputIOS - Win-back offer configuration
    • PromotionalOfferJWSInputIOS - JWS promotional offer input
    • BillingResultAndroid - Extended billing result with sub-response code

    Breaking Changes

    • Subscription-Only Fields Moved (iOS): winBackOffer, promotionalOfferJWS, introductoryOfferEligibility removed from RequestPurchaseIosProps, now only in RequestSubscriptionIosProps

    Dependencies

    • Updated OpenIAP versions:
      • openiap-apple: 1.3.10 -> 1.3.13
      • openiap-gql: 1.3.12 -> 1.3.14
      • openiap-google: 1.3.23 -> 1.3.25
    Open source →
  52. 8.2.1 17 Jan 2026
    Release notes

    New Features

    • Cross-platform Offer Types: Added standardized DiscountOffer and SubscriptionOffer types for cross-platform compatibility
    • Item-level Subscription Replacement (Android 8.1.0+): Added subscriptionProductReplacementParams support as alternative to deprecated replacementModeAndroid

    Improvements

    • Code Generator: Simplified enum fromJson using normalized value matching, removed redundant .map((e) => e).toList() for scalar lists

    Dependencies

    • Updated OpenIAP versions:
      • openiap-apple: 1.3.9 -> 1.3.10
      • openiap-gql: 1.3.11 -> 1.3.12
      • openiap-google: 1.3.22 -> 1.3.23
    Open source →
  53. 8.2.0 29 Dec 2025
    Release notes

    Breaking Changes

    • Parameter naming: RequestPurchaseProps.inApp() and RequestPurchaseProps.subs() now use apple/google fields instead of ios/android

      • This aligns with the OpenIAP GQL schema
      • The type generation script now dynamically reads field names from the schema
      // Before (8.1.x)
      RequestPurchaseProps.inApp((
        ios: RequestPurchaseIosProps(sku: 'product_id'),
        android: RequestPurchaseAndroidProps(skus: ['product_id']),
      ))
      
      // After (8.2.0)
      RequestPurchaseProps.inApp((
        apple: RequestPurchaseIosProps(sku: 'product_id'),
        google: RequestPurchaseAndroidProps(skus: ['product_id']),
        useAlternativeBilling: null,
      ))
      

    Deprecated

    • AlternativeBillingModeAndroid: Use BillingProgramAndroid instead

      • AlternativeBillingModeAndroid.alternativeOnly -> BillingProgramAndroid.ExternalOffer
      • AlternativeBillingModeAndroid.userChoice -> BillingProgramAndroid.UserChoiceBilling
    • alternativeBillingModeAndroid parameter: Use enableBillingProgramAndroid in initConnection() instead

    Dependencies

    • Updated OpenIAP versions:
      • openiap-gql: 1.3.10 -> 1.3.11
    Open source →
  54. 8.1.2 28 Dec 2025
    Release notes

    New Features

    • External Payments Program (Android 8.3.0+, Japan Only): Support for Google Play Billing Library 8.3.0's External Payments program

      • Presents a side-by-side choice between Google Play Billing and the developer's external payment option directly in the purchase flow
      • New BillingProgramAndroid.ExternalPayments billing program type
      • New DeveloperBillingOptionParamsAndroid to configure external payment option in purchase flow
      • New DeveloperBillingLaunchModeAndroid enum for how to launch the external payment link
      • New DeveloperProvidedBillingDetailsAndroid type containing externalTransactionToken when user selects developer billing
      • New developerProvidedBillingAndroid stream for listening to developer billing selection events
      • New developerBillingOption field in RequestPurchaseAndroidProps and RequestSubscriptionAndroidProps
      // Listen for developer billing selection
      iap.developerProvidedBillingAndroid.listen((details) {
        // User selected developer billing
        // Report transaction to Google within 24 hours using details.externalTransactionToken
        print('External transaction token: ${details.externalTransactionToken}');
      });
      
      // Request purchase with external payments option
      await iap.requestPurchaseWithBuilder(
        build: (builder) {
          builder.google.skus = ['product_id'];
          builder.google.developerBillingOption = DeveloperBillingOptionParamsAndroid(
            billingProgram: BillingProgramAndroid.ExternalPayments,
            launchMode: DeveloperBillingLaunchModeAndroid.LaunchInExternalBrowserOrApp,
            linkUri: 'https://example.com/checkout',
          );
          builder.type = ProductQueryType.InApp;
        },
      );
      
    • New Event: IapEvent.DeveloperProvidedBillingAndroid - Fired when user selects developer billing in External Payments flow

    • enableBillingProgramAndroid in InitConnectionConfig: Enable a specific billing program during connection initialization

      // Enable External Payments during connection
      await iap.initConnection(
        enableBillingProgramAndroid: BillingProgramAndroid.ExternalPayments,
      );
      

      This provides a cleaner alternative to calling enableBillingProgram() separately before initConnection().

    Dependencies

    • Updated OpenIAP versions:
      • openiap-gql: 1.3.8 -> 1.3.10
      • openiap-google: 1.3.16 -> 1.3.19
      • openiap-apple: 1.3.7 -> 1.3.8
    Open source →
  55. 8.1.1 23 Dec 2025
    Release notes

    Dependencies

    • Updated OpenIAP versions:
      • openiap-google: 1.3.15 -> 1.3.16
    Open source →
  56. 8.1.0 23 Dec 2025
    Release notes

    New Features

    • Advanced Commerce Data (iOS 15+): Support for StoreKit 2's Product.PurchaseOption.custom API

      • New advancedCommerceData field in RequestPurchaseIosProps and RequestSubscriptionIosProps
      • Pass campaign tokens, affiliate IDs, or other attribution data during purchases
      await iap.requestPurchaseWithBuilder(
        build: (builder) {
          builder.ios.sku = 'com.example.premium';
          builder.ios.advancedCommerceData = 'campaign_summer_2025';
          builder.type = ProductQueryType.InApp;
        },
      );
      
    • google field support (Android): New google field in request parameters with android fallback

      • Aligns with OpenIAP specification for consistent cross-platform naming
      • android field is now deprecated; use google instead

    Deprecated

    • requestPurchaseOnPromotedProductIOS(): Use purchasePromoted stream + requestPurchase() instead

      • In StoreKit 2, promoted products can be purchased via the standard purchase flow
      // Recommended approach
      iap.purchasePromoted.listen((productId) async {
        if (productId != null) {
          await iap.requestPurchaseWithBuilder(
            build: (builder) {
              builder.ios.sku = productId;
              builder.type = ProductQueryType.InApp;
            },
          );
        }
      });
      

    Dependencies

    • Updated OpenIAP versions:
      • openiap-apple: 1.3.5 -> 1.3.7
      • openiap-google: 1.3.14 -> 1.3.16
      • openiap-gql: 1.3.5 -> 1.3.8
    Open source →
  57. 8.0.0 16 Dec 2025
    Release notes

    Breaking Changes

    • oneTimePurchaseOfferDetailsAndroid is now an array: Changed from ProductAndroidOneTimePurchaseOfferDetail? to List<ProductAndroidOneTimePurchaseOfferDetail>? to support multiple discount offers per product (Google Play Billing 7.0+)

      // Before (v7.x)
      final price = product.oneTimePurchaseOfferDetailsAndroid?.formattedPrice;
      
      // After (v8.x)
      final offers = product.oneTimePurchaseOfferDetailsAndroid;
      final price = offers?.isNotEmpty == true ? offers![0].formattedPrice : null;
      
    • verifyPurchase and validateReceipt API changed: Now uses platform-specific options instead of deprecated sku and androidOptions parameters

      // Before (v7.x)
      final result = await iap.verifyPurchase(sku: 'product_id');
      final result = await iap.verifyPurchase(
        sku: 'product_id',
        androidOptions: VerifyPurchaseAndroidOptions(...),
      );
      
      // After (v8.x) - iOS
      final result = await iap.verifyPurchase(
        apple: VerifyPurchaseAppleOptions(sku: 'product_id'),
      );
      
      // After (v8.x) - Android
      final result = await iap.verifyPurchase(
        google: VerifyPurchaseGoogleOptions(
          sku: 'product_id',
          accessToken: 'your-oauth-token',  // From your backend
          packageName: 'com.your.app',
          purchaseToken: purchase.purchaseToken,
        ),
      );
      

    New Features

    • Billing Programs API (Android 8.2.0+): Support for external billing programs

      • isBillingProgramAvailableAndroid() - Check if a billing program is available
      • createBillingProgramReportingDetailsAndroid() - Get external transaction token for reporting
      • launchExternalLinkAndroid() - Launch external link for billing programs
      // Check availability
      final result = await iap.isBillingProgramAvailableAndroid(
        BillingProgramAndroid.ExternalOffer,
      );
      
      if (result.isAvailable) {
        // Launch external link
        await iap.launchExternalLinkAndroid(
          LaunchExternalLinkParamsAndroid(
            billingProgram: BillingProgramAndroid.ExternalOffer,
            launchMode: ExternalLinkLaunchModeAndroid.LaunchInExternalBrowserOrApp,
            linkType: ExternalLinkTypeAndroid.LinkToDigitalContentOffer,
            linkUri: 'https://your-payment-site.com/purchase',
          ),
        );
      
        // Get reporting token
        final details = await iap.createBillingProgramReportingDetailsAndroid(
          BillingProgramAndroid.ExternalOffer,
        );
        // Send details.externalTransactionToken to your server
      }
      
    • One-Time Product Discounts (Android 8.0+): New fields in ProductAndroidOneTimePurchaseOfferDetail

      • offerId - Unique offer identifier
      • fullPriceMicros - Full (non-discounted) price
      • discountDisplayInfo - Discount percentage and amount
      • limitedQuantityInfo - Maximum and remaining quantity
      • validTimeWindow - Offer validity period
      • offerTags - List of offer tags
      • offerToken - Token for purchase requests
      • preorderDetailsAndroid - Pre-order release dates (Android 8.0+)
      • rentalDetailsAndroid - Rental period information (Android 8.0+)
    • Purchase Suspension Status (Android 8.1.0+): New isSuspendedAndroid field in PurchaseAndroid

      • Check if a subscription is suspended due to payment issues
      • Do NOT grant entitlements for suspended subscriptions
      for (final purchase in purchases) {
        if (purchase is PurchaseAndroid && purchase.isSuspendedAndroid == true) {
          // Subscription suspended - do not grant access
          // Direct user to fix payment method
        }
      }
      

    Deprecated

    • checkAlternativeBillingAvailabilityAndroid() - Use isBillingProgramAvailableAndroid(BillingProgramAndroid.ExternalOffer) instead
    • showAlternativeBillingDialogAndroid() - Use launchExternalLinkAndroid() instead
    • createAlternativeBillingTokenAndroid() - Use createBillingProgramReportingDetailsAndroid(BillingProgramAndroid.ExternalOffer) instead

    Fixes

    • Web Build Error: Fixed dart:io import causing web build failures
      • Replaced dart:io Platform with defaultTargetPlatform from Flutter foundation
      • Added kIsWeb guards to prevent native API calls on web
      • Note: IAP functionality is still iOS/Android only; this fix only enables web compilation

    Dependencies

    • Updated OpenIAP versions:
      • openiap-apple: 1.3.0 → 1.3.5
      • openiap-google: 1.3.12 → 1.3.14
      • openiap-gql: 1.3.2 → 1.3.5

    Migration Guide

    See Migration from v7 for detailed upgrade instructions.

    Open source →
  58. 7.2.0 09 Dec 2025
    Release notes
    • feat: Add IapStore enum for unified store identification (apple, google, horizon, unknown)
    • feat: Add store field to Purchase types (deprecates platform)
    • feat: Support apple/google keys in request parameters (alongside legacy ios/android)
    • chore(deps): Update OpenIAP versions (apple: 1.3.0, google: 1.3.10, gql: 1.3.0)
    Open source →
  59. 7.1.21 07 Dec 2025
    Release notes
    • feat: Add verifyPurchaseWithProvider for IAPKit integration
      • Supports server-side purchase verification via IAPKit
      • New VerificationMethod option: ignore, local, iapkit
      • New verification status error codes
    • fix: Deep conversion of purchase maps to avoid _Map<Object?, Object?> cast errors on iOS 26
      • Fixes trial subscription purchase parsing failures
      • Uses existing normalizeDynamicMap for recursive map conversion
    • chore(deps): Update openiap versions (apple: 1.2.42, google: 1.3.8, gql: 1.2.7)
    Open source →
  60. 7.1.20 18 Nov 2025
    Release notes
    • chore(deps): Update openiap-versions

      {
        "apple": "1.2.38"
      }
      
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive