To qualify for the Shopify App Store, your app must meet the requirements listed below. Each requirement in this list helps your app meet our app quality standards. Some requirements are general and apply to all apps, and others apply to specific categories of apps.
These requirements are subject to change, as we're continuously making improvements to the Shopify App Store and developer platform. The App Excellence Team conducts quality checks regularly. Your app is expected to meet any new requirements that are added here. The Shopify App Review team can reject an app at their discretion if it doesn't meet the set standards.
All Shopify App Store apps must comply with the Partner Program Agreement. Partners should act in good faith and in the best interests of merchants and buyers. Partners should not intentionally circumvent critical platform functionality.
Shopify requires apps to be secure, truthful, and privacy-safe, operating within—not around—Shopify’s core systems. Apps that circumvent core workflows or provide unapproved services (such as unauthorized payments, marketplaces, agency brokering, content copying, refunds, or lending) aren’t allowed.
Shopify can't guarantee the safety or security of an order that's been placed through an offsite or third party checkout. Apps that bypass checkout or payment processing, or register any transactions through the Shopify API in connection with such activity, are prohibited.
Your app and app listing should only include factual information. Apps that falsify data to deceive merchants or buyers, such as fake reviews or false purchase notifications, violate our Partner Program Agreement and our Acceptable Use Policy.
Apps that allow merchants to turn their stores into classifieds-style marketplaces cannot be distributed through the Shopify App Store. If you are a marketplace platform aiming to connect to Shopify in order to list products on your marketplace, consider submitting as a sales channel.
Shopify is not currently accepting apps that connect to a POS system outside of Shopify. This applies to all apps that connect to a POS system outside of Shopify.
Apps can't automatically add or pre-select optional charges to a buyer's cart that increase the total checkout price. Apps can only add optional charges to carts or at checkout after displaying the additional cost in a manner that is clear to the buyer, and upon obtaining explicit buyer consent.
Apps can’t alter or re-order shipping options in a manner that increases the default shipping price. The cheapest shipping option must always be selected by default. This restriction doesn’t apply to non-shipping delivery methods, such as in-store pickup, local delivery, and pickup points.
Your app should only duplicate product information that the merchant has the proper permission to use: their own products, officially licensed or dropshipped products. Marketing claims like "import from any store in the world" or "copy the product information from any website", whether using your app or a Chrome extension, are not acceptable.
Your app must not offer methods for processing refunds outside of the original payment processor. If your app issues store credits during a refund, it must use either refundCreate or returnProcess to do so.
Apps that provide capital funding (including but not limited to loans, cash advances, and purchase of receivables) cannot be distributed through the Shopify App Store. These types of services are difficult to monitor on an ongoing basis, and in a manner that makes sure merchants are protected from unsound lending practices.
1.2 Bill through the Shopify Billing API or Shopify App Pricing
Apps that use off-platform billing cannot be distributed through the Shopify App store, unless you've been notified otherwise by Shopify. Your app must use Shopify App Pricing or the Shopify Billing API for all app charges and be free of billing related errors.
Apps that use off-platform billing cannot be distributed through the Shopify App store. Your app must use Shopify App Pricing or the Shopify Billing API for any app charges.
Your app must allow merchants to upgrade and downgrade their pricing plan without having to contact your support team or having to reinstall the app. This includes ensuring that the charges are successfully processed in the application charge history page in the merchant admin.
1.3 Always use honest and transparent review practices
Developers are expected to maintain honesty and integrity in their interactions with merchants, buyers, and the Shopify ecosystem. Reviews that are fake and/or incentivized are strictly prohibited. Developers violating these policies may face consequences such as the removal of reviews, demotion or delisting of your app, or termination of your Partner account.
Asking for reviews must be done so in neutral language. It is forbidden to offer incentives or withhold features in exchange for reviews, regardless of whether this occurs through the app or external channels.
Apps must deliver on the features described in their app store listing. The core functionality must work properly and comply with the Shopify Partner Program Agreement and Acceptable Use Policy.
Merchants should have a positive experience when using your app. Your app should be easy to use and free from errors that prevent your core functionality from working.
Your app must be free from user interface bugs, display issues, or error pages that fully prevent completion of the review. Web errors such as 404's, 500's, 300's, and etc are not acceptable.
All apps in the Shopify App Store must be operational through a UI regardless of how the app is launched. Operational errors (errors within an apps' functionality) are acceptable, web errors (404's, 500's, 300's) are not acceptable.
If your app synchronizes data with Shopify, then it must ensure accurate and correct transfer of data between both platforms. This means ensuring that all synchronized data is consistent across the Shopify admin, your app, and any additional platforms your app depends on.
Your app must use Shopify's APIs and integrate with platform tools like Shopify App Bridge to provide an embedded admin experience. Admin extensions must provide novel, feature-complete functionality without promotions or inappropriate modal launches.
As of March 13th, 2024, all apps must use the latest Shopify App Bridge by adding the app-bridge.js script tag before any other script tags. We recommend adding it to the
of each document of your app or as the first script element.
As of April 1, 2025 all new public apps must be built exclusively with the GraphQL Admin API. As of October 1, 2024 the REST Admin API is considered a legacy API and should no longer be used. For details and migration steps, visit the migration guide.
Max modal (formerly known as full screen mode) must not launch without a merchant interaction. Max modal can't be launched from the app navigation menu.
Sidekick app extensions must operate within the scope of your app’s core functionality. To ensure platform integrity and merchant transparency, your extension configuration, public App Store listing, and actual runtime execution must be materially consistent. Tools, intents, and actions exposed to Sidekick must be a logical representation of what your app does for the merchant on its own surface.
Apps can only be installed and initiated on Shopify services. Merchants expect a seamless experience when installing and uninstalling your application.
Apps must be installed and initiated only on Shopify services. Your app must not request the manual entry of a myshopify.com URL or a shop's domain during the installation or configuration flow.
Your app must immediately authenticate using OAuth before any other steps occur. Merchants should not be able to interact with the user interface (UI) before OAuth.
Help merchants easily return to workflows in your app if they choose to reinstall it. Your app must immediately authenticate using OAuth before any other steps occur, even if the merchant has previously installed and then uninstalled your app.
App security is critical for protecting merchants' businesses and their data. Before submitting your app, ensure it's secure and follows best practices to minimize risk.
All data exchanged between a client (such as a merchant's web browser) and your app server should be encrypted using Transport Layer Security (TLS) to ensure that any data transmitted can only be read by your application server. Websites secured by a TLS certificate will display HTTPS and the small padlock icon in the browser address bar. Your app must have a valid TLS/SSL certificate without any errors.
Your app must request only the access scopes that are necessary for your app to function properly. You may be requested to provide proof that the access scopes you've requested are required for your app to function properly. For scopes that are not required for all merchants, we strongly recommend using optional scopes.
If your app is accessing the read_advanced_dom_pixel_events scope, it must demonstrate the need for this scope. You must use this scope to either implement a heatmap or session recording functionality on checkout pages.
Your app store listing is a merchant's first impression of your app. Create clear, accurate listings that help merchants understand your app's features, pricing, and value.
Your app name needs to match, or be similar, between your Developer Dashboard (edited through TOML file or when releasing a new version) and your App Submission form (which controls the App Store listing). "Similar" means that any variations of the name contain common words.
Every app must have its own unique, recognizable name that leads with your distinctive brand identifier. Your app's name must not be identical or confusingly similar to another app, developer, brand, or Shopify product.
Merchants scan specific places in app listings to quickly understand costs and value. Do not include pricing information in undesignated areas like your app logo, to prevent merchant confusion. Keep this information in Pricing details.
Do not include pricing information in the images of your app listing (including within your app icon). Pricing information should only appear in the Pricing details section of your app listing.
Merchants scan specific places in app listings to quickly understand costs and value. Do not include pricing information in undesignated areas like your app logo, to prevent merchant confusion. Keep this information in Pricing details.
Help merchants understand if they need to be using the Online Store channel (rather than a custom storefront) to get the most value from your app. If your app embeds features in a merchant's Online Store, then select "Merchant must have online store" under the Sales channel requirements section of your app listing form.
The Languages section of your app listing must only list languages in which merchants can use your app's UI. If your app offers multiple languages for customer-facing features, you may describe these in the App Details or media gallery sections of your app listing (optional).
Do not use any statistics or data in your app's listing content, overview of the app, and/or app introduction. This includes verifiable and unverifiable information. Focus on your app's benefits when rewriting your listing and avoid using terms like "the first", "the best", or "the only".
Do not use any statistics or data in your app's listing content, overview of the app, and/or app introduction. This includes verifiable and unverifiable information. Focus on your app's benefits when rewriting your listing and avoid using terms like "the first", "the best", or "the only".
Your tags should accurately reflect the primary function(s) of your app. Make sure to review the definitions of our categories and tags to help merchants find your app.
Do not use reviews and testimonials in your app's listing and other undesignated app listing areas. Reviews will be added to your listing page based on merchant feedback.
Do not use reviews and testimonials in your app's listing and other undesignated app listing areas. Reviews will be added to your listing page based on merchant feedback.
Specify geographic requirements or specific API permissions in your app's listing if they are needed for your app to function. Only merchants in the correct geographic location or on a plan with the required API permissions will then be able to install your app.
Your app store listing content should describe your app's features at a high level. When creating your app store listing content, don't reference your other apps and services in your app store listing content.
The app card subtitle helps merchants to quickly understand what your app does, and what sets it apart from others. Summarize your app in a concise phrase, and explain the value of your app. Don't add keywords to your subtitle with the intent of improving search performance. Don't use personal merchant information without consent from the merchant. Don't include any data or statistics. Share this information on your website and landing pages instead.
Your app details must include a clear explanation of your app's functionality with enough information about features for merchants to confidently install. Avoid excessive use of marketing keywords or only having a structured feature list.
Do not use our trademarks in your app icon, banner, or screenshots. Our trademarks can only be used to communicate your app's compatibility with Shopify in accordance with our brand guidelines.
Images should primarily show your app's actual user interface and features. Screenshots should not include desktop backgrounds or browser windows. Feature images and screenshots that solely contain your app logo are not permitted.
Each image in your app listing must be unique. Screenshots should showcase different features, views, or states of your app. Don't submit duplicate or near-identical images.
If your app doesn't meet Shopify's definition of a Sales Channel, remove the Sales Channel configuration and then deploy the change to configure your app into a regular app.
Include a screencast to demonstrate your app’s onboarding and features as described in its listing. We require more information in your demo screencast to be able to set up and test the app successfully. Ensure the video offers clear step-by-step instructions showing how to set up your apps core features. The screencast should be in English or have English subtitles.
If your app requires login credentials, then the credentials you provide for review must be valid, and grant full access to the app's complete feature set. Double-check all credentials before submission to avoid issues during review.
Add an emergency developer contact to your Partner Dashboard. This contact will receive critical technical information for maintaining your Shopify app. Add an emergency developer contact on the Partner account settings page, or learn about setting up developer contacts.
Your app must have detailed setup instructions on how to install your app embeds and app blocks. We strongly recommend providing a deep link to help merchants install and preview your app in their theme.
App Name Branding in storefront visual components is only permitted when customers directly interact with branded elements as a key aspect of their buying experience or removal would cause confusion or harm to customers. All other cases must use the standard attribution pattern only.
Return customer data collected through a Shopify hosted service to the merchant's Shopify admin. Specifically, this applies to data collected through the Online Store and Point of Sale sales channels. All data collected must be accessible to merchants and comply with the Shopify API License and Terms of Use under section 2.3.17.
Prevent additional delays in your app store review by providing detailed testing instructions for your payment app. These include (1) a test store with the payments app installed; (2) the required credentials to enable installing the payments app for testing (for example, activation codes and login credentials); (3) Instructions on how to process a test payment and refund; and, if applicable, (4) a description of specific testing scenarios including installments/deferred payments and 3D Secure authentication.
Your app’s buyer flow on desktop and mobile devices must redirect from Shopify’s checkout to your app’s payment flow, then back to Shopify’s order confirmation page. Refer to our help document for more details.
Payment apps are not allowed to be embedded into the Shopify Admin. Manage your embedded app configuration via TOML files. Once this is done, please ensure that it is possible to still setup the payments app and be redirected to the correct section in the Shopify Admin after the setup has been completed.
Your app’s offsite payment must present identical payment information to what was shown to the buyer on the checkout, particularly the currency and amount and buyer name.
Update your app to display only Shopify approved payment methods to the buyer. Your payment app must not process payment methods that include, but aren't limited to, Apple Pay, Google Pay, Shop Pay, PayPal, and Alipay. Shopify has a direct connection with providers that improves performance and checkout conversion for merchants.
Ensure your app name reflects your payment gateway’s legal business name. Exclude marketing text or special characters and spacing. These distractions do not give your app any advantages. If a name appears to have been created with the purpose of gaining a higher listing on an alphabetized list, your app will be rejected.
Your checkout UI extension can only use these targets: Purchase.checkout.payment-option-item.hosted-fields.render-after, Checkout::PaymentMethod::Render, Purchase.checkout.payment-option-item.details.render.
Any checkout interface customization needs to support payment completion. Banners, logos, or graphics can’t be used for error states or as decorative elements.
A payment facilitator app works in tandem with a payment app. They enable merchants to display the related payment branding throughout their storefront.
Offer free integrations. These apps must be gateway-owned, non-transactional, and free for merchants.
Apps that process financial transactions for payment gateways are prohibited from the Shopify App Store. Your app must add value to a merchant store, and not be used for the sole purpose of collecting data.
A purchase option app offers subscription-based products and services to merchants' customers.
Build compliant purchase option integrations. These apps require strict API compliance, comprehensive testing across browsers, functional customer portals with full subscription management, and clear pricing transparency.
Include a screencast of your app functioning from a Merchant's customers point of view on the following listed browser and device types, in your testing instructions. We recommend using browserstack to address this.
Only API scopes that are required for your app to function are permitted. If your app requests the write_customer_payment_methods or the write_own_subscription_contracts scopes you may need to provide evidence that they're truly necessary for your app to function.
Ensure that your app is using the correct API scopes to reflect functionality. Apps that do not use the Selling Plan and subscription contract APIs properly, are not permitted on the App Store. For additional context, refer to Purchase option access scopes.
Include a screencast of your app functioning from a Merchant's customers point of view on the following listed browser and device types, in your testing instructions. We recommend using browserstack to address this.
Implement the product extension to allow merchants to create and manage selling plans from the Shopify's admin product page. Merchants need to be able to choose which products they want as subscriptions.
Include access to your app's subscription portal through the Shopify Customer portal. A single login must be used by buyers to access subscriptions and their order history.
The purchase option app must include an in-product mechanism to allow a buyer to cancel or discontinue their purchase option, for example, a pre-order management portal or a cancel link in an email.
Apps that offer subscriptions must include navigation to a customer portal, both on the order status page and through a post-purchase email to a merchant's customers so that they're able to manage their subscription.
Purchase option apps must clearly show buyers the price of the purchase option and when they will be charged. We recommend that this is done through a standalone app extension, as described in the subscription UX guidelines and deferred purchase option UX guidelines.
Ensure that your app abides by our selling plan and subscription contract API terms. Actions like overbilling, and misuse of vaulting are prohibited. Any failure to avoid these prohibited actions constitutes a breach of the Shopify API License and Terms of Use.
Display all of the buyers' purchased subscriptions through the customer portal. Details must include the associated products, delivery frequency, price, and order schedule. See this document for additional details.
Update your app to support multi-currency functionality properly, so that pricing and discounts correctly show on the product page. Product pricing shouldn't be hard-coded as part of plan names or descriptions.
Use the fulfillmentOrderSubmitFulfillmentRequest mutation to allow merchants to request fulfillment from the dropshipping app when an order is created. Refer to this document for additional details.
When charging merchants the cost of goods sold, you must use a PCI compliant payment gateway. All other charges associated with your app must go through Shopify's Billing API.
Products that violate Shopify's Acceptable Use Policy and the Terms of Service for Payment Providers are prohibited. Products like cannabis, alcohol, pharmaceutical drugs, weapons and items listed as prohibited businesses are included in this restriction.
Stop your app from automatically marking orders in a pending payment state as fulfilled to comply with our product sourcing requirements. This protects you from financial risk in case you receive a sudden influx of fraudulent orders.
A checkout customization app allows merchants to customize the checkout process to add custom UI or content.
Extend checkout compliantly and transparently. Checkout extensions require strict compliance including proper display, merchant-controlled content, customer consent for charges, accurate product data, and prohibited element restrictions.
Apps can’t automatically add or pre-select optional charges to a buyer’s cart that increase the total checkout price. Apps can only add optional charges to carts or at checkout after displaying the additional cost in a manner that is clear to the buyer, and upon obtaining explicit buyer consent.
Extensions must not collect information, including personally identifiable information, that's already captured by a standard Shopify checkout form field.
A sales channel app lets merchants publish their products from their Shopify admin to your platform, whether they're selling online, on mobile apps, or through social media.
Build compliant sales channel integrations. Sales channel apps require strict UI and API compliance, proper account management workflows, Shopify checkout integration, and transparent merchant communication.
You need the read_only_own_orders scope to comply with our requirements. This scope ensures the sales channel can only read orders that it created and is added to the sales channel during review. Let us know if you're ready to have this flag added to your sales channel.
Show the current number of published products in the publishing section, and provide links to the Shopify bulk editor to view and manage those products.
Once products are uploaded to the marketplace, make sure merchants know how to navigate to the marketplace where their products are hosted. This can be in the form of a button or information in the instructions.
Allow merchants to disconnect your sales channel from their store without contacting support to comply with our sales channel configuration requirements.
Ensure that an account section, using the account connection component, is always visible and labelled with your channel name to comply with our sales channel configuration requirements.
The approval process for your sales channel must be communicated to merchants using the banner component. Clearly communicate the account status the merchant is in. While merchants are awaiting approval, your sales channel must remain in a pending state.
The write_checkout_extensions_apis scope has been granted for your app. Familiarize yourself with the Shopify API License and Terms of Use to ensure your app remains compliant.
To comply with our guidelines, update your upsell app to be transparent about all costs associated in a buyer's purchase. The buyer must be provided preset accept and decline options on the upsell. You may have set examples to choose from (ie. "Take the deal" / "No thanks", "Buy" / "Decline offer", etc.), however these cannot be modified by a merchant.
Display the correct total cost of the upsell offer to the buyer. Your app must dynamically update and reflect price changes if the buyer adjusts the product's quantity or variants.
A mobile app builder lets merchants create a mobile app based on their online store.
Configure mobile apps as sales channels. These apps must operate as sales channels for checkout functionality and inform merchants about app store submission processes and requirements.
Convert your mobile app builder into a sales channel to allow checkout creation by the apps it builds. Make this change to comply with our mobile app builder requirements.
Include information about either the Apple App Store or the Google Play store app submission process. Inform the merchant about their wait times and app requirements to comply with our mobile app builder requirements.
If a portion of the donations are being used to offset the cost of the app, provide a percentage value indicating how much in the user interface as well as the pricing section of the listing.
A blockchain app allows merchants to sell, transfer, or modify non-fungible tokens (NFTs).
Build compliant integrations and get payment partner approval. Blockchain apps require payment partner approval, primary sales support only, comprehensive fulfillment tracking, data privacy protections, and strict compliance with securities regulations.
You must not sell, transfer, or modify fungible tokens unless you are a payment partner that has been approved by the Shopify Payments Team. For more information on becoming a payment partner, read the Extensions for payments documentation.
A user interface is required to provide the merchant with the status of each NFT fulfillment status and subsequent fulfillment interactions with a customer.
For each fulfilled NFT, blockchain apps must write the blockchain transaction ID to the order's Fulfillment tracking_number field, and a valid block scanner URL for the NFT fulfillment transaction to the order's Fulfillment tracking_url field. If needed, the name of the blockchain, fork, or network can also be written to the order's Fulfillment tracking_company field.
With respect to the minting method configured for a given NFT, a merchant’s NFT fulfillment actions in the Shopify admin must result in a timely NFT claim message being sent to the customer.
A merchant needs to be able to maintain the context (requests and creations) of all of the NFTs they offer from a single interface, the embedded app home.
Apps should in no event facilitate the sale or marketing of NFTs that represent or qualify as securities or other regulated financial instruments, or activities related to securities or other regulated financial instruments.
Apps are presently only able to support the primary sales of NFTs on Shopify. A gallery display of NFTs on a Shopify store that are not represented by products or hosted in the admin is not supported.
Ensure that the destination contact information for the NFT claim entered at checkout cannot be redirected to a new recipient without the express review and confirmation of the customer, merchant, NFT application developer, and the Shopify Blockchain team.
The App Review Team must be able to perform end-to-end testing of an NFT distribution application, including the creation, minting, and delivery of NFTs where necessary, in order to validate all app functionality. Include all relevant testing instructions (for example, test store, wallet, and screencasts) in Part G of the app submission form.