gray pen beside coins on Indian rupee banknotes

Microsoft 365 self-service purchase configuration

In this article I show you how to enable or disable self-service purchase. That is interesting for you, if you do not want that your users can buy licenses for Office 365 on their own, that your IT department has to support afterwards. (Microsoft has a different opinion, but I know that no user will say “hey I bought it, so I won’t ask my IT department for help”.

What is it?

Self-Service purchase is meant by Microsoft to give end users the ability to test products themselves by buying these. To prevent unwanted cost for an organitation, Admins can control self-serice puchase options via Microsoft 365 Admin Center or PowerShell. To use purchase, a credit card is necessary.

Important: As of today (when I write these lines), the following products are available for self-service purchase: 
- PowerBI
- PowerApps
- PowerAutomate
- Project
- Visio

The article contains these chapters:

How to configure self-service purchase (with PowerShell)

How to configure self-service purchase (with Microsoft 365 Admin Center)

Related links

How to configure self-service purchase (with PowerShell)

To make use of PowerShell, follow the prerequisites described in this article: Use AllowSelfServicePurchase for the MSCommerce PowerShell module | Microsoft Docs. For the ones who do not like reading on different sites simultaneously:

  • Windows 10
  • local admin (or permission to install the PowerShell module)
  • at least Billing Administrator role

Now install and import the PowerShell module (I always install modules for the currently signed in user, not system-wide like MS describes in their documentation). With that, you can connect to your configuration:

Install-Module -Name MSCommerce -Scope CurrentUser
Import-Module -Name MSCommerce
Connect-MSCommerce
Code language: PowerShell (powershell)

As known from other PowerShell modules (like AzureAD or ExchangeOnlineManagement), you will be prompted to enter your credentials, so sign in with an admin user that has enough permissions.

Now with the signed in PowerShell session, you can start having a look at your configuration and change it – as desired:

Get-MSCommercePolicy -PolicyId AllowSelfServicePurchase
Code language: PowerShell (powershell)

Well this is taken from the MS documentation mentioned above. The output is a little.. hmm.. low:

To get a useful output, you need to know what exactly to query. You need to provide the product ID. Unfortunately there is no command that tells us what the product IDs are, Microsoft developers were a little lazy:

Also the help is very *shy* ….

Come on Microsoft… you can do better than that!! Don’t make it such hard for admins to find the right parameters. Luckily the product IDs are listed here: Use AllowSelfServicePurchase for the MSCommerce PowerShell module | Microsoft Docs. I also add them here for easier search:

Product / licenseProduct ID
PowerApps per userCFQ7TTC0KP0P
PowerAutomate per userCFQ7TTC0KP0N
PowerAutomate RPACFQ7TTC0KXG6
PowerBI Premium (standalone)CFQ7TTC0KXG7
PowerBI ProCFQ7TTC0L3PB
Project Plan 1CFQ7TTC0KXND
Project Plan 3CFQ7TTC0KXNC
Visio Plan 1CFQ7TTC0KXN9
Visio Plan 2CFQ7TTC0KXN8

Beautiful, isn’t it? No. It is ugly 😉

Well there is one option that you can use to find the product ID with PowerShell:

Get-MSCommerceProductPolicies -PolicyId AllowSelfServicePurchase | where {$_.ProductName -match 'Project *'}
Code language: PowerShell (powershell)

You can search either with wildcards (for a longer list) or for a specific product. The command will list you all matching products:

So now let’s assume you want to know in detail what the configuration for Project Plan 1 is. You can adjust the command to fit to the product of your choice:

Get-MSCommerceProductPolicy -PolicyID AllowSelfServicePurchase -ProductID CFQ7TTC0KXND 
Code language: PowerShell (powershell)

In the screenshot you can see that Project Plan 1 is enabled for self-service purchase. You can enable and disable each product (by adjusting the productID) like that:

# Enable Project Plan 1 for self-service purchase
Update-MSCommerceProductPolicy -PolicyId AllowSelfServicePurchase -ProductId CFQ7TTC0KXND -Enabled $true

# Disable Project Plan 1 for self service purchase
Update-MSCommerceProductPolicy -PolicyId AllowSelfServicePurchase -ProductId CFQ7TTC0KXND -Enabled $false
Code language: PowerShell (powershell)

How to configure self-service purchase (with the M365 admin center)

That is easy – it is currently not possible. You need to use PowerShell. If you have purchased licenses, then you are provided a limited admin center view, where you can assign your licenses. That’s it.

Central admins (I avoid the naming ‘global admins’ here to prevent confusion) can see the self-service purchase licenses in the global licensing overview under Billing -> Licenses and setting the filter to Self-service purchase licenses.

More information and FAQ about self-service purchase can be found at Self-service purchase FAQ | Microsoft Docs.

Enable self-service purchase: Use AllowSelfServicePurchase for the MSCommerce PowerShell module | Microsoft Docs

Published by Andreas

Founder of M365 Evangelists Cloud-Architect, Strategy Consultant, Consultant for Microsoft technologies, Graph API enthusiast, PowerShell enthusiast