[Free] InAppBilling - Sell your digital product from your android application

InAppBilling Extension

An Extension to enable service to sell digital product and contents in your android application.

This extension will help you to use Google Play’s billing system in your application. It uses latest billing library 4.0.0.

Start Connection

First of all, you should establish a connection to Google Play. To connect to Google Play, you should use this method:


If billing client is ready and connection is established then it will trigger BillingClientReady event.


Else if connection is failed / Billing Service is disconnected then it will trigger BillingServiceDisconnect event. You can try to restart the connection by calling StartConnection method again!

component_event (1)

Launch Purchase Flow

To start a purchase request from your app, you should call LaunchPurchaseFlow method. It needs productId as params aswell as skuType can either be InApp or Subs.


If application fails to launch PurchaseFlow then it will trigger FailedToLaunchPurchaseFlow with a response code.

component_event (2)

If it is successfully purchased then it will trigger GotPurchase event and you will get Purchase object in the event block.

component_event (3)

If the product or subscription is cancelled by the user then it will trigger PurchaseCancelled Event.

component_event (4)

If the purchase is failed then it will trigger PurchaseFailed event.

component_event (5)

Processing Purchase

Once a user completes the purchase, your app needs to process the purchases as It’s possible that your app might not be aware of all the purchases a user has made. You can find more information & scenarios where your app could lose track or be unaware of purchases from here.
You can either process the purchase either handling purchase as consumable or non-consumable. You can find more about the consumable, and non-consumable purchases from here.

However you don’t need to process the purchase manually if you enabled AutoAcknowledge method as purchase is automatically handled as Non-Consumable ie acknowledged in this case.

To handle purchase as consumable,

component_method (1)

To handle purchase as non-consumable,

component_method (2)

Purchase is same purchase you get from GetPurchase block in LaunchProjectFlow .

If purchase was in pending state then it will trigger PurchaseStatePending event,

component_event (6)

If purchase was in unspecified state then it will trigger PurchaseStateUnspecified event.

component_event (7)

If the purchase is successfully handled then it will trigger PurchaseSuccess Event,

component_event (8)

If the handeling purchase is failed then it will again trigger PurchaseFailed event.

Getting Purchase Details

You can get the details of a Purchase using this block :

blocks (3)

Purchase is same purchase you get from GetPurchase block in LaunchProjectFlow .

If successful then it will trigger GotPurchaseDetails with orderId, isAcknowledged, isAutoRenewing, purchasedTime and json.

component_event (9)

Getting Product/Subs Details

To get the details of either subscirption or product, you can use this block :

blocks (4)

If success then it will trigger GotDetails event with title, description, price and originalJson.

component_event (10)

Getting Purchases History

You can get the history of purchase using this block :

blocks (5)

After getting Purchase History successfully then it will trigger GotPurchaseHistory event with list of productIds, orderIds & original Json list.


Other blocks :

To check if purchase is acknowledged or not. It will return boolean.

component_method (3)

To check if GooglePlay in your device supports subscription or not.


To check if billing client is ready or not.

component_set_get (1)

It returns Subscription skuType


It returns InApp skuType

component_set_get (1)

If Auto Acknowledge is enabled to true then purchase is automatically handled as Non-Consumable & so you doesn’t need to handle it manually.

component_set_get (2)

If Test is enabled then product Id everywhere is used as android.test.purchased . This product id can be used without publishing application to playstore.

component_set_get (3)

Downloads :

See All Releases From Here.

Download Test Aia : InApp.aia (201.7 KB)

Download Latest Version From Github :

This extension is open-sourced here :



Dope Work as you always do :relaxed:


Awesome extension :blush: :+1:


Epic extension @oseamiya :heart_eyes:


Very detailed guide on app billing… glad to see your work… congrats.


Never knew that someone will make InAppBilling for free and OS :heart_eyes:


Nicccccccccccce extension :smiling_face_with_three_hearts: :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:


@UnknownBeast @Shreya.ig @Yashsehgal022 @Still-learning @Akshat_Rana @Edu_boy

Thankyou :heavy_heart_exclamation: .


Great extension, and for free. Good work.


wow awesome extension. really needed it, thanks


Thankyou @deanart2012 & @hades !

Also, Now you can download the extension from GetAix too.
Check it out :


Is It Possible to create multiple products id

for ex : Like Deephost payment option "Google Play " it sells its Aia And Aix through google play payment option So it is possible to create same like that means sell aia and aix through it

Thanks In Advance
Eagerly Waiting for someone reply

1 Like

Yes you can sell

Use this event block when you got the purchase and make your aix/aia download


Thanks For the Help :+1: :+1:

1 Like


Is product Id should be in the form androids.myproduct ID.Purchased? or it can be only ProductID that defined in my app?
your test aia works for me in companion and works as apk, but in my app
Launch Purchase Flow block doesn’t work although when trigger Getting Purchase Details block it returns a true subscription details …why ??? :thinking:
thanks for your great effort

1 Like

android.test.purchased is test product id. You should publish your app and add your own product id in playconsole. Testing in-app purchases

You can get further guide to how product can be created from here :

Can you show the blocks?

1 Like

What Is skuDetailsToken ??

Can Someone Tell Me ??

1 Like

It represents an in-app product’s or subscription’s listing details.


Can you share the related blocks ? Also, if possible can you share your AppLink?

If you are unable to share here in public, you can DM me !


Its Has Been Fixed

1 Like