Monetize your app through the Microsoft commercial marketplace

This article describes how to sell your app through Microsoft by using Partner Center to submit your service for purchase as a software-as-a-service (SaaS) offer. Your app is free for your customers to download but requires a license to your service.

When you're ready to begin selling your service in commercial marketplace, we recommend that you submit a single SaaS application with connected apps, apps, and extensions. You're able to reach Microsoft customers through Microsoft AppSource, in addition to selling your service through partners and through the Microsoft sales team. We're making it easier for customers to discover these Microsoft 365 app solutions, and deploy them across Microsoft Teams, Word, Outlook, Excel, PowerPoint, and SharePoint.

In this monetization model, your SaaS offering authenticates your app, which verifies its subscription status with the Microsoft SaaS service. Your responses from this service are used to update your user database. You're also free to monetize using your own payment model.

Note

Sharepoint Add-ins were deprecated and can no longer be sold on the marketplace. Existing Sharepoint Add-ins continue to be available for purchase until they're deleted on the Partner Center. Sharepoint Solutions continue to be supported and can be monetized through the Microsoft commercial marketplace. To learn more about developing SharePoint Framework solutions, you can refer to the SharePoint Framework documentation. Transactable SaaS apps are only purchasable using a work or school account. If you want to sell your app to Microsoft account-based users, you should consider implementing your own billing model.

Important

Azure Active Directory (Azure AD) Graph is deprecated as of June 30, 2023. Going forward, we're making no further investments in Azure AD Graph. Azure AD Graph APIs have no SLA or maintenance commitment beyond security-related fixes. Investments in new features and functionalities will only be made in Microsoft Graph.

We'll retire Azure AD Graph in incremental steps so that you have sufficient time to migrate your applications to Microsoft Graph APIs. At a later date that we will announce, we will block the creation of any new applications using Azure AD Graph.

To learn more, see Important: Azure AD Graph Retirement and Powershell Module Deprecation.

Preparing your SaaS offer

There are two ways to prepare to submit your service as a SaaS offer:

  • You can provide a website that a customer can sign in to and use to manage their purchased licenses, or
  • You can choose Microsoft to manage licenses for customers.

Note

If you choose Microsoft License Management, your offer is available for customers only on AppSource, not on Azure Marketplace.

Your offer must also use the SaaS fulfillment APIs to integrate with commercial marketplace. For information, see SaaS fulfillment APIs. To get started, see Create new SaaS offer.

Sign up for Partner Center

To begin submitting your SaaS offer, you must create an account in the commercial marketplace program in Partner Center. This account must be associated with a company.

Register a SaaS application

You must register a SaaS application using the Microsoft Azure portal. After a successful registration, you'll receive a Microsoft Entra security token that you can use to access the SaaS fulfillment APIs. Any application that wants to use the capabilities of Microsoft Entra ID must first be registered in a Microsoft Entra tenant. This registration process involves giving Microsoft Entra ID details about your application, such as the URL where it's located, the URL to send replies after a user is authenticated, the URI that identifies the app, and so on. For details about how to register, see Register a Microsoft Entra ID-secured app.

Create your licensing database

When monetizing through commercial marketplace SaaS, Microsoft AppSource handles billing and transactions. If you choose Microsoft License Management Service, you must integrate with Graph API to verify customer eligibility so customers can manage their licenses on Microsoft Admin Center. For details on how to integrate, see Integrate your SaaS offer with Graph API for License Management

If you choose to implement license management on your own, it's your responsibility to handle license records and logic. Your SaaS should have a licensing database to keep track of all tenant purchases, and the users who have access.

Your metadata might include:

  • Tenant ID
  • Tenant Name
  • Tenant Country/Region
  • Plan
  • License type (seat-based or site-based)
  • Number of licenses
  • Admin name
  • Admin email
  • Assigned user IDs
  • Assigned user emails

Implement license management

Your service (website) must allow the admin who made the purchase to sign in and manage the account. In the case where they bought multiple seat-based licenses, they should be able to assign these to users within their organization.

  • Microsoft app licensing: If you chose Microsoft Licensing during setup of the SaaS offer (currently available for AppSource only), then you must use usageRights graph API to look up the license information. You use this information for making decisions whether customer is allowed to use your service or not. Check ISV app license management for SaaS offers for details on how to integrate with Microsoft licensing.

    • Customers use Microsoft Admin Center to manage licenses for such offers. You must inform your customers to use Microsoft Admin Center on the landing page so they're aware how they can do the license management of the purchased SaaS offer.
  • Independent Software Vendor (ISV) licensing: If you're using your own license management system, then make sure the same is made available to customers on your own website. You might want to consider the following types of licensing:

    • Open licensing/first-come first-served: Any end-user who discovers your service can sign into your service, be recognized as belonging to a tenant, and reserve one of the licenses purchased.
    • Assigned licensing: The admin for the purchase must assign licenses to users.

Other considerations:

  • Upsell - If a user tries to access your service, but their tenant has no more free licenses, your service could provide them with a temporary license, and use the opportunity to encourage the admin to purchase additional licenses.
  • Multiple tenant purchases - You should consider whether to allow numerous purchases from the same tenant, and how to treat these in your database. For example, the Contoso Corporation sales team might purchase 50 licenses for their team, and the marketing team purchase 20 licenses for their team, and they might want to keep the account separate.

Connecting to Microsoft AppSource

At this point, you built a website and services capable of authenticating customers and handling their licensing state or integrated with Graph API to authenticate customers for Microsoft License Management. In order to monetize through Microsoft (and receive confirmation of valid purchases), your service must use the SaaS fulfillment APIs to connect to Microsoft AppSource, which uses these to drive the fulfillment, changes to plans, and cancellation of subscriptions.

Provisioning (customer purchase on Microsoft AppSource)

When a customer initiates a purchase, your service receives this information in an authorization code on a customer-interactive web page that uses a URL parameter; for example, https://contoso.com/signup?token=.., when the landing page URL in Partner Center is https://contoso.com/signup. The authorization code can be validated and exchanged for the details of the provisioning service by calling the resolve API. When a SaaS service finishes provisioning, it sends an activate call to signal that the fulfillment is complete and the customer can be billed.

The following diagram shows the sequence of API calls for a provisioning scenario.

API calls for provisioning a SaaS service

Marketplace-initiated update

When a customer initiates an update on Microsoft AppSource, Microsoft AppSource notifies the webhook implemented by your service, which then queries Microsoft AppSource for an update, and then the customer is charged or refunded.

The following diagram shows the sequence of actions when an update is initiated from the marketplace.

API calls when the update is initiated from the marketplace

Service-initiated update

When a customer initiates an update on your service (if you allow this action), your service should update the subscription held by Microsoft AppSource, which in turn triggers a notification from Microsoft AppSource to the webhook you've implemented. At this point, the actual changes to your licensing database should be made. The following diagram shows the actions when an update is initiated from your SaaS service.

API calls when the update is initiated from the SaaS service

For more information, see Managing the SaaS subscription life cycle.

Build a Microsoft Entra-connected app

Your app relies on your service to verify whether the user accessing the app has a license associated with their account. It's up to you to whether you give them a free (but limited) experience or whether you direct them to where to purchase licenses. Your app should have three states:

  • User not signed in
  • User signed in, no license associated
  • User signed in, license associated

For information about authenticating with Microsoft Entra ID from within your add-in, see Authenticate and authorize with the Office dialog API and What is the Microsoft identity platform?.

Code sample: Move from paid apps to paid web apps with free apps

The Office Add-in SaaS monetization code sample demonstrates how you can create a license management system to manage add-ins sold in Microsoft AppSource. This code sample package includes a Microsoft AppSource mock web app, a SaaS sample, an Outlook add-in, an Excel add-in, a Word add-in, a PowerPoint add-in, and a licensing management tool.

Submission process for SaaS offer and app

Submit your SaaS offer to Partner Center. After your SaaS offer is approved, it's assigned a GUID. Next, submit your app and include this GUID in the test notes and test accounts (admin and nonadmin). After your app is approved and is in the store, you can update your plan to be available to a public audience.

Customer experience

A customer discovers your SaaS service in Microsoft AppSource and purchases licenses, providing their payment details to Microsoft. The customer is then redirected to your website, where they finish setting up their account. The licenses are provisioned and the customer is billed. Your customer is then able to download your free app and sign in using the details provided. Your app checks the licensing database to verify that the customer has a license.

FAQs

Why did Microsoft change the monetization model for apps?

By charging for core application functionality and making apps free, partners gain more flexibility to add new value for customers by delivering paid functionality outside of the context of an app. To better support this model, in May 2019, Microsoft AppSource enabled full commerce for SaaS app transactions, providing a new range of options for partners. Given our emphasis on a range of payment models for SaaS apps, we simplified Office Add-ins by only supporting free-to-download options.

How do I sign up for Partner Center?

Review the information on the Welcome to Microsoft Partner Center enrollment page and then register for an account. For details, see Create a commercial marketplace account in Partner Center.

Where can I find documentation about integrating with Microsoft Entra ID?

For extensive documentation, samples, and guidance, see What is the Microsoft identity platform?.

We recommend that you have a subscription dedicated to your Azure Marketplace publishing, to isolate the work from other initiatives. Then you can start deploying your SaaS application in this subscription to start the development work.

You can also check for Microsoft Entra service updates.

How does my app authenticate a user with Microsoft Entra ID?

Office provides the Authenticate and authorize with the Office dialog API to enable you to authenticate users from within your add-in. For more information, see What is the Microsoft identity platform?.

What reports do I receive from commercial marketplace about my SaaS offer?

As a partner, you can monitor your offer listings using the data visualization and insight graphs supported by Partner Center and find ways to maximize your sales. The improved analytics tools enable you to act on performance results and maintain better relationships with your customers and resellers. For more information, see Analytics for the commercial marketplace in Partner Center.

Help and support

If you have questions, contact Marketplace Publisher Support.