App Checks and Testing Guide

When you submit your app for review one of our integration managers checks your app thoroughly against our guidelines. This article includes the basic checks and tests you're required to make during development and before you submit your app for review.

What you need to do

All apps are built differently, so you should only check and test all of the elements that apply to you. In this article we cover:

Recommended: use a free Premium testing site

To make testing easier you can install your app on a free Premium testing site.

Test on a range of browsers

It's important to test your app on a range of commonly used browsers and devices.

Desktop browsers

Click the links below to download the latest versions:

Mobile browsers

Click the links below for instructions:

Tablet and iPad browsers

Wix supports viewing live sites from iPads and tablets. However, the Wix Editor is not supported on iPads or tablets.

Supported browsers on iPads and tablets:

  • Google Chrome 
  • Safari 

Supported operating systems on iPads and tablets:

  • iPads: iOS 12 and above
  • Android: 9.0 and above


Make sure you've gone through everything in our dedicated OAuth article and technical documentation.


  • That you have a dashboard component – this is a basic requirement for all OAuth apps.
  • Make sure that the URLs are not on a local host.


1. In the Wix Developers Center click on the Test Your App button and choose App Market.

2. Click on Add to Site – at this point Wix redirects the user to your app URL with a token.

3. A consent modal should appear – this is how users authorize the permissions you added in the Wix Developers Center for step 2 of the OAuth flow. If not, check your OAuth flow setup.

4. Accept the permissions.

5. Wix will send the user to your redirect URL, and your app dashboard should show up and commence its onboarding flow.

6. At this point, the app is installed on the user's site and you should have their instanceId – this is the unique identifier for the user's site that the app is installed on.

7. Once the user completes the onboarding flow, send the BI event of 'App Finishes Installation'.


Make sure you've gone through everything in our dedicated permissions article.


  • Make sure that you only added the minimum necessary permissions for your app to function.
  • If you added scopes: remove all the permissions already included in that scope. E.g., the Manage Orders scope already includes Read orders, Manage bookings and Read bookings, etc.


  1. Make the required API calls for your app, and make sure you don't receive errors of missing permissions.


Make sure you've gone through everything in our dedicated webhooks article.


  • We recommend adding the App Installed and App Removed webhooks in addition to any other webhooks you have.
  • Make sure you return a 200 response upon successful receipt of the webhook.


  1. Use the Test button next to your webhook in the Wix Developers Center to make sure you receive it.
  2. Trigger the webhooks using your Wix site; E.g., Create an order on the site and make sure that you receive the webhook response that an order has been created successfully.
  3. The response in the webhook log should be 'Success' – if not check the URL and make sure to return a 200 response.

Dashboard component

Make sure you've gone through everything in our dedicated Dashboard component article.


  • The page URL is not on a local host.
  • If your dashboard opens in the Wix dashboard, then complete step 5a of the OAuth flow.


  1. Install the app via the Wix Developers Center, click the Test Your App button, and choose Dashboard.
  2. If your app has an internal dashboard component the consent window should close when you've approved the permissions and your app will open in the Wix dashboard.
  3. Close the app.
  4. Open the app from the Manage Apps section in your Wix site manager – the app's dashboard should open.

Embedded Script component

Make sure you've gone through everything in our dedicated Embedded Script article.


  • The script: make sure it's the correct type.
  • That the script itself has a dynamic parameter, the recommended syntax is: <script id="my-script" src="{{KeyName123}}" async='true'></script>
  • Embed the script using the API call.


  1. Install the app on a Premium site with a connected domain.
  2. Enable the embedded script using the API.
  3. Go to a live Wix site with the app installed, and make sure that it's not disabled (there's an option to pause the script in the Manage Apps section).
  4. The script should be shown on the site – you can also check it in the network tab, and filter 'tags' – the script should show there as well.

Custom Element

Make sure you've gone through everything in our dedicated Custom Element article.


  • The tag name should be unique for each custom element.
  • The settings panel should comply with our guidelines.


  1. Install the app on a Premium site with a connected domain.
  2. Go to the Wix Editor, the custom element should be added. 
  3. If you have multiple custom elements, add them using the custom element's Settings > Add-ons.
  4. Make sure each settings parameter changes according to what's chosen.
  5. Save the site and publish it – go to the live site and check that the custom element is shown as expected.

Market listing

Make sure you've gone through everything in our dedicated market listing article. Here are some common issues:

  • App name: Shouldn't be generic.
  • Teaser, app features, and full description: Don't mention Wix, stats, data, etc.
  • Media: Images should be high quality and not pixelated, you should have at least 3 images. 
  • Demo site: Only needed if there is a visual component on the site, this needs to be a real Wix website featuring your app.

Pricing and checkout

Make sure you've gone through everything in our dedicated app pricing guide.

Apps that use Wix internal billing
  • Test the entire checkout flow of the app installed on a Wix site – test each plan, cancel plan, etc.
  • Redirect the user within the app to Wix Pricing Page:
  • Don't allow downgrades, only canceling the plan and purchasing new one is supported.
  • Add all the plans to the Wix Developers Center and connect each to Wix checkout using the API.
  • Test each plan, and make sure they all lead to the Wix checkout.
  • Make sure the prices are consistent with the ones you added in the Wix Developers Center.
Apps that use their own external billing
  • If you have dynamic plans or your business model is based on fees, please choose Dynamic Pricing and add plans.
  • Make sure all your plans are added to the Wix Developers Center.
  • Make sure to sign the relevant addendum.

App behaviour

Identify users by their instanceId

Install the app on multiple Wix sites and use instanceId to make sure that you show the relevant account details for each site (separated billings, dashboard, etc.).

  1. Install the app on your Wix site via the Wix Developers Center.
  2. Go through the onboarding flow and create an account if needed, upgrade the app and use it.
  3. Install the app on a second Wix site.
  4. At this point, you should identify that it's a new user using instanceId – you shouldn't identify users by their session/cookies.
  5. If the account is needed for your app, then:
  • (Case 1): If you support multiple site connections under one account, build a flow that allows users to switch between their accounts. The user should be able to log in to your app with their existing account, but the details should be connected to the site they opened the app with and your app should distinguish between the sites that the user installed the app on by the instanceId.
  • (Case 2): If you support one account per site, you should support a flow where you let the user know that they already have one site connected under their account and if they want they can disconnect it or create a new account.

For both cases, billing should be separate for each site.

Auto login flow (if account login required)

After a user creates an account for your site and opens the app through Manage Apps, they should be auto logged in based on the instanceId we send you when the user clicks “Open App”.

  1. Install the app from the Wix Developers Center.
  2. Create an account.
  3. Close the app.
  4. Go back into the app through Manage Apps.
  5. You should be auto logged in.

Forgotten password flow

If your app requires the user to log in with a password, you should check the forgotten password flow works correctly:

  1. Install the app.
  2. Create an account.
  3. Log out.
  4. Click on 'Forgotten Password'.
  5. Check your email – a link should be sent to create a new password.
  6. Create a new password and sign in.


Plaintext passwords should not be kept or sent in any scenario.

App requirements

If your app requires Wix Stores, Wix Bookings etc., then use the Get App Instance API (installedWixApps field) to make sure that the user has Wix Stores installed on their site.

If they don't, then please create a flow that lets the user know they need Wix Stores to use your app (a message saying so, etc.).

Review modal

You should implement the review modal in your app flow – this helps to gather more reviews for your app, which can help with its success.

Site duplication

A duplication is effectively a new install of your app, but users skip the consent flow. This might mean that users access the app from a new instanceId without a refresh token.

  1. Duplicate your test site with your app installed on it.
  2. When your app endpoint is called, check if the instance parameter has an originInstanceId property. If it does, this means that the app is being copied from another site.
  3. See the originInstanceId in the App Installed Webhook.
  4. Show a screen prompting users to go through the app installer again so that you can get the refresh token needed to complete the installation flow.

Submit your app for review

Once you've gone through everything in this list, you can submit your app for review and a member of our team will let you know if anything needs fixing before we publish your app.

Was this helpful?