Android in-app Billing always reply with error 3: BILLING_UNAVAILABLE

5.3k Views Asked by At

Our app have in-app purchases. Our tests worked fine with real payment methods too, but from abroad customers (Asia in particular) we constantly receive error reports. The Google Play Billing Android library returns response code BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE (3) most if not all times. Dozens of users have tried to purchase, but nearly no-one had success.

The code simply queries SKU details using a BillingClient and then initiates the billing flow, just like the described in the official tutorial.

On the Play Console we have setup all required SKUs, and they're all available for all regions our app is present.

What can be the causes for BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE response code? Is it possible that all users from certain geographic regions get that code and cannot complete the purchase?

I find difficult to debug the issue, since on our end everything works fine all the time.

2

There are 2 best solutions below

1
On

It can be some of the prerequisites below are not satisfied. In my case, is the fourth. Read this article for more information.

  1. Upload the application to Closing Testing, no need to publish at this stage. (Internal Testing may be sufficient, but not verified).
  2. Create SKUs, note that the ID should match the ID of the application request.
  3. Add the tester's mailbox, which is the Google account login to the device to test the app SKU.
  4. Switch License Respond to LICENSED (Path: play console homepage -> Setup -> License testing).
  5. The Application ID for uploading Closing Testing needs to be the same as the Application ID for local debugging.
0
On

In my experiences, this response code is returned if Play Services are not available (you can test it yourself by installing your APK on an Amazon Fire device), or if the user did not set up a Google account.