Google Play Billing for OTT app
Google Play Billing for OTT app on Flicknexs: purchase tokens verified against Google, developer notifications decoded server-side, product IDs mapped.
Flicknexs verifies Google Play purchase tokens against Google, listens for real-time developer notifications on the server, and maps Google product identifiers to the plans and pay-per-view titles defined in the admin.
Trusted by industry leaders
50+ OTT platforms powered by Flicknexs
Quick answer: Google Play Billing for OTT app means the Android app sells subscriptions and single titles through Google Play, with Google collecting the money at the store's published fee. On Flicknexs the platform verifies each purchase token against Google, decodes real-time developer notifications on the server, and maps Google product IDs to plans and pay-per-view titles.
Flicknexs provides google play billing as part of its white-label OTT platform. Flicknexs verifies Google Play purchase tokens against Google, listens for real-time developer notifications on the server, and maps Google product identifiers to the plans and pay-per-view titles defined in the admin.
Why Google Play Billing needs server-side verification
An Android app that sells content has to answer a question the web checkout never asks: did this purchase really happen on Google's side, or did a modified client claim it did. Google issues a purchase token for every transaction, and the only trustworthy check is to present that token to Google from your own server and read what Google says about it. An operator also needs to know when a subscription renewed, was canceled or expired, without polling. Google provides that as real-time developer notifications delivered through a message queue.
Flicknexs implements both halves. When the Android app completes a purchase through Play Billing, it sends the purchase token and product identifier to the platform, which verifies the token against Google before recording the purchase and granting access. Separately, the platform subscribes to the real-time developer notifications for your app, decodes each message on the server, and handles the subscription renewed, canceled and expired types so the subscriber record follows Google's state. The admin maps Google product identifiers to pay-per-view titles, and subscription products correspond to plans.
The rules on when an Android app must use Google Play's billing system, what alternative billing arrangements exist in particular regions, and how subscription states are defined are written by Google in the Google Play Developer Program Policies, in its payments policy, and in the Google Play Billing documentation. This page describes what the platform does with a Play purchase and a notification; it does not decide policy for your app. Read Google's payments policy for your markets before choosing a sales model, and re-read it when Google updates it.
What the Google Play Billing integration does on Flicknexs
Each row is behavior present in the Flicknexs Android app and payment service on the date checked, named the way Google names it.
Play Billing purchases
The Android app sells subscription plans and pay-per-view titles through Google Play Billing, charged to the viewer's Google account.
Token verification
The platform presents each purchase token to Google from the server and records the purchase only if Google confirms it.
Real-time notifications
Developer notifications for your app are delivered through Google's message queue and decoded on the server.
Renewed, canceled, expired
Those subscription notification types update the subscriber record so access follows Google's state.
Product ID to title
Each pay-per-view title in the admin can carry the Google product identifier that sells it.
Product ID to plan
Subscription products in Google Play Console correspond to the plans defined in the admin.
Store pricing
The price the viewer sees is Google's price for that product in their country, set in Play Console.
Revenue reports
Verified Play purchases appear in the monthly subscription and pay-per-view revenue reports alongside web and iOS sales.
Source: Flicknexs platform documentation and architecture specification, 2026-09-03.
How a Google Play purchase is verified and tracked on Flicknexs
From the product in Play Console to a subscriber record that follows Google's subscription state, this is the path a purchase takes.
Products live in Google Play Console
Google requires every sellable item to exist as a product in Play Console: a subscription with base plans and renewal periods for each plan you sell, and a one-time product for each pay-per-view title. Prices are set there per country. The Flicknexs admin does not create Play products; it maps to the identifiers you created so the app knows which product sells which plan or title.
The admin maps identifiers to titles and plans
Each pay-per-view title in the admin carries a field for the Google product identifier that sells it, and subscription products correspond to the plans you defined. When the Android app builds its plan and title screens it reads those mappings and queries Play Billing for the matching products, so the viewer sees Google's local price beside the plan or title they are about to buy.
Play Billing runs the purchase and issues a token
The viewer taps buy and Google's purchase sheet appears, authenticated with the viewer's Google account. Google charges the viewer, applies the store's published fee, and returns a purchase with a purchase token to the app. The app never handles a card, and neither does the platform. The app sends the token and the product identifier to the platform for verification.
The server verifies the token against Google
The platform presents the purchase token to Google from the server, using the service account credentials configured for your app, and reads Google's answer about the purchase state. Only when Google confirms the purchase does the platform record it against the signed-in viewer, mark the plan active or the title purchased, and open the content. A token Google does not recognize records nothing.
Real-time developer notifications keep state current
Google publishes a notification to a message-queue topic whenever a subscription changes. The platform subscribes to that topic, receives each message on the server, decodes the notification, and handles the subscription renewed, canceled and expired types. A renewal keeps the plan active; a cancellation or expiry updates the subscriber record so access ends when Google says the subscription is over.
What stays with Google
Transaction history, refunds, the viewer's payment method and the authoritative subscription state live with Google and are visible in Play Console. The platform holds the verified purchase record, the current state as told by notifications, and the access it grants. The admin shows the plan or title on the subscriber record and the monthly reports show store-billed income next to web income.
Setup for Google Play Billing, from Play Console to the admin
Five steps in order. The first three happen in Google's tools; the last two in the Flicknexs admin and the app build.
- 1
Set up a merchant account and the products
In Google Play Console, complete the merchant and payments profile so Google can pay you, then create a subscription product with base plans for each plan you sell in the app and a one-time product for each pay-per-view title. Choose prices per country. Note each product identifier; you will map them in the admin.
- 2
Create the service account for verification
In Google Cloud, create a service account, grant it access to your app's financial data in Play Console, and download its credentials. The platform uses those credentials from the server to verify purchase tokens. Keep the credentials private and give them to the Flicknexs team through the secure channel agreed at onboarding, never in a ticket.
- 3
Enable real-time developer notifications
Create a message-queue topic in Google Cloud, grant Google Play permission to publish to it, and enter the topic name in the monetization setup section of Play Console. Send the test notification Play Console offers and confirm the platform receives and decodes it. Until this step is done, subscription changes will not reach the platform.
- 4
Map product identifiers in the admin
Open each pay-per-view title you intend to sell in the Android app and enter its Google product identifier; confirm each plan is matched to its subscription product. Titles and plans without a Google identifier are not offered for purchase inside the app, which is how you keep particular content web-only.
- 5
Test with license testers, then release
Add license tester accounts in Play Console, install an internal test build, and buy a plan and a title. Confirm the token verifies, the subscriber record updates, the content opens on the device and on the website with the same account, and that canceling the test subscription produces a canceled notification. Then release and check one real low-priced purchase.
Limits and what Google Play Billing on Flicknexs does not do
The boundaries of the current build, so the launch plan is made against what exists.
Three notification types are handled
The platform decodes every notification it receives, but the subscription types it acts on are renewed, canceled and expired. Other subscription events Google can send, such as a grace period or an account hold, are visible in Play Console and are not acted on by the platform in the current build. An operator who needs those states to change access should raise it before launch.
Prices and offers are set in Play Console
The viewer sees Google's price for the product in their country. Changing a plan price in the Flicknexs admin changes only the web price. Introductory pricing, free-trial offers and promotional codes on Play are configured and applied by Google inside Play Console; the platform records the product Google confirms and does not manage Play offers from the admin.
Coupons do not apply inside the app
The promotion codes and the global coupon setting on the coupons and discounts page work only on Stripe checkout on the web. There is no code field on Google's purchase sheet and the platform cannot discount a Play price. A discount for Android buyers is a Play offer created in Play Console under Google's rules.
Notifications depend on your Google Cloud setup
Real-time developer notifications only arrive if the topic exists, Google Play has permission to publish to it, and the topic name is entered in Play Console. If any of those is missing, purchases still verify by token, but renewals, cancellations and expiries will not reach the platform. Send the test notification from Play Console after any change to the Google Cloud project.
Google's rules decide when Play Billing is required
Whether an app on Google Play must use Google Play's billing system, what alternative billing programs exist in particular regions, and how those change over time are decided by the Google Play Developer Program Policies and Google's payments policy. Flicknexs implements the purchase and verification; it does not decide policy for your app. Read Google's policy for your markets before relying on a web-only sales model in the app.
Worked example: a church network selling through Google Play
Consider a church network with a dozen congregations that streams Sunday services, runs a midweek teaching series, and sells recordings of an annual conference. Its members are mostly on Android phones, and the network wants giving-style convenience: tap, confirm, watch. It creates a subscription product in Play Console with a monthly base plan for the teaching series, a one-time product for each conference recording, and completes the merchant profile. In the Flicknexs admin it maps the conference recordings to their Google product identifiers and confirms the plan matches its subscription product.
A member buys the monthly plan in the Android app. Google's sheet takes the payment, the app hands the purchase token to the platform, the platform verifies it against Google and marks the plan active, and the teaching series opens. That evening the same sign-in opens it on the family's television through the Android TV app. Another member buys one conference recording; the token verifies, the recording is recorded as a pay-per-view purchase with the viewing window set on the title, and it appears in the monthly report beside the subscription income.
Six months on, a member lets the subscription lapse. Google sends a canceled notification and then an expired notification to the network's topic; the platform decodes both and ends the plan on the subscriber record when Google says it is over, without anyone at the church checking a dashboard. The Sunday services stay free and open on every surface, funded by giving, while the teaching series and conference recordings are sold through Play on Android and through Stripe on the website, both visible in the same revenue reports.
Checklist before you sell through Google Play Billing
Run every line with a license tester account on an internal test build, then repeat the purchase line once with a real account after release.
- The merchant and payments profile in Play Console is complete so Google can pay you, and the app is set up for in-app products.
- Every plan sold in the app has a subscription product with a base plan in Play Console, matched to the plan in the admin.
- Every pay-per-view title sold in the app has a one-time product in Play Console and its identifier on the title in the admin.
- The service account has access to your app's financial data and its credentials have reached the platform through the agreed secure channel.
- The real-time developer notification topic exists, Google Play can publish to it, its name is in Play Console, and the test notification was received.
- A license tester purchase of a plan verifies against Google, marks the plan active on the subscriber record, and opens the content.
- A license tester purchase of a single title verifies, records a pay-per-view purchase with the window set on the title, and opens playback.
- Canceling the test subscription produces canceled and then expired notifications that end the plan on the subscriber record at the right time.
- Your support desk knows that refunds are granted by Google in Play Console and that coupon codes do not apply on Google's purchase sheet.
- Your team has read Google's payments policy for your markets and knows which content the app may and may not sell outside Play Billing.
Google Play Billing beside web checkout and the other apps
The Android app is one surface of a service that also runs on the web, on iPhone and on televisions. The Android OTT app page describes the app itself, its player and what it inherits from the admin. Purchases made inside it go through Google and carry the store's published fee; purchases on the website go through Stripe, PayPal, Razorpay or another gateway from the payment gateways page and carry only that gateway's own charge. Because access is recorded on the account, a plan bought either way opens content on the Android TV app, the Fire TV app, the iOS app and the website. Many operators promote the web checkout and let Play Billing serve viewers who prefer it.
The iOS side follows a different verification model. The Apple in-app purchases page explains that the iOS app sells through StoreKit and the platform records the purchase reported by the app, without server-side receipt validation or server notifications in the current build. On Android the platform verifies the token against Google and receives Google's notifications. An operator selling on both maps the same plan to a Play product and an App Store product, and the revenue reports show both store-billed streams beside web sales.
Underneath, the pricing model is shared. Subscription plans, pay-per-view titles with viewing windows, free-preview minutes and paid live events are defined once on the video paywall. Google's country prices decide what the viewer pays in the app, Google collects it, and the platform decides what that verified purchase opens by reading the plan or title the identifier maps to.
Which plan includes Google Play Billing
Standard layers
Google Play Billing is available on any plan that includes the Android app, because the Play Billing flow, token verification and notification handling are part of the app and the payment service rather than a separately priced module. Flicknexs takes no share of what Google pays out. Plans are flat fees and Flicknexs takes no commission on your revenue; payment-gateway fees are between you and your gateway. See our pricing page for current plan and pricing details. The fee Google deducts is the store's published fee, set and documented by Google.
Pricing & billing
F2 Super includes 300 GB of storage and 20 TB of bandwidth yearly, and adds native Android and iOS mobile apps; see our pricing page for current plan and pricing details. That is the first plan with the Android app, and therefore the first plan on which Google Play Billing can be used. F3 Premium includes 1 TB of storage and 10 TB of bandwidth monthly, and adds Android TV and Fire TV apps; see our pricing page for current plan and pricing details. F4 Enterprise includes 2 TB of storage and 20 TB of bandwidth monthly and adds dedicated support to everything in F3; Samsung, LG, Roku and Apple TV apps are add-ons on any plan. See our pricing page for current plan and pricing details.
Annual savings
F1 Standard is the web-only plan, with 300 GB of storage and 20 TB of bandwidth yearly; see our pricing page for current plan and pricing details. F1 Standard includes 300 GB of storage and 20 TB of bandwidth yearly for website streaming; see our pricing page for current plan and pricing details. On those two plans there is no Android app, so sales happen on the website through the gateways on the payment gateways page. Yearly billing on F1 to F4 costs less per month than monthly billing; see our pricing page for current plan and pricing details.
Conclusion: what to do next
Already on Flicknexs
If you are already a Flicknexs customer with the Android app, send the test notification from Play Console today and confirm it arrives; that single check tells you whether renewals and cancellations are reaching the platform. Then open a pay-per-view title in the admin and check that the Google product identifier is present on everything you intend to sell in the app.
Choosing a platform
If you are choosing a platform, ask each vendor two questions about Android: is the purchase token verified against Google on the server, and are real-time developer notifications received and acted on. On Flicknexs both are yes, with renewed, canceled and expired handled. Then ask which other notification types are acted on, because that is where builds differ and where lapsed access slips through.
Before a rights call
Read the companion pages next. The Android OTT app page covers the app itself. The Apple in-app purchases page shows the iOS model, which records the purchase from the app without server-side validation. The payment gateways page lists the web gateways that carry no store fee, and the video paywall page explains the pricing model every surface shares.
Frequently Asked Questions
Everything you need to know about Google Play Billing on Flicknexs.
Yes, on any plan that includes the Android app, with no share taken by Flicknexs. Plans are flat fees and Flicknexs takes no commission on your revenue; payment-gateway fees are between you and your gateway. See our pricing page for current plan and pricing details. Google deducts the store's published fee before paying you.
The Android app sends the purchase token and product identifier to the platform, which presents the token to Google from the server using your service account and records the purchase only if Google confirms it. Real-time developer notifications then keep the subscription state current.
Google decides that in the Google Play Developer Program Policies and its payments policy, which also define alternative billing programs in particular regions and change over time. Flicknexs implements the purchase and verification but does not interpret Google's policy for your app; read it for your markets.
Any plan that includes the Android app. F2 Super includes 300 GB of storage and 20 TB of bandwidth yearly, and adds native Android and iOS mobile apps; see our pricing page for current plan and pricing details. The web-only plans sell through web gateways instead.
Renewed, canceled and expired. A renewal keeps the plan active; a cancellation or expiry ends the plan on the subscriber record when Google says the subscription is over. Other notification types are visible in Play Console but are not acted on in the current build.
Purchases still verify by token and access is still granted, but renewals, cancellations and expiries will not reach the platform. Create the topic, grant Google Play permission to publish, enter it in Play Console, and send the test notification to confirm delivery.
In Google Play Console, per country. The viewer sees Google's price for that product. Changing a plan price in the Flicknexs admin changes only the web price; the admin holds the product identifier mapping, not the Play price.
Yes. The verified purchase is recorded on the viewer's account, so the same sign-in on the website, the iOS app, the Android TV app or the Fire TV app sees the plan as active. The store fee applied once, on the Play purchase.
Yes. Create a one-time product in Play Console and enter its identifier on the pay-per-view title in the admin. The app offers it through Play Billing, the platform verifies the token, and the purchase is recorded with the viewing window set on the title.
No. Promotion codes and the global coupon setting apply only on Stripe checkout on the web. There is no code field on Google's purchase sheet. Discounts for Android buyers are Play offers configured in Play Console under Google's rules.
Add license tester accounts in Play Console, install an internal test build, and buy a plan and a title. Confirm the token verifies, the subscriber record updates, the content opens on the device and the website, and canceling produces the expected notifications.
Refunds are granted by Google, either from Play Console or through the viewer's request to Google, and appear in Play Console. If a refund ends a subscription, the resulting notification updates the subscriber record; otherwise the operator ends the purchase in the admin.