Include a SaaS offer with your Teams app
With a transactable Software-as-a-Service (SaaS) offer, you can monetize your Teams app by selling subscription plans directly from your Microsoft Teams Store listing. For example, say you have a free app anyone can get in the Teams Store. Now you can offer premium and enterprise plans for users who want more features.
Here's a general idea of how to monetize your app:
Plan your SaaS offer
For comprehensive guidance, see how to plan a SaaS offer for the Microsoft commercial marketplace.
When planning how to monetize your Teams app, here are some things to consider:
- Decide on your subscription model. A transactable SaaS offer can include multiple subscription plans. Public subscription plans available to anyone are most common, but you may also want to target specific customers with deals only for them. For more information, see private plans in the Microsoft commercial marketplace.
- Read about the Sell through Microsoft listing option for your SaaS offer, which is required if you want users to purchase subscription plans for your app directly through the Teams Store.
- Learn how Microsoft Entra single sign-on (SSO) helps your customers purchase and manage subscriptions. (Microsoft Entra SSO is required for Teams apps with SaaS offers.)
- Understand that you're responsible for managing and paying for the infrastructure required to support your customers' use of your SaaS offer.
- Plan for mobile. To avoid violating third-party Teams Store policies, your app can't include links that allow users to purchase subscription plans on mobile. However, you can still indicate if your app has features that require a subscription plan. For more information, see the related commercial marketplace certification policies.
Integrate with the SaaS Fulfillment APIs
Integrating with the SaaS Fulfillment APIs is required for monetizing your Teams app. These APIs help you manage the lifecycle of a subscription plan once it’s purchased by a user.
For complete instructions and API reference, see the SaaS Fulfillment APIs documentation. In general, you’ll implement the following steps using the APIs once a subscription is purchased:
Receive a purchase identification token via the URL to your landing page.
Use the token to retrieve subscription details.
Notify the commercial marketplace that the subscription is activated.
Best practices for implementing subscription management
- With transactable SaaS offers for Teams apps, subscription plans (licenses) should be assigned to individual users rather than groups or an entire org.
- When users are assigned a subscription plan, notify them through a Teams bot or email. In the messaging, include information on how to add the app to Teams and get started.
- Support the idea of multiple admins. In other words, multiple users in the same org can purchase and manage their own subscriptions.
Build a landing page for subscription management
When someone finishes buying a subscription plan for your app in the Teams Store, the commercial marketplace directs them to your landing page where they can manage the subscription (such as assign a license to a specific user in their org).
For complete instructions, see build the landing page for your SaaS offer.
Best practices for landing pages
Consider the following approaches when building a landing page for the Teams app you’re monetizing. See an example landing page in the End-user purchase experience.
- Users must be able to sign in to your landing page with the same Microsoft Entra credentials they used to buy the subscription. For more information, see Microsoft Entra ID and transactable SaaS offers in the commercial marketplace.
- Allow users to take the following actions on your landing page. Don’t forget to consider what’s appropriate for a user’s role and permissions. For example, you may want to allow only subscription admins to search for users):
- Search for users in their org using email or another form of identity.
- See users they can assign licenses to in a list.
- Assign licenses to one or multiple users at the same time.
- Assign and manage different types of licenses (if available).
- Validate if a license is already assigned to another user.
- Cancel their subscription.
- Provide an introduction on how to use your app.
- Add ways to get support, such as an FAQ, knowledge base, or contact email.
- Provide a link that makes it easy for the subscriber to get back to the landing page. For example, include this link in your app’s About tab.
Create your SaaS offer
Once you’ve integrated the SaaS Fulfillment APIs and built your landing page where users can manage their subscriptions, it's time to officially create, test, and publish your transactable SaaS offer.
Create the offer
See create a SaaS offer for complete instructions on how to do this in Partner Center. The following steps describe what to do at a high level.
Create a Partner Center account if you don’t have one.
Configure the subscription plans, pricing details, and more for your transactable SaaS offer. In particular, make sure you complete the following steps:
Under Setup details, select the Yes option to specify that you’re selling the offer through Microsoft.
Under Microsoft 365 integration, add the AppSource link to your app listing. This step ensures people can buy your subscription plans in AppSource in addition to Teams.
Store your publisher and offer IDs. (You need them later to link the offer to your app in the Developer Portal.)
Publish your offer to the commercial marketplace.
Test the offer
We recommend that you verify the end-to-end purchasing experience before publishing your SaaS offer. You can verify by creating a separate offer just for testing. For complete information, see test offer overview, create a test offer, and preview your offer.
Important
You can test an end-to-end transaction in Teams using the Test preview for monetized apps feature. For live offers you must complete the Teams Store validation process.
From a Teams standpoint, these tests must verify that the number of licenses and assignments match what’s in the Teams admin center when users:
- Activate and configure their subscription plan on your landing page.
- Assign, remove, or reassign licenses to themselves or others.
- Cancel or renew their subscription.
Publish the offer
Once you finish testing, publish your offer live.
Configure your app for the SaaS offer
You’ve published your SaaS offer, but you still must link it to your Teams app for users to see your subscription plans in the Teams Store.
Go to the Developer Portal and select Apps.
On the Apps page, select the app you're linking the SaaS offer to.
Go to the Plans and pricing page and specify your publisher and offer IDs. (You can find these IDs in Partner Center if you don't have them readily available.)
Select View to preview your SaaS offer's subscription plans.
If everything looks good, select Save.
The
subscriptionOffer
property is added to your app manifest."subscriptionOffer": { "offerId": "publisherId.offerId" }
Note
The subscriptionOffer
property is supported in manifest schema version 1.10 or later.
Publish your app
You’ve created your SaaS offer and linked it to your Teams app—now it's time to publish your app to the Teams Store. For complete instructions, see publish your app to the Teams Store.
Important
- Even if your app is already listed on the Teams Store, you still must go through the Teams Store validation process again to include your SaaS offer.
- Flat rate offers created without the Offer ID and Publisher ID in the app manifest should be updated and resubmitted for validation.
Once published, users see a Buy a subscription option in the app details dialog when they try to add your app to Teams.
Remove a SaaS offer from your app
If you unlink a SaaS offer included in your Teams Store listing, you must republish your app to see the change in the Teams Store.
- Go to the Developer Portal and select Apps.
- On the Apps page, select the app you're removing the offer from.
- Go to the Plans and pricing page and select Revert.
- After the offer is unlinked, do the following to update your Teams Store listing:
- Select Distribute > Publish to the Teams store.
- Select Open Partner Center to begin the process of republishing your app without the offer.
Code sample
Sample name | Description | Node.js | Manifest |
---|---|---|---|
Tab App Monetization | This is an sample tab application which shows how to open purchase dialog and trigger purchase flow using Teams JS SDK. | View | View |