Performance, integration and category-specific requirements come into practice
To ensure that the Built for Shopify status represents the highest quality of app apps will need to meet the following performance, integration and category-specific requirements. These requirements are designed to ensure that each app that earns the Built for Shopify status excels in meeting the unique needs of the merchants it serves.
Built for Shopify annual review will be on January 2, 2025.
Performance requirements
Date enforced: January 2, 2025
Make the admin performance meet 75th percentile Web Vitals targets
- Cumulative Layout Shift (CLS): will be re-introduced and needs to be 0.1 or less.
- Interaction to Next Paint (INP): 200 milliseconds or less.
This requirement replaces the previous First Input Delay (FID) requirement.
Minimize the impact on checkout speed
- Your app must make a minimum of 1,000 requests over the last 28 days.
- Your requests must have a p95 value of 500ms or less, with a 0.1% failure rate.
These requirements will replace the following ones: Your app must make a minimum of 1,000 requests over three weeks. Your app must have a p99 value of 1000ms or less, with 0% failure rate.
Integration requirements
Date enforced: January 2, 2025
Enable seamless sign up based on Shopify credentials Apps should make sign up seamless for merchants, without requiring an additional login or sign-up prompt. Users should be able to begin using the app immediately after installing it without having to complete another sign up. Exceptions apply on apps that can’t be easily accessed by merchants in a self-service manner and require a more complex sign-up, often involving a business-to-business contract. In these cases, the first step to the in-admin onboarding of these apps must always be a workflow that enables a merchant to link the current store with their existing credentials. If your app offers both self-service and business-to-business sign up, then the app's onboarding must include an option to sign up for the service using the merchant's existing Shopify credentials.
Include simplified monitoring or reporting Expose key metrics that are helpful for merchants on the app’s home page. If your app includes monitoring or complex reports that can only exist on an external website or app surface, then you must include a simplified version of the monitoring or reporting in the Shopify admin.
Keep third-party connection settings within Shopify Any settings or configurations that control the connection between Shopify and a third-party system must be available inside the Shopify embedded app interface.
Category specific requirements
We understand not all apps are the same. Apps are built to address a wide variety of merchant workflows and serve many diverse functions. Moving forward some categories of apps must adhere to additional requirements. These requirements specify specific APIs, integrations, and design guidelines that reflect what a great app in these categories looks like.
Product bundles apps Date enforced: January 2, 2025
- Use bundles primitives Your app must either use the GraphQL Admin API to create static bundles or use a cartTransform function to create customized bundles. However, if your app supports a bundles use case that is not yet supported through these APIs --- such as selling bundles on unsupported sales channels, selling bundles as a part of a subscription, or editing orders to add or remove bundles after purchase --- you may use other methods to create a bundle.
Subscription apps Date enforced: January 2, 2025
Use subscription objects and APIs Your app must use the following subscriptions objects:
- Selling plan API to create and manage various ways to sell and buy products
- Subscription contract API to create, manage, and update subscription agreements between a customer and merchant in real time.
- Customer payment method API to store payment methods that can be used to pay for future orders without requiring the customer to manually go through checkout.
Use theme app block extensions Your app must add subscriptions on product detail pages by using an app block for themes that is compatible with Online Store 2.0.
Your app must obey the following subscriptions UX guidelines
The subscription information --- including selling plan name, price, and savings --- must be clearly displayed on the product, cart, and order detail pages.
The subscription option information must automatically match the color palette, font, font-size, and font weight of the store's current theme by default.
Discount apps Date enforced: January 2, 2025
Use discount primitives Your app must either use discount functions to define custom discount types or use the native discount APIs to create discounts.
Do not use draft orders with custom discounts Your app must not create draft orders to give custom discounts. Drafts with custom discounts are designed for one-off merchant-driven flows rather than automated customer-driven flows and do not have the same reporting tools.
Your app must use the
API to create any discounts with multiple redeem codes. Don't use the GraphQL Admin API to create multiple discounts with the same value but different redeem codes.
Create high quality links All links to your app from the Create discount button on the discounts page must direct to a page in your embedded app where merchants can create the corresponding discount. These pages must follow all relevant App Design Guidelines.
Product reviews apps Date enforced: January 2, 2025
Provide a flow trigger Your app must provide a Flow trigger that starts a workflow whenever a new review is collected.
Use block extensions Your app must provide an admin block extension on customer detail pages that allows merchants to see any reviews submitted by the customer.
Fulfillment services apps Date enforced: January 2, 2025
Actively fulfill orders Your app must be active and have fulfilled 100 or more fulfillment orders in the last 28 days. If an app is not active, then it's not possible to accurately assess the other criteria for fulfillment services apps.
Complete fulfillment orders Your app must have completed 99% of the fulfillment orders assigned to it in the last 28 days. New fulfillment orders that were created in the last 7 days are excluded. A fulfillment order is considered incomplete if it is in one of the following states:
open, submitted
Wait for merchant requests Your app must only fulfill fulfillment orders after a merchant requests fulfillment.
Add tracking information In the last 28 days, your app must have added tracking information to 80% of the fulfillments that it creates within one hour of creation. In cases where precise tracking information isn't available from a shipping carrier URL, you can provide a custom URL to your app's site by: Using
to populate
and
at the time of creation, OR Using
to mutate an existing entry and populate
and
.
Respond to fulfillment requests In the last 28 days, your app must have responded to 99% of fulfillment requests within four hours by either accepting or rejecting the fulfillment request.
Respond to cancellation requests In the last 28 days, your app must have responded to 99% of cancellation requests within 1 hour by either accepting or rejecting the cancellation request.
Fulfillment services apps Date enforced: July, 2025
- Respond to callback requests In the last 28 days, your app must have responded successfully to 100% of Shopify callback requests that are sent to it, so merchants are not alerted to failing callback requests.
Carrier services apps Date enforced: January 2, 2025
Respond quickly to rate requests Over the last 28 days, the carrier rate endpoint provided by your app must respond in fewer than 500 milliseconds for 95% of calls.
Complete rate requests reliably Over the last 28 days, the carrier rate endpoint provided by your app must successfully respond to 99.9% of requests.
Returns and exchanges apps Date enforced: January 2, 2025
Sync returns information Your app must use the appropriate APIs to communicate all lifecycle events of a return to Shopify. These include:
Include exchange line items Your app must create exchange line items on an order when managing exchanges. You must also remove exchange lines from the order if they are no longer needed.
Include shipping and restocking fees Your app must add shipping fees and restocking fees on an order when applicable.
Invoices and receipts apps Date enforced: January 2, 2025
- Enable printing on orders pages Your app must use an admin print action extension to let merchants print invoices or packing slips for an individual order directly from the orders detail page as well as for any selected orders from the orders index page.