Play Billing Library 7 Deadline Passed: A 5-Check Flutter Upgrade (2026)

By · Published 2026-11-04 · Last verified 2026-11-04

Is your Flutter app on Play Billing Library 7 or newer, and what happens if it is not?

Google Play's deprecation FAQ sets the deadline for Play Billing Library 7 at 31 August 2026 for new apps and updates, with an extension deadline of 1 November 2026. Both dates have passed. An app that is already published keeps working on an older version, but a new app or an update has to use a supported Billing Library version to go through. If your Flutter app takes payments with the in_app_purchase plugin, the Billing Library version is decided by the version of in_app_purchase_android that your project resolves, not by anything you wrote yourself. This guide gives a 5-check upgrade to find that version, read the Play Console warning, upgrade the plugin, fix the Dart changes and test the result.

Plugin versions and Google's pages change. Everything below was checked on 2026-11-04; confirm the current versions on pub.dev and the Android Developers site before you ship.

Grid of the five checks for a Flutter billing upgrade: find the version, read the Play Console policy status, upgrade the plugin, fix the Dart changes and test on a testing track, with Billing Library 7 as the floor
The 5-check billing upgrade.

The deadlines in one table

Billing LibraryNew app and update deadlineExtension deadline
Version 731 August 20261 November 2026
Version 831 August 20271 November 2027
Version 931 August 20281 November 2028

The table comes from Google's Play Billing deprecation FAQ. The practical reading in November 2026: version 7 or newer is the floor. Version 8 is supported until the 2027 dates, and version 9 is the newest. If your build still carries version 6 or older, your next update is the one that gets blocked. For context on the other Play deadline of this season, see our guide to the target API 36 deadline and extension.

The 5-check Flutter billing upgrade

  1. Find the version your build really uses. In the project, run flutter pub deps | grep in_app_purchase or open pubspec.lock and read the resolved version of in_app_purchase_android. Then confirm in the built app: in Android Studio's APK Analyzer, open the merged AndroidManifest.xml and look for the com.google.android.play.billingclient.version entry. Google's FAQ says that entry must be present, and that if it is missing, you should check how your manifests merge. Do the same for an AAB or APK that you uploaded, not only for your debug build.
  2. Read what Play Console says. Warnings appear on the Policy status page in Play Console, and the FAQ describes an extension request form there. The 1 November 2026 extension date for version 7 has passed, so plan to fix the version before your next update rather than counting on more time.
  3. Upgrade the plugin. Raise in_app_purchase in pubspec.yaml and run flutter pub upgrade in_app_purchase. The current in_app_purchase release depends on in_app_purchase_android ^0.5.0, so a normal upgrade resolves to the newest 0.5.x. Check pubspec.lock afterwards.
  4. Fix the Dart-side changes. The Billing Library changes surface in a few Dart APIs. See the table below.
  5. Test on a testing track before production. Upload to a closed or internal testing track and run a purchase, a restore and a cancelled purchase with a license tester account. Then roll out in stages.
Two columns of Play Billing Library deadlines: version 7 for new apps and updates on 31 August 2026 with an extension to 1 November 2026, both passed, and versions 8 and 9 in 2027 and 2028
Play Billing Library deadlines.

Which plugin version carries which Billing Library

in_app_purchase_androidBilling LibraryWhat changes for your Dart code
0.4.0 to 0.4.x7.1.1 (up from 6.2.0)Meets the version 7 floor
0.5.0 to 0.5.48.0.0queryPurchaseHistory removed; use queryPurchases. Adds subResponseCode, oneTimePurchaseOfferDetailsList and unfetchedProductList
0.5.59.1.0Minimum Android SDK 23 (Flutter's own minimum is already 24). A blocked Play Store now reports billingUnavailable instead of error

The pub.dev changelog is the source for this table. Treat the version ranges as a guide, and read the changelog entries for the versions between yours and the latest before you upgrade.

The Dart changes that can break a build or a purchase flow

The migration guide recommends automatic reconnection to the billing service. The plugin manages the connection for you, so you do not need native code for this, but your app should still handle a purchase stream that reports an error and be able to recover on the next launch.

The trap: an old Flutter SDK can pin an old plugin

Pub picks the newest plugin version that your Flutter and Dart constraints allow. The in_app_purchase changelog notes that applications built with older versions of Flutter keep using compatible versions of the platform implementations. In practice, a project that is stuck on an older Flutter SDK can resolve to an older in_app_purchase_android that still bundles a lower Billing Library, even after you run pub upgrade. If pubspec.lock does not show the version you expected, check your environment constraints and the Flutter version you build with before you blame the plugin. Upgrading Flutter may be the real fix, and our Flutter Android 16 upgrade hub covers that path.

Grid matching in_app_purchase_android versions to Billing Library versions: 0.4.x with 7.1.1, 0.5.0 to 0.5.4 with 8.0.0 and 0.5.5 with 9.1.0, plus the removal of queryPurchaseHistory and the minimum Android SDK 23
Plugin version and Billing Library.

Test and roll out the upgrade safely

A payment library changes the part of your app that handles money, so give it more caution than a UI change.

  1. Use a testing track. A 12-tester closed track is covered in our closed testing guide.
  2. Test real purchase paths. Buy, cancel, restore on a second device and test a declined payment. Check that your app does not grant an entitlement for a pending or cancelled purchase.
  3. Add your release to your usual checklist. The Flutter release checklist for Google Play covers the rest of a release.
  4. Roll out in stages. Staged rollout rules explain how to halt a bad release, and how long Google Play review takes helps you plan the timing.
Four steps to test before production: use a closed or internal track, buy, cancel and restore, test a declined payment and use a staged rollout
Test before production.

GSPTeck in one line

GSPTeck is giosaia's indie studio, and these guides are written for solo Flutter developers shipping to Google Play. We link to the primary documentation for every claim, and we do not claim hands-on results we have not had. Browse the rest of the series on the GSPTeck blog.

Vertical Pinterest graphic with five points on the Play Billing Library 7 deadline for Flutter apps
Pinterest pin: Play Billing Library 7 for Flutter.

FAQ

Will my published Flutter app stop working after the Play Billing Library 7 deadline?

No. Google's FAQ says existing apps keep working. The deadline applies to new apps and to updates, which must use a supported Billing Library version to be accepted.

How do I check which Play Billing Library my Flutter app uses?

Read the resolved in_app_purchase_android version in pubspec.lock, then match it against the plugin's changelog. Confirm in the built app by looking for the com.google.android.play.billingclient.version entry in the merged manifest.

What breaks when upgrading in_app_purchase_android to 0.5.x?

The changelog lists the removal of queryPurchaseHistory in 0.5.0. Use queryPurchases instead. Version 0.5.5 also changes the error reported when the Play Store is blocked to billingUnavailable.

Why does pub upgrade not give me the newest in_app_purchase_android?

Pub chooses the newest version that fits your Flutter and Dart constraints. An older Flutter SDK can resolve to an older plugin release, so check your SDK version and constraints.

Sources