Skip to main content

Testing your app

Note

This article applies to publishing apps in Marketplace only. For more information about publishing Actions in Marketplace, see Publishing actions in Marketplace.

You can use a draft Marketplace listing to simulate each of the billing flows. A listing in the draft state means that it has not been submitted for approval. Any purchases you make using a draft Marketplace listing will not create real transactions, and will not charge your credit card. Note that you can only simulate purchases for plans published in the draft listing and not for draft plans. For more information, see Drafting a listing for your app and Using the Marketplace API in your app.

A Marketplace listing can only be associated with a single app registration, and each app can only access its own Marketplace listing. For these reasons, we recommend configuring a separate development app, with the same configuration as your production app, and creating a draft Marketplace listing that you can use for testing. The draft Marketplace listing allows you to test changes without affecting the active users of your production app. You will never have to submit your development Marketplace listing, since you will only use it for testing.

Because you can only create draft Marketplace listings for public apps, you must make your development app public. Public apps are not discoverable outside of published Marketplace listings as long as you don't share the app's URL. A Marketplace listing in the draft state is only visible to the app's owner.

Once you have a development app with a draft listing, you can use it to test changes you make to your app while integrating with the Marketplace API and webhooks.

Warning

Do not make test purchases with an app that is live in Marketplace.

Your testing scenarios may require setting up listing plans that offer free trials and switching between free and paid subscriptions. Because downgrades and cancellations don't take effect until the next billing cycle, provides a developer-only feature to "Apply Pending Change" to force changed and cancelled plan actions to take effect immediately. You can access Apply Pending Change for apps with draft Marketplace listings in https://.com/settings/billing#pending-cycle:

For most Marketplace API endpoints, we also provide stubbed API endpoints that return hard-coded, fake data you can use for testing. To receive stubbed data, you must specify stubbed URLs, which include /stubbed in the route (for example, /user/marketplace_purchases/stubbed). For a list of endpoints that support this stubbed-data approach, see Marketplace endpoints.

provides tools for testing your deployed payloads. For more information, see Testing webhooks.