Skip to content

Store Pitfalls #6: Your App Has IAP — So You Can't Call It Free

2026-06-07

Tags: Windows · Microsoft Store · Store Pitfalls


I wrote my Store listing before I added in-app purchases. Then I forgot to go back and update it.

What Happened

My app is free to download. All core features are free. There's an optional in-app purchase — a Supporter Edition upgrade that adds a badge. That's it.

But the listing description still cheerfully said:

ICO Unpacker is a lightweight, free Windows desktop tool...

Certification came back:

10.1.4.3 App Quality - Description

Claims made about pricing in the description must be true and clearly understandable. Please clarify or remove the claims from the description. Your product is not fully free because it involves an opportunity to spend money separate from the initial acquisition of the app (contains in-app purchases, relies on subscription whether that is obtained inside or outside the app or its metadata).

Pricing Claim: "ICO Unpacker is a lightweight, free Windows desktop tool"

Found in the following languages listings: All provided languages

Every language. Every mention of "free."

The Policy

The certification report cited 10.1.4.3 (App Quality - Description). This sub-code doesn't appear on the public Store Policies page, but the parent section 10.1.4 states:

Your product must have distinct and informative metadata and must provide a valuable and quality user experience.

There's also a more directly relevant section. 10.8.4 covers pricing transparency in metadata:

Your product and its associated metadata must provide information about the types of in-product purchases offered and the range of prices. You may not mislead customers and must be clear about the nature of your in-product promotions and offerings including the scope and terms of any trial experiences.

Note the key phrase: "You may not mislead customers." If your app offers an in-app purchase, saying "free" in the description contradicts the actual pricing model — even if the purchase is entirely optional.

The certification report is even more explicit about what counts as "not fully free":

Your product is not fully free because it involves an opportunity to spend money separate from the initial acquisition of the app (contains in-app purchases, relies on subscription whether that is obtained inside or outside the app or its metadata).

Any opportunity to spend money — optional or not — means the app is not "fully free."

Why It Matters

This makes sense from a user perspective. If I read "free" in the description but then encounter a purchase screen inside the app, I'd feel misled — even if the purchase is purely optional. The Store already displays a price tag on your product page: "Free" with "In-app purchases" noted underneath. Your description should not contradict what the Store itself tells the user.

What I Had to Fix

Think of it like a code review: when your reviewer flags a bug in one place, you don't just fix that one line — you check the rest of your PR for the same pattern. The certification report pointed out one specific quote, but that "free" claim was scattered across multiple fields and all 10 language variants. I had to audit the entire listing.

Here's what I found and fixed:

FieldBeforeAfter
Description"a lightweight, free Windows desktop tool""a lightweight Windows desktop tool"
Feature bullet"Lightweight and free, ready to use""Lightweight, ready to use"
Short description"Free ICO icon decomposition tool""ICO icon decomposition tool"

Three separate fields × 10 languages = 30 edits, all from the same root cause. The reviewer only quoted one line, but the problem was everywhere.

The Takeaway

If your app has any form of in-app purchase:

  • Don't say "free" in the description, short description, feature list, screenshots, or any other metadata — 10.8.4 says you may not mislead customers about pricing
  • The Store automatically shows "Free with in-app purchases" on your product page — let it handle pricing labels
  • If you added IAP after writing your listing, go back and audit every language for stale "free" claims

The easiest mental model: let the Store's own price tag do the talking. Your description should explain what the app does, not what it costs.


Part of the Store Pitfalls series.