V3.0 Certification requirements
Document version: 3.0
Document date: July 9, 2012
In this document, we describe the criteria an app must meet to be eligible for listing in the Windows Store.
Thank you for your interest in developing apps for Windows. We’re committed to a relationship with you that supports your ambitions and encourages a diverse catalog of high-quality, engaging apps for Windows customers worldwide. We crafted these certification requirements with those goals in mind and they should help you make choices that enhance your app’s appeal and help speed its listing in the Windows Store.
We review every app before we list it in the Store. If our certification requirements change, we’ll identify the updates to ease your consideration. If you have feedback on the policies, please let us know by commenting in our forum. We will consider every comment.
Your apps are crucial to the experience of hundreds of millions of customers. We can’t wait to see what you create and are thrilled to help deliver your apps to the world.
1.1 Your app must offer customers unique, creative value or utility in all the languages and markets that it supports
The Windows Store offers only fully functional apps to provide customers with the best experience. Anything that might cause our testers to think that your app is not completely finished will cause your app to fail certification.
You can help us by testing your app thoroughly before you submit it, and by providing us the information we need to test your app thoroughly. For example, if your app requires login credentials, provide us with a demo account. If your app requires access to a server, tell us what we need to do to verify that it's working correctly.
A trial can limit access to some of the app’s features, or limit the period of time that the app functions.
The image on an app’s tile must be reasonably related to the content of the app.
If your app includes or displays ads, it must provide additional functionality beyond the ads.
Our content policies are described in Section 5. Windows Store apps are appropriate for a global audience.
2.3 Your app must not use its tiles, notifications, app bar, or the swipe-from-edge interactions to display ads
The elements of your app's description, such as screenshots, text, and promotional images must describe your app and not contain additional advertising.
We describe these APIs in the Windows Store apps API reference. Your app may only depend on software listed in the Windows Store.
If your app has a different user interface or functionality when it runs on different processor types, you must submit a separate app for each processor type and describe the differences in the Description of each app.
3.4 Updates must not decrease your app’s functionality in a way that would be unexpected to a reasonable customer
Your app must provide visual feedback when users touch interactive elements.
Your app must not use an interaction gesture in a way that is different from how Windows uses the gesture. The Windows 8 touch language is described in Touch interaction design.
Your app must support a snapped layout. In landscape orientation, your app’s functions must be fully accessible when the app’s display size is 1024 x 768. Your app must remain functional when the customer snaps and unsnaps the app.
Your app must neither programmatically close nor offer UI affordances to close it. Windows 8 Process Lifetime Management closes Windows Store apps automatically.
Your app must suspend and resume to a reasonable state.
If your app implements an app bar, that bar must show up with a bottom-up swipe.
If your app implements a navigation bar, that bar must show up with a top-down swipe.
See Revision history.
- The app must launch in 5 seconds or less
- The app must suspend in 2 seconds or less
Low-power computers are described in How to test your app with the Windows App Certification Kit.
You app must not attempt to change or extend the packaged content through any form of dynamic inclusion of code or data that changes how the application interacts with the Windows Runtime, or behaves with regard to Store policy. It is not permissible, for example, to download a remote script and subsequently execute that script in the local context of your app package.
This requirement applies if you depend on specific 3D graphics hardware features.
If your app includes an ARM or a Neutral package it must support Direct3D feature level 9_1. If your app does not support ARM it must support the minimum feature level chosen on the Store portal.
Because customers can change the graphics hardware in their computers after the app is installed, if you choose a minimum feature level higher than 9_1, your app must detect at launch whether or not the current hardware meets the minimum requirements. If not, the app must display a message to the customer detailing the Direct3D requirements.
In addition to supporting the chosen minimum Direct3D feature level, your app may use higher feature levels when available.
3.11 If your app contains Windows Runtime components, they must conform to the Windows Runtime type system
In particular, all Windows Runtime types:
- Must be located in the package file with the longest namespace-matching name.
- Must be the only types with public visibility in a Windows Metadata (.winmd) file.
- Must have a unique, case insensitive name.
- Must not be located in the Windows or global namespace.
- Must have public visibility unless the type is an interface marked as exclusive to a specific runtime class.
- Must be sealed unless the type is a runtime class marked as composable.
- Must compose an unsealed system class, if the type is a composable runtime class.
- Must not include write-only properties.
- Must not implement interfaces that are marked as exclusive to another class.
- Must not be generic or parameterized.
- Must not define methods that overload operators.
- Must not change signature or parameter names between interface and runtime method declarations.
- Must not include default values for method parameters.
- Must not include property getters that take input parameters.
- Must not include property setters that take more than the single set value parameter.
- Must not define factory methods with additional out parameters beyond the return value.
- Must not use IReferenceArray<T> or IReference<string> as a parameter type.
- Must not use the signed byte fundamental type.
- Must define enums with an underlying type of Int32 or UInt32 only.
- Must apply the FlagsAttribute to UInt32 enums.
- Must not apply the FlagsAttribute to Int32 enums.
Your app can publish a customer’s personal information to a service or other person only after obtaining opt-in consent.
Opt-in consent means the customer gives their express permission for the requested activity, after you have:
a) Described to the customer how the information will be used or shared; and
b) Provided the customer a mechanism through which they can later rescind this permission and opt-out.
If your app publishes a person’s personal information, but that person is not a customer, you must obtain express written consent to publish that personal information, and you must permit the person whose information is shared to withdraw that consent at any time. If your app allows a customer to access another person’s personal information, this requirement would also apply.
Personal information includes all information or data that could reasonably be used to identify a person. Examples of personal information include: contacts, photos, phone number, audio & video recordings, location, SMS or other text communication, images of the computer’s desktop or screen shots, unique identifiers based on the computer's hardware, and in some cases, combined browsing history.
4.2 Your app must respect system settings for notifications and remain functional when they are disabled
This includes the presentation of ads and notifications to the customer, which must also be consistent with the customer’s preferences, whether the notifications are provided by the Windows Push Notification Service or any other service. If a customer disables the notification function, either on an app-specific or a system-wide basis, your app must remain functional.
Additionally, the app must not include, link to, distribute through the Windows Push Notification Service, or otherwise provide an entry point for viruses, malware, or any other malicious software, to access the customer’s Windows system. The app must not modify or delete customers’ data without their consent.
The Windows system includes the computer running Windows, any software running on that computer, and any computers or software communicating with that computer.
4.4 Your app must not be designed or marketed to perform, instruct, or encourage tasks that could cause physical harm to a customer or any other person
We would consider an app that allows for control of a device without human manipulation, or that is marketed for use to resolve emergency or lifesaving situations to violate this requirement.
When operating over a metered network, your app must offer the customer the option of permitting these transfers without limit or limit audio and video transfers to these data rates:
Video streams, which include download-only and two-way video messaging, must use an adaptive bit-rate technology and limit the transfer rate to no more than 256 Kbps.
Audio streams, which include voice over IP (VOIP), must limit the data rate to no more than 64KBps.
When the customer’s computer is connected to a metered network, your app must obtain permission from the customer or wait until it has access to an unrestricted network before it performs any synchronization, upload, or download that requires a total transfer larger than Windows.Networking.Connectivity.DataPlanStatus.MaxTransferSizeInMegabytes.
When the customer’s computer is operating outside of its home network or connected to a metered network while over the data limit, your app must obtain permission from the customer before it performs any data transfer that is larger than 1 megabyte.
4.6 Your app must comply with Windows Push Notification Service (WNS) requirements if it uses WNS notifications
If your app uses the Windows Push Notification Service (WNS) to transmit push notifications, it must do so as described in this requirement.
a) You may only use WNS for apps distributed through the Windows Store. Notifications provided through WNS are considered app content and are subject to all Windows Store app policies, including the certification requirements.
b) Your app must be associated with only one Package Security Identifier.
c) You may not obscure or try to disguise the source of any WNS message or Package Security Identifier, or other unique referral identifier.
d) You may not include in a notification any info a customer would reasonably consider to be confidential or sensitive.
e) Your app must not use excessive network capacity or WNS bandwidth, or otherwise unduly burden the Windows system with WNS notifications. For example, using WNS to stream content or transfer files violates this requirement.
4.7 If you use a transaction provider other than the Store's, you must identify the provider at the time of the transaction or when it collects any payment info from the customer
If your app uses the Windows.ApplicationModel.Store namespace for in-app purchases, this messaging is provided for you. If your app uses any other method for in-app purchases or to collect payments, it must display a message to the customer stating that you are responsible for the transaction and not the Windows Store.
For example, in-app purchases made from apps produced by Contoso that don’t use the Windows Store for the transaction would display a message such as, “This item is available from Contoso” at the time of the transaction.
4.8 If your app doesn't use the Windows.ApplicationModel.Store namespace for in-app purchases, your app must prompt the user for authentication to allow a transaction to be accomplished.
The app can offer the user the ability to save this authentication, but the user must have the ability to either require an authentication on every transaction or to turn off in-app transactions.
4.9 If your app collects credit card info or uses a third-party payment processor that collects credit card info, the payment processing must meet the current PCI Data Security Standard (PCI DSS)
This section describes types of content that are not permitted in the apps made available in the Windows Store.
Content means the images, sounds, and text contained in the app, the tiles, notifications, error messages or ads exposed through your app, and anything that’s delivered from a server or that the app connects to. Because Windows and the apps in the Windows Store are used around the world, these requirements will be interpreted and applied in the context of regional and cultural norms.
Apps with a rating over PEGI 16, ESRB MATURE, or that contain content that would warrant such a rating, are not allowed. Metadata and other content you submit to accompany your app may contain only content that would merit a rating of PEGI 12, ESRB EVERYONE, or Windows Store 12+, or lower.
We understand that in some cases, apps provide a gateway to retail content, user generated content, or web based content. We classify those apps as either Storefront apps, whose primary function is to aggregate and sell third party media or apps, or Streaming apps, whose primary function is to aggregate and stream web-based images, music, video or other media content. In some cases, it may be acceptable for a Storefront or Streaming app to include some content that might otherwise be prohibited in a single purpose app.
5.2 Your app must not contain content that advocates discrimination, hatred, or violence based on membership in a particular racial, ethnic, national, linguistic, religious, or other social group, or based on a person’s gender, age, or sexual orientation
5.3 Your app must not contain content or functionality that encourages, facilitates or glamorizes illegal activity
5.4 Your app must not contain or display content that a reasonable person would consider to be obscene
5.6 Your app must not contain content that encourages, facilitates or glamorizes excessive or irresponsible use of alcohol or tobacco products, drugs or weapons
5.7 Your app must not contain content that encourages, facilitates or glamorizes extreme or gratuitous violence, human rights violations, or the creation or use of weapons against a person or animal in the real world
Your app’s name is what we use to list your app in the Windows Store. You must give your app a name that is unique throughout the Windows Store catalog. You can give your app a name in another language; but additional names must also be unique throughout the Store.
6.2 Your app must have a Windows age rating, and you must submit third-party ratings for your app if you have them
You must assign a Windows Store age rating that most accurately matches your app. The Age rating page contains more detailed descriptions of the content that is suitable for each Windows Store age rating.
If your app provides a user with uncontrolled: (i) access to online social networks, or (ii) sharing of personal information with third parties, including other gamers or online acquaintances, then you must assign it a Windows Store rating of at least 12+. For such activity to be considered "controlled", your app must include parental control features that require parental permission to use such sharing features, and you must identify those and explain their functionality in the Notes to testers.
If you submit a Storefront or Streaming app, you should rate your app in accordance with this section. You should also consider the target audience for your Storefront or Streaming app in your rating, based on the content that users of your app may be able to access. If a rating under any particular rating system is required by law in any country, you must include the rating documentation for that rating system along with your app.
If your app is rated by an optional ratings board that is identified in Rating boards for Windows apps, you must also submit that ratings certificate for the app and provide the appropriate content descriptors.
If your app has any existing third-party rating, the Windows Store age rating for the app must be determined from the following table. If your app has rating board ratings that correspond to different Windows Store age ratings, you must assign the Windows Store age rating that corresponds to the older audience.
Apps with a rating over PEGI 16, ESRB MATURE, or a corresponding rating under other ratings systems as described in the table below, are not allowed.
|Windows Store Age Rating||PEGI||ESRB||CERO||GRB||USK|
3+ Suitable for young children
PEGI 4 in Portugal
A (all ages)
A (all ages)
USK ab 0
7+ Suitable for ages 7 and older
PEGI 6 in Portugal
USK ab 6
12+ Suitable for ages 12 and older
USK ab 12
16+ Suitable for ages 16 and older
USK ab 16
Note Adult content is not allowed in the Store.
USK ab 18
We don’t provide customer or technical support for your app. You must provide that support and specify easily discoverable and accurate technical support info for your app in the Support contact info field of the Description.
If your app requires authentication, such as a user or account name and password, you must provide a retrieval mechanism for account info—for example, through a secondary email account or phone support—and respond to customers within 24 hours.
If your app contains content or features restricted to certain regions, those restrictions must be clearly indicated in your app’s Description page.
Your app can only support Windows Store allowable languages, and at least one of those languages must be a certification language. The experience provided by an app must be reasonably similar in all languages that it supports.
You must provide a complete description of your app for your customers in each language that you declare in your app's package. The other elements of your app's description, such as screenshots, text and promotional images, must be localized..
6.6 The capabilities you declare must relate to the core functions and value proposition of your Windows Store app, and the use of those declarations must be compliant with our app capability declarations.
Learn more about our app capability declarations.
When you submit an update to the Store, you must describe any changes in the features of the app. In addition, you must also describe any changes in the app manifest's Package/Capabilities element.
These descriptions belong in the Description of update field.
You must provide at least one, but no more than eight, localized screenshots of your app for each language your app supports. Each screenshot image must:
Be .png files, 1366x768 pixels in size.
Be appropriate for people as young as 12 years old.
Have a caption in the language of the description.
Graphically enhanced screenshots are not allowed, unless they are clearly marked as having been enhanced.
In each of your app’s packages, the app manifest elements must contain the correct values as described in the Package metadata requirements.
Your app’s packages must comply with the Package format requirements.
In addition to these requirements, you must certify desktop apps under the Windows Desktop App Certification program.
7.1 The purchase page link provided for your app must send users to a location where they can directly download the app, and must not lead users to another intermediary site or a site that spoofs the purchase page
Users must be able to buy your app quickly and easily after they are directed to your purchase page from the Windows Store.
You are allowed to provide two purchase page links for your app. You must use these links to provide users access to 64-bit and 32-bit versions of your app.
7.2 The information you provide to the Store about your app must match the information used on the purchase page for that app. That includes the app name, price and major and minor version numbers
As these requirements evolve, we’ll note the changes in the revision history here. Stable requirements are critical to your doing your best work, so we aim to ensure the changes we do make are sustainable and continue to protect and enhance your apps.
Thank you again for joining us in this commitment to delivering fantastic experiences.