NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #3799 most downloaded on pub.dev
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.
Last release 6 days ago
11 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
8 years old
232 releases · first in 2018
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
fix: removed references to deprecated v1 Android embedding by @moodstubos in
Erroneous duplicate item by @deakjahn in
refactor: android init connection
refactor: android init connection
Used Kotlin apply for cleaner initialization of billingClient.
Introduced context ?: return for null-safety with context.
Merged repetitive code into the updateConnectionStatus method to avoid duplication.
Improved the handling of the alreadyFinished flag to ensure it is only set once and at the appropriate time.
Streamlined the error and success handling for clarity.
Migrate android billingClient to 6.0.1
Expo Modules wrapper for the OpenIAP specification.
Expo Modules wrapper for the OpenIAP specification.
da68e0ac)d4a5871f)59fb640f)3658f021)70864e9e)npx expo install expo-iap@5.5.0
# or
bun add expo-iap@5.5.0Erroneous duplicate item (#441) - Remove extra introductoryPricePaymentModeIOS
Fixed consumable products reading on Android (#439)
chore(deps): migrate internal packages to recent
http: ^1.1.0
meta: ^1.10.0
platform: ^3.1.3
chore: migrate example project to recent flutter version, 3.16.0-0.3.pre
Nothing published for this version
Expo Modules wrapper for the OpenIAP specification.
Expo Modules wrapper for the OpenIAP specification.
cb367a15)0357f7b4)e2349053)npx expo install expo-iap@5.4.1
# or
bun add expo-iap@5.4.1Expo Modules wrapper for the OpenIAP specification.
Expo Modules wrapper for the OpenIAP specification.
ae210cd5)dabed9a7)b335e133)aa250ef6)22b5e437)e7ab6d25)f4e83aec)npx expo install expo-iap@5.4.0
# or
bun add expo-iap@5.4.0expo-iap 5.3.1 Compare # Choose a tag to compare
expo-iap 5.3.1
Compare
Nothing published for this version
Bugfix #356
Bugfix #356
Nothing published for this version
Now three new functions are suggested and marked the old ones deprecated.
Run on UiThread and few others (#328)
Related #272
The main difference is a new MethodResultWrapper class that wraps both the result and the channel. onMethodCall() now immediately saves this wrapped result-channel to a field and only uses that later to set both the result and to send back info on the channel. I did this in both Google and Amazon but I can't test the Amazon one.
Included the plugin registration differences.
Midified suggested in one of the issues that initConnection, endConnection and consumeAllItems shouldn't be accessors. This is very much so, property accessors are not supposed to do work and have side effects, just return a value. Now three new functions are suggested and marked the old ones deprecated.
Fourth, EnumUtil.getValueString() is not really necessary, we have describeEnum() in the Flutter engine just for this purpose.
Upgrade android billing client to 4.0.0
Upgrade android billing client to 4.0.0 (#326)
Remove orderId in Purchase
transactionId.Support for Amazon devices with Google Play sideloaded (#313)
Use http client in validateReceiptIos
getPrice directly withoiut formatting (#316)Fix plugin exception for requestProductWithQuantityIOS #306
requestProductWithQuantityIOS #306Replaced obfuscatedAccountIdAndroid with obfuscatedAccountId in request purchase method #299
Add AndroidProrationMode values #273
- Support null safety #275
The dart side requires "introductoryPriceCyclesAndroid" to be a int #268
platform dep version >=2.0.0 <4.0.0
platform dep version >=2.0.0 <4.0.0- Support flutter v2 #265
Migrate to flutter embedding v2 #240
Upgrade android billing client to 2.1.0 from 3.0.0.
2.1.0 from 3.0.0.deveoperId and accountId when requesting purchase or subscription in android.obfuscatedAccountIdAndroid and obfuscatedProfileIdAndroid when requesting purchase or subscription in android.developerPayload in android.purchaseTokenAndroid as an optional parameter to requestPurchase and requestPurchase..NET 10 MAUI / C# 12 library for the OpenIAP specification (iOS + Android + macCatalyst).
.NET 10 MAUI / C# 12 library for the OpenIAP specification (iOS + Android + macCatalyst).
11dbb07e)8cd5909c)1d6b17fb)f51aab31)009e221b)ba0acef6)<ItemGroup>
<PackageReference Include="OpenIap.Maui" Version="2.3.2" />
</ItemGroup>Or via the .NET CLI:
dotnet add package OpenIap.Maui --version 2.3.2Republishing since sourcode seems not merged correctly.
Republishing since sourcode seems not merged correctly.
Bugfix IapItem deserialization #212
Implement endConnection method to declaratively finish observer in iOS.
endConnection method to declaratively finish observer in iOS.addTransactionObserver in IAPPromotionObserver.m for dup observer problems.initConnection for iOS.Fix ios failed purchase handling problem in 11.4+ #176
Fix dart side expression warning #169.
Fix wrong introductory price number of periods #164.
Trigger purchaseUpdated callback when iap purchased #165.
Renamed finishTransactionIOS argument purchaseToken to transactionId.
finishTransactionIOS argument purchaseToken to transactionId.finishTransaction parameter changes to purchasedItem from purchaseToken.
finishTransaction parameter changes to purchasedItem from purchaseToken.2.1.0 from 2.0.3.Nothing published for this version
[bugfix] Fix double call of result reply on connection init #126
[bugfix] Fix plugin throws exceptions with flutter v1.10.7 beta #117
[bugfix] Decode response code for connection updates stream #114
use ConnectionResult as type for connection stream, fix controller creation #112
Nothing published for this version
Nothing published for this version
Properly set return type PurchaseResult of when finishing transaction.
PurchaseResult of when finishing transaction.Seperate long example code to example readme.
example code to example readme.Correctly mock invoke method and return results #94
Add deveoperId and accountId when requesting purchase or subscription in android. Find out more in requestPurchase and requestPurchase.
deveoperId and accountId when requesting purchase or subscription in android. Find out more in requestPurchase and requestPurchase.Renamed invoked parameters non-platform specific.
Send purchase-error with purchases returns null.
purchase-error with purchases returns null.- Resolve #99.
- Resolve #100.
- Resolve #101.
Nothing published for this version
Nothing published for this version
Resolve #102. Fluter seems to only sends strings between platforms.
Android receipt validation api upgrade to v3.
v3.Pass android exception to flutter side.
Fixed minor typo when generating string with toString. Resolve #110.
toString. Resolve #110.Removed deprecated note in the readme.
readme.travis.readme for breaking features.finishTransaction.
acknowledgePurchaseAndroid, consumePurchaseAndroid, finishTransactionIOS.[Android]
getBillingResponseData that visualizes erorr codes better.buyProduct no more return asyn result. It rather relies on the purchaseUpdatedListener.acknowledgePurchaseAndroid
acknowledgePurchaseAndroid.consumePurchase to consumePurchaseAndroid in dart side.buyProduct to requestPurchase.buySubscription to requestPurchase.[iOS]
finishTransaction after purchases.purchaseUpdated and purchaseError listener as in android.react-native-iap v3.IAPPromotionObserver cocoa touch filegetPromotedProductIOS and requestPromotedProductIOS methodspurchasePromoted stream that listens to iap-promoted-product.Your coding agent can read these notes before it upgrades. Set up the MCP server →