Personal tools


Office 365 For WHMCS

From ModulesGarden Wiki
Jump to: navigation, search


About Office 365 For WHMCS

Office 365 For WHMCS has been designed to let you automatically provision Microsoft Office 365 plans and remotely manage their key features.

With this module, you will easily supervise all subscriptions, perform switches and suspensions as well as password changes right in your WHMCS.

  • Admin Area Features:
✔ Create/Suspend/Unsuspend Office 365 Subscriptions
✔ Choose Standard/Extended Provisioning Type
✔ Create/Suspend/Unsuspend Addon Services For Standard Provisioning Type
✔ Create Office 365 Customer During First Or Every Order
✔ Create Office 365 Client During First Or Every Order
✔ Define Number Of Subscriptions Available For Order
✔ Change Package
✔ Change Password
  • Client Area Features:
✔ Standard Provisioning Type:
✔ Automatically Create Office 365 Customer/User/Subscription
✔ Upgrade/Downgrade Office 365 Subscriptions
✔ Extended Provisioning Type:
✔ Order Chosen Number Of Subscriptions
✔ View/Create/Delete Office 365 Users
✔ Assign Available Subscriptions To Users
✔ View Subscriptions Usage, Status And Commitment End Date
✔ Upgrade/Downgrade Number Of Office 365 Subscriptions
✔ Change Password
  • Supported Services:
✔ Office 365 Education/Education E5
✔ Office 365 Business/Business Essentials/Business Premium
✔ Office 365 ProPlus/Enterprise E1/E3/E5/K1
✔ Standalone Services:
✔ Business Intelligence Service
✔ Exchange Online
✔ Information Rights Management
✔ Office Applications
✔ OneDrive For Business
✔ Online Diagram Software
✔ Project Portfolio Management
✔ SharePoint Online
✔ Skype For Business Online
✔ Yammer
  • General Info:
✔ Requires Microsoft Partner Network
✔ Requires Microsoft Cloud Solution Provider - Direct (Tier 1) Model
✔ Supports PHP 5.6 Up To PHP 7.2
✔ Supports WHMCS Template Six
✔ Supports WHMCS V7.2 And Later
✔ Easy Module Upgrade To Open Source Version


Please be informed that Office 365 For WHMCS 2.0 is not compatible with its 1.0 version due to the changes introduced to the creation process of subscriptions and users.
If the mechanism available in the 1.0 version suits your requirements, do not update your module to the latest version.

This tutorial will show you how to successfully install and authenticate Office 365 For WHMCS.

We will guide you step by step through the whole installation and configuration process.
Important: This module configuration requires a Microsoft Partner Network account with CSP Direct (Tier 1) Model.

Note: If you are still using Office 365 For WHMCS version 1.0.0, read about it here.

1. Log in to our client area and download the module.
O2 1.png
2. In the downloaded file you will find two packages that support different PHP versions.
As presented on the screen below, the first one is dedicated to PHP 5.6 up to PHP 7.0, while the second one is aimed at PHP 7.1 up to PHP 7.2.
It does not apply to open source versions.

Note: You can check the current PHP version in your WHMCS. To do so, proceed to 'Utilities' › 'System' › 'PHP Info'.

PHP56 72.png
3. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory.

The content of PHP version files should look like this.

O2 2.png
4. When you install Office 365 For WHMCS for the first time, you have to rename the 'license_RENAME.php' file.

The file is located in 'modules/servers/office365/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

O2 3.png
5. In order to configure your license key, you have to edit the previously renamed 'license.php' file.

Enter your license key between quotation marks as presented on the following screen. You can find your license key in our client area → 'My Products'.

O2 4.png
6. Now, set up the 'storage' folder as recursively writable.

This folder is located in 'your_whmcs/modules/servers/office365'.

O2 5.png

Configuration of Server

7. To begin, you must add a new server.

Go to 'Setup' 'Products/Services' 'Servers' and press 'Add New Server'.

O2 8.png
8. Enter your server name. Choose 'Office365' from the dropdown menu.

Now, enter your Microsoft Partner username, password, API URL, Native APP ID and Domain (see steps below how to obtain them).
Test connection and, if successful, press 'Save Changes' .

O2 9.png
In order to create full 'API URL' , go to 'Microsoft Partner Center' panel → 'Account Settings' 'Organization profile' and copy 'Default domain' from the section marked on the screen below.

Next, put it in 'https://api.YourDefaultDomain/v1/' address and paste to server configuration as your 'API URL' .

O2 9 01.png
To find your 'Native APP ID' and 'Domain' , go to 'Microsoft Partner Center' panel → 'Account Settings' 'App Management' and copy 'App ID' and 'Domain' from the 'Native App' section:
O2 9 1.png
9. Once your server has been configured correctly, you will see the following screen.

Create a new group for your server. Press 'Create New Group' to follow.

O2 10.png
10. Enter a name, click on your previously created server, press 'Add' , then 'Save Changes'.
O2 11.png

Configuration of Product

11. In order to create a product, go to 'Setup' 'Products/Services' 'Products/Services' .

If you do not have a product group, click on 'Create a New Group' . If you do, simply move to the 12th step.

O2 12.png
12. Fill in a product group name and press 'Save Changes'.
O2 13.png
13. When you have a product group added, you can create your product and assign it to the Office 365 module.
O2 14.png
14. Afterwards, choose your product type and product group from dropdown menus, enter your product name and press 'Continue' .
O2 15.png
15. Now, go to the 'Module Settings' section, choose both 'Office365' and the previously created server group from the dropdown menu, and press 'Save Changes' .
O2 16.png
16. Then, go to the 'Custom Fields' tab and make sure that it displays the three created 'text box' custom fields.

These are: userid|User ID, orderid|Order ID and customerid|Customer ID. If they were not automatically created, then add them manually as shown on the following screen.

O2 18.png

Configuration and Management

Configuration and management of Office 365 For WHMCS is very intuitive.

Before you start, please note that there are two provisioning types you can offer to your clients.

  • Standard - this will automatically create for your WHMCS client the new Office 365 customer with user and subscription based on the chosen module settings.
  • Extended - this option will automatically create only the Office 365 customer and the first user. It will be also up to the WHMCS client to choose how many subscription licenses to buy during an order. Then, after order provisioning, the client can decide to create manually additional Office 365 users and assign the purchased subscriptions to them.

Standard Provisioning Type

Let's start the module configuration by choosing 'Standard' provisioning type.
O2 16 2.png

Now, choose 'Country'. that you will offer your Office 365 services from.
Select also the available 'Company Domain' and choose one of the desired Office 365 plans.
Next, decide whether to create Office 365 customer or user per WHMCS client only after first order or create them every time for additional orders.
You may also assign additional services to the main plan as addons - they will be described in further parts of this documentation.

Note: Available subscription offers and additional services depend on your Microsoft membership coverage and may be limited by the location.

O2 17.png

Additional Services

In order to offer additional services for a standard product plan, you need to create a new addon first.
In your WHMCS system press 'Setup' 'Products/Services' 'Product Addons' and select 'Add New Addon' .

Important: addons are applicable only to standard provisioning type, not for extended one.

O2 22.png
Enter a name of the addon, choose the addon to be visible during the ordering process and configure the rest of the desired options.
O2 23.png
Go to the 'Applicable Products' tab and select the product that you want to offer this addon for. Then press 'Save Changes' .
O2 24.png
Important! Please leave both: 'Module Name' and 'Server Group' set to NONE in the addon module settings.

Selecting any server or module here will surely end up with an error!

O2 24 1.png
Go back to your product and connect the created addon with one of the available additional services in the 'Module Settings' tab.
O2 25.png
Finally, 'Save Changes' . Remember that you can also add more addons for services.

Client Area

Once the product configuration is complete, clients will be able to order the selected subscription and addons.
O2 20 2.png

Standard provisioning type does not support any additional features in the client area.
The customer can order additional services to their subscription, change their password to the Office 365 panel, upgrade a subscription plan or request a service cancellation.

O2 20.png

Extended Provisioning Type

Extended provisioning type allows your client to order the chosen number of licenses using configurable options and then manually redistribute them in their client area among the created Office 365 users.

Enable this configuration type by choosing the 'Extended' provisioning type in the module settings of the product.

O2 36.png

Now, choose 'Country' that you will offer your Office 365 services from.
Select also the available 'Company Domain' and choose one of the desired Office 365 plan.
Next, decide whether to create Office 365 customer or user per WHMCS client only after first order or create them every time for additional orders.
Note that for this mode you 'cannot assign any additional services to the main plan as addons.

O2 37.png

Configurable Options

To allow your clients to purchase multiple licenses at a single order, you must create configurable options for a product .

Start by going to 'Setup' 'Products/Services' 'Configurable Options' and press the 'Create a New Group' button.

O2 39.png
Enter a group name for the addon and select products that you want to offer this option for. Then press the 'Save Changes' option.
O2 40.png
Now, press 'Add New Configurable Option' and the new popup window should open.
O2 41.png
Name this configurable option as 'office365licenseQty' with the desired friendly name. Next, chose the 'Option Type' you want to use and add pricing for the desired quantity.

Note: More information about setting up configurable options can be found here.

O2 42.png

Client Area

Once the product configuration is complete, clients will be able to order the selected number of subscriptions.
O2 43.png
After order your clients will be able to manage Office 365 users and subscriptions by themselves.

The menu also displays information about the current number of used subscriptions.

O2 44.png
Before you start assign subscriptions, you have to create new users.

By default there is already one Office 365 user created based on the customer account.
Your can add more users and then assign to them the purchased subscriptions.

O2 45.png
Fill in the required data to create a new user.
O2 46.png
Then, after successfully creating a new user, you can view their account details.
O2 47.png
In the user profile you can view account details as well as assigned subscriptions.

Press the 'Add Subscriptions' button to assign a new license to this account.

O2 48.png
You can assign multiple licenses to one account, provided that the number of used subscriptions is not exceeded already.
O2 49.png
After successfully adding licenses to user account you will see their number, status and validity in the user's 'Subscriptions' box.
O2 50.png
The 'Subscriptions' section displays all product licenses that are currently assigned to a user.

For your convenience, if product settings have been configured to create only one Office 365 customer per WHMCS client, then all other purchased subscription types will also be displayed here.
Nevertheless, please note that the subscriptions counter will display usage for the currently chosen product only .

O2 51.png
If you are using the module, we do not recommend assigning subscription directly from the Microsoft panel.

However, if such a situation occurrs, the subscription will be fetched to the WHMCS list, but then you will have to assign it to the user manually.

O2 52.png
In the newly opened window select the user to whom the subscription will be assigned and press the 'Assign' button.
O2 53.png

Admin Area

Let's check your new product in the product page in admin area . After a successful creation, it should look exactly like presented on the screen below.

Note The admin area for both standard and extended provisioning types looks basically the same.

O2 19.1.png
The 'Username' and 'Password' are used to sign up to the Office 365 panel.
O2 26.png

The 'User ID' , 'Order ID' , 'Customer ID' and 'Subscription ID' are custom fields used to connect the product with the created subscription in your Microsoft Partner Center.
Depending on the product settings, the common 'Customer ID' and 'User ID' can be used for connection if one client buys more than one subscription.

O2 27.png


Due to API limitations, ordered subscriptions can only be suspended or unsuspended. For this reason, the 'Terminate' command will work in the same way as the 'Suspend' option.
O2 30.png

In case of standard product suspension, all addons that belong to the product will also be suspended. If the product is unsuspended, its addons will remain suspended.
For extended provisioning type this action action will also cause the suspension of all subscriptions assigned to the customer and their users.
Information about product suspension will be shown in the 'Admin Notes' field.

O2 31.png

Change Password

The 'Change Password' option will change the password for all services assigned to the user. To change it into a new one, you need to:

  • Provide a new password → Press 'Save Changes' → Press 'Change Password' .
O2 34.png
Note that the password must also meet the following requirements:
  • At least 8 characters in length
  • At least 1 uppercase character
  • At least 1 special character
  • At least 1 numeric character

Product Upgrade/Downgrade

By using upgrade/downgrade feature you can change subscription type for the standard provisioning type.

However, for the extended provisioning type you can only change the number of assigned licenses by configurable options, not the subscription type itself.
Note that you cannot also downgrade the number of licenses to smaller quantity if that number already exceeds the number of used licenses.

O2 35.png


Information about addons will depend on their status and will be shown in the 'Admin Notes' field. By default, the 'Subscription ID' service should be provided.

Note that the addon can only be used for the standard provisioning type.

O2 28.png
For example, if the addon is suspended, the information will also appear in this field.
O2 29.png


1. For more information on how the Microsoft Partner program works, see here.
2. API responses can be translated in the module's language file. To do this, add a new record in the file with the received API message and your translation.
See below to find an exemplary entry:
$_LANG['ApiResponse']['Can\'t contain username paramName: User.Password, paramValue: , objectType: System.String'] = 'Password field cannot contain a username.';

Update Instructions

Essential guidance through the process of updating the module is offered here.

Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!
To take advantage of it, simply use the License Upgrade button located on the product's page and a discounted invoice will be generated automatically.


While using the 2.X version of our module, note that no data can be migrated from the Office 365 For WHMCS version 1.0.0, so the module needs to be configured from scratch.

This also means that previously placed orders for subscriptions will not work on the new version, even after module reconfiguration.

Common Problems

1. When you have problems with connection, make sure that SELinux or firewall does not block ports.
2. The list of users and their subscriptions assigned to the customer directly in the Microsoft panel are not automatically assign to the WHMCS client and their users.

This is due to the API limitations, so this list is only kept locally on the WHMCS server.
In case of changes made directly in the Microsoft panel, such modifications might then be made manually in the module to reflect changes locally.

3. Error encountered in the module:
 Use limit is exceeded for Offer Id

indicates that a single customer may purchase only one license (Office 365 Business, Office 365 Business Essentials, Office 365 Business Premium license etc).

WHMCS Modules
WHMCS Translations
cPanel Modules
Magento Extensions
Magento Themes
PrestaShop Modules
Blesta Extensions
Office 365 For WHMCS