Videos
How long after purchase can I ask for a refund?
For apps and games, you can get a direct refund in the Play Store within two hours of purchase. You can fill out a form up to 48 hours after purchase.
For books, TV shows, and movies, it’s seven days for most countries and up to 14 days for select countries. However, defective content can be refunded up to 65 days after purchase.
For audiobooks, all sales are final except in South Korea, where you get a seven-day window as long as you haven’t listened to the audiobook.
For a full list of the rules, click here to check out Google’s support page.
How long do refunds take?
Generally speaking, Google Play should render its decision within 24 hours and have your refund out to you within four business days. For unrecognized (fraudulent) purchases, it may take longer.
How do I contact Google's support team for help with a refund?
Head to this link to view the Google support page for Play Store refunds. At the bottom of the page, there is an option to contact Google directly. Tap it, and tell Google the reason you’re contacting them. Keep entering information and tapping the Next step button until you get to the end, where you can initiate a chat or email with Google.
I spent a crap ton during IroYachiyo banner (beginning of August) and requested refunds from then to now. The play store approved my requests. I suggest you do it too just to get your money back.
Edit: Only purchases made in August will be approved. I tried for earlier ones and they didn't approve them. Overnight, Paypal sent me emails about my refund, so you will be getting your money back
Edit: The process on how to do so (Google play):
https://support.google.com/googleplay/answer/2479637?hl=en
On your computer, go to play.google.com/store/account.
Click Order History.
Find the order you want to return.
Select Request a refund or Report a problem and choose the option that describes your situation.
Complete the form and note that you'd like a refund.
I did both 'I no longer what this purchase' and 'Purchase is defective or doesn't work as advertised'
Copy and paste below into form if you want:
Hello, the game announced its closure today (8/28) without prior notice. I want my refund back due to this issue. Thanks.
You'll get a message that says "Thank you for sharing your concerns." You'll then get an email with your refund decision. You’ll usually get this within 15 minutes but it can take up to 4 business days.
Note:
If you have multiple refund requests, repeat these steps for each thing you bought.
Problem
Any made purchase will still be recorded even when a user makes a refund, and actually gets the refund. The same is true when you (the developer/app owner) issue a refund/revoke request for the in-app product.
The only difference will be the purchase's "purchaseState". The problem here with Google's Billing Library is that they mask this "purchaseState" value in the purchase.getPurchaseState() call to either PENDNG or PURCHASED state. See in the decompiled code:
public int getPurchaseState() {
switch(this.zzc.optInt("purchaseState", 1)) {
case 4:
return 2; // PENDING
default:
return 1; // PURCHASED
}
}
When you have an in-app product with a refunded state, its state is rather UNSPECIFIED_STATE, which is masked to PURCHASED as in the code above.
Simple Solution
To get over this, simply just ignore the library's purchase.getPurchaseState() method, and instead use your own unmasked custom:
int getUnmaskedPurchaseState(Purchase purchase) {
int purchaseState = purchase.getPurchaseState();
try {
purchaseState = new JSONObject(purchase.getOriginalJson()).optInt("purchaseState", 0);
} catch (JSONException e) {
e.printStackTrace();
}
return purchaseState;
}
Hard Solution
It seems Google has just done that masked to push you to do this solution. Use the Voided Purchases API to provide a list of orders that are associated with purchases that a user has voided. According to their documentation...
A purchase can be voided in the following ways:
- The user requests a refund for their order. The user cancels their order.
- An order is charged back.
- Developer cancels or refunds order. Note: only revoked orders will be shown in the Voided Purchases API.
- If developer refunds without setting the revoke option, orders will not show up in the API.
- Google cancels or refunds order.
However, this solution is not currently available as a Java android library, and you will have instead to make your server requests, and to use Google Play Developer APIs.
It seems that as of 2025, we get the expected behavior when calling billingClient.queryPurchasesAsync.
- When a purchase was refunded, it will no longer appear in the
List<Purchase>returned byqueryPurchasesAsync. - When a purchase was refunded, the Google Play Cache will be updated immediately, if a network connection is available. In the next call to
queryPurchasesAsync, the purchase will no longer be included.