Key takeaways
- Google's deprecation table sets August 31, 2027 for new apps and updates on Billing Library 8, with an extension deadline of November 1, 2027. Version 9 is the next supported version, and its own row says August 31, 2028.
- Version 9.0.0 (May 19, 2026) brings four changes from 8, including: blocked Play Store apps now return BILLING_UNAVAILABLE instead of ERROR, getLinkUri() can be null, and targetSdkVersion is 35. Version 9.1.0 (June 18, 2026) adds Billing Choice APIs.
- Google's migration guide for 8 to 9 says to update the dependency to 9.1.0, handle new sub-response codes, and use AndroidX Core 1.9 or later for the new error code.
- As of October 18, 2026, Flutter's in_app_purchase_android 0.5.4 still depends on Billing Library 8.0.0, and RevenueCat's latest Android SDK in purchases_flutter 10.16.0 uses 8.3.0. I found no Flutter plugin on version 9 yet.
- Google says existing apps keep working. The deadline applies to new apps and updates, so an app still on version 8 can't ship an update after its deadline unless the plugin you use has moved.
Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.
Google's deprecation table gives Play Billing Library 8 a deadline of August 31, 2027 for new apps and updates, with an extension deadline of November 1, 2027, so version 9 is the one to move to. Google says existing apps keep working. The rule applies to new apps and updates. If you ship with Flutter, the practical question is when your plugin moves, because as of today the official plugin and RevenueCat still use version 8.
The dates below come from Google's deprecation page and release notes, and the plugin facts from the flutter/packages and RevenueCat repositories and pub.dev, as listed in the sources. I checked each one on October 18, 2026.
Disclosure: App369 is my studio. I build and fix apps, including in-app purchases and subscriptions in Flutter, and the last section mentions what I sell. Google and RevenueCat don't pay me for anything on this page.
The deadlines
Google gives every Billing Library version a two-year deprecation cycle. Its table:
| Version | New apps and updates must move by | Extension deadline |
|---|---|---|
| 5 | August 31, 2024 | November 1, 2024 |
| 6 | August 31, 2025 | November 1, 2025 |
| 7 | August 31, 2026 | November 1, 2026 |
| 8 | August 31, 2027 | November 1, 2027 |
| 9 | August 31, 2028 | November 1, 2028 |
Source: Google Play Billing Library version deprecation, last updated September 9, 2026.
Google's FAQ also says:
- Existing apps still work. Unmaintained APKs don't need updates. New apps and updates must use supported versions.
- The extension form is in Play Console. An app on an unsupported version gets a warning. Open its details on the Policy status page to find the form.
- Check the manifest if a warning stays. The merged
AndroidManifest.xmlmust containcom.google.android.play.billingclient.version.
If your app is still on version 7, read the version 7 to 8 guide first.
What changed in version 9
Version 9.0.0 was released on May 19, 2026. Per Google's release notes:
| Change in 9.0.0 | What it means |
|---|---|
| Error codes for blocked Play Store activity | When the system blocks the Play Store app, for example in OEM-customized kids mode, the response code changes from ERROR to BILLING_UNAVAILABLE. The BillingResult carries a Play Store is blocked debug message. This needs AndroidX Core 1.9 or later |
DeveloperProvidedBillingDetails.getLinkUri() is @Nullable | Handle both null and an empty string before parsing the link or launching a browser intent |
targetSdkVersion updated to 35 | Stated in the release notes |
| In-app messaging for opt-in price increases | Users can confirm an upcoming opt-in price increase without leaving the app. The message is shown from the first day the user can accept, at most once every 7 days |
Version 9.1.0 was released on June 18, 2026. It adds Billing Choice APIs, including BillingClient.getBillingChoiceInfoAsync(), BillingChoiceInfo and BillingClient.showBillingProgramInformationDialog(). Google's release notes list no later 9.x release as of October 18, 2026.
How Google says to migrate
Google's guide for moving to version 9 uses 9.1.0 in its examples. The steps:
- Update the dependency to
com.android.billingclient:billing:9.1.0. For Kotlin extensions, addbilling-ktx. - Skip the
queryProductDetailsAsyncchange if you are on 8. Google says theonProductDetailsResponsesignature change applies only to upgrades from version 7. - Remove the old APIs, if you still use any. Google's list includes
SkuDetails,querySkuDetailsAsync,BillingClient.SkuType(useProductType),QueryPurchaseHistoryParams, the no-argumentenablePendingPurchases()andqueryPurchasesAsync(String, listener). My reading: most of these were already removed in version 8, so an app that moved to 8 cleanly has probably dealt with them. Check your code for any that remain. - Consider automatic service reconnection. Google recommends it.
- Handle new sub-response codes on the
BillingResultfromlaunchBillingFlow():PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS,USER_INELIGIBLEandNO_APPLICABLE_SUB_RESPONSE_CODE. - Account for the error-code change and the nullable link from the table above.
Flutter apps: where the plugins stand
I found no Flutter plugin on version 9 yet. A pull request to update in_app_purchase_android to 9.1.0 (flutter/packages #12781), opened September 8, 2026, was still open and unmerged on October 18, 2026. As of October 18, 2026:
| Package | Latest version (published) | Billing Library it uses |
|---|---|---|
in_app_purchase_android | 0.5.4 (October 13, 2026) | 8.0.0, per its build.gradle.kts on main. Its changelog lists the move from 7.1.1 to 8.0.0 in 0.5.0 |
in_app_purchase | 3.3.1 (September 18, 2026) | Depends on in_app_purchase_android ^0.5.0 |
purchases_flutter (RevenueCat) | 10.16.0 (October 14, 2026) | Bundles Android SDK 10.27.0 |
purchases-android (RevenueCat) | main branch | billingClient = "8.3.0" in libs.versions.toml |
Two details:
in_app_purchase_android0.5.4 needs a recent Flutter. Its pubspec requires Flutter 3.44 or later and Dart 3.12.- My advice: a plugin on version 8 is fine until Google's version 8 deadline. The deadline for new apps and updates is August 31, 2027. That leaves time for the plugin authors to move.
My advice: don't force version 9 into a Flutter app by overriding the plugin's Gradle dependency until the plugin supports it. The plugin's Dart and Kotlin code is built against the version 8 API. Wait for the release, then upgrade the package.
What to do now
This section is my advice, not Google's.
- Find the version you ship. In a native app, check
com.android.billingclient:billinginbuild.gradle. In Flutter, checkin_app_purchase_androidorpurchases_flutterinpubspec.lock. - Watch the plugin changelogs. Check the
in_app_purchase_androidand RevenueCat changelogs once a month. When one mentions Billing Library 9, plan the upgrade. - Keep your Flutter version current. Each plugin release raises its minimum Flutter, and a late jump can mean fixing other build errors first.
- Upgrade early in the cycle, not at the deadline. Google's extension to November 1, 2027 is a safety net, not a plan.
- Test purchases and restores before you ship. Use Play Console license testers to buy, cancel and restore each product type.
For every other dated Apple, Google Play and Firebase requirement in 2026 and 2027, see App Store and Google Play deadlines for 2026 and 2027. The related Android target level requirement is in the target API 36 guide.
Need a hand?
If your in-app purchases break during the Billing Library upgrade, or you're not sure what your plugins need, the App Fix Ticket covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days and comes as a pull request. Or send me a short description.
Frequently asked questions
- When must I move to Play Billing Library 9?
- Google's deprecation table gives version 8 a deadline of August 31, 2027 for new apps and updates, and an extension deadline of November 1, 2027. After that, an update has to use a supported version, and version 9 is the next one.
- What changed between version 8 and version 9?
- Google's 9.0.0 release notes list four changes: Play Store blocked by the system now returns BILLING_UNAVAILABLE instead of ERROR, DeveloperProvidedBillingDetails.getLinkUri() is @Nullable, targetSdkVersion is 35, and in-app messaging can announce an upcoming opt-in price increase. Version 9.1.0 adds Billing Choice APIs.
- Can I use Billing Library 9 in a Flutter app today?
- Not through the official plugin as of October 18, 2026. in_app_purchase_android 0.5.4, published October 13, 2026, still builds against com.android.billingclient:billing 8.0.0. A Flutter plugin has to move first, or you add a native override yourself.
- Do I need to rewrite my purchase code for version 9?
- Google's guide says only the queryProductDetailsAsync signature change applies just to upgrades from version 7. It lists removed APIs without a version 8 exemption, so an app on version 8 that still calls any of them must change those calls. The other steps are the dependency bump, new sub-response codes, the error-code change and the nullable link.
- How do I ask for the extension?
- Google says an app on an unsupported version gets a warning in Play Console. Open the warning's details on the Policy status page and use the extension form there.
Sources
- flutter/packages on GitHub, pull request #12781 (in_app_purchase_android to Billing Library 9.1.0)
- Android Developers, Google Play Billing Library release notes
- Android Developers, Migrate to Billing Library 9
- Android Developers, Google Play Billing Library version deprecation (last updated September 9, 2026)
- flutter/packages, in_app_purchase_android changelog
- flutter/packages, in_app_purchase changelog
- pub.dev API, in_app_purchase_android
- RevenueCat purchases-flutter changelog on GitHub
- RevenueCat purchases-android on GitHub (libs.versions.toml)
Related Resources
Related guides
Play Billing Library 7 Deprecated: Update to 8 by November 1
Google Play Billing Library 7 hit its deadline on August 31, 2026: new apps and updates must use version 8 or later, and Google says its extension runs until November 1, 2026. What changed in version 8, which Flutter in_app_purchase and RevenueCat versions include it, and how to clear the Play Console warning, from Google's docs checked October 18, 2026.
Read moreApp Store and Google Play Deadlines for 2026 and 2027
One dated table of the App Store, Google Play, Firebase and Google API requirements that affect mobile app owners in 2026 and 2027, with the primary source for each date, checked October 18, 2026.
Read moreGoogle Play Requires Target API 36: The Android 16 Update
Since August 31, 2026, Google Play requires new apps and updates to target Android 16 (API level 36), with an extension to November 1, 2026. What changes when you target API 36 (edge-to-edge, predictive back, large-screen orientation), which Flutter versions target it by default, and what to test, from Google's docs checked October 18, 2026.
Read more