Accepting the Microsoft Customer Agreement
You can confirm the acceptance of the Microsoft Customer Agreement (MCA) for a Microsoft account by following these steps:
-
Prepare the following information:
- The initial subdomain name of the Microsoft account.
- The system identifier of the customer account that the Microsoft account belongs to.
-
Check whether the MCA is already accepted for the Microsoft account:
-
Make this request:
CopyGET https://BRAND_DOMAIN/aps/2/resources/APS_ID_OF_APPLICATION_INSTANCE/checkAccount?accountId=SYSTEM_ID_OF_CUSTOMER_ACCOUNT&planId=0
- In the response that you receive, in the tenants array, find the JSON object where domain contains the initial subdomain name of the Microsoft account.
- In the JSON object, check the value of the is_acceptance_of_microsoft_cloud_agreement_required parameter. If it is true, write down the value of the id parameter (this is the internal ID of the Microsoft account).
Important: Checking acceptance is a custom operation. The user whose key and secret you use to access the APS REST API must have http://www.parallels.com/Office365/Office365app and GET in its list of allowed operations.
-
- From the owner of the Microsoft account, obtain the first name, last name, email address, phone number, and agreement acceptance date of the person who accepted the MCA. This information will be used to confirm acceptance.
-
Obtain a list of the Tenant APS resources that belong to the Microsoft account by using this request:
CopyGET https://BRAND_DOMAIN/aps/2/resources/?implementing(APS_TYPE_ID_OF_TENANT_RESOURCE),eq(ms_account_id,INTERNAL_ID_OF_MICROSOFT_ACCOUNT)
From the response that you receive, write down the APS ID of one of the Tenant APS resources.
Note: To prepare the APS type ID of an APS resource, use the instructions in Obtaining APS Type IDs.
-
Confirm acceptance by using this request:
CopyPUT https://BRAND_DOMAIN/aps/2/resources/APS_ID_OF_TENANT_RESOURCE
{
"cloud_agreement_contact": {
"email": "EMAIL_ADDRESS_OF_PERSON_WHO_ACCEPTED_MICROSOFT_CUSTOMER_AGREEMENT",
"first_name": "FIRST_NAME_OF_PERSON_WHO_ACCEPTED_MICROSOFT_CUSTOMER_AGREEMENT",
"last_name": "LAST_NAME_OF_PERSON_WHO_ACCEPTED_MICROSOFT_CUSTOMER_AGREEMENT",
"phone": "PHONE_NUMBER_OF_PERSON_WHO_ACCEPTED_MICROSOFT_CUSTOMER_AGREEMENT",
"date_agreed": "DATE_OF_ACCEPTANCE"
}
}Note: For DATE_OF_ACCEPTANCE, use dates in the YYYY-MM-DD format and the UTC timezone.
Examples
HTTP Request (Checking Acceptance for Microsoft Account)
GET https://example.com/aps/2/resources/498c7d95-54ef-45c1-9877-da03ec230993/checkAccount?accountId=1000011&planId=0
HTTP Response (Checking Acceptance for Microsoft Account)
{
"has_o365": true,
"is_multitenant": false,
"tenants": [
{
"domain": "example.onmicrosoft.com",
"id": "0ec8e245-2509-44b9-a184-a313345db839",
"trial_plan_validation_result": {
"validationCode": 0
},
"ms_tenant_id": "3f8a1aff-6a93-4b2c-b734-93b66497af4c",
"is_acceptance_of_microsoft_cloud_agreement_required": true,
"customer_agreements": []
}
],
"microsoft_cloud_agreement_metadata": {
"templateId": "117a77b0-9360-443b-8795-c6dedc750cf9",
"agreementLink": "https://aka.ms/customeragreement",
"versionRank": 0
},
"service_plans_compatibility": null
}
In this response, the JSON object where domain is example.onmicrosoft.com represents the target Microsoft account. You need to write down the value of the id parameter (0ec8e245-2509-44b9-a184-a313345db839).
HTTP Request (Obtaining Tenant APS Resources of Microsoft Account)
GET https://example.com/aps/2/resources/?implementing(http://www.parallels.com/Office365/Tenant/2.8),eq(ms_account_id,0ec8e245-2509-44b9-a184-a313345db839)
HTTP Response (Obtaining Tenant APS Resources of Microsoft Account)
[
{
"is_activated": "yes",
"aps": {
"modified": "2020-03-10T11:20:31Z",
"id": "042b672a-47f8-4dc9-a973-f4134390f357",
"subscription": "5689c26b-749c-48ea-b3b1-7cba84618764",
"type": "http://www.parallels.com/Office365/Tenant/2.8",
"status": "aps:ready",
"revision": 9
},
"ms_account_id": "0ec8e245-2509-44b9-a184-a313345db839",
"totalPointsSold": {
"usage": 0,
"limit": -1
},
"totalSeatsSold": {
"usage": 0,
"limit": -1
}
},
{
"is_activated": "yes",
"aps": {
"modified": "2020-03-10T11:16:54Z",
"id": "32e9c8bd-23a1-4a73-9af2-c05b05116136",
"subscription": "f76d449e-10ff-4af4-9c04-f5cdd23106fb",
"type": "http://www.parallels.com/Office365/Tenant/2.8",
"status": "aps:ready",
"revision": 7
},
"ms_account_id": "0ec8e245-2509-44b9-a184-a313345db839",
"totalPointsSold": {
"usage": 8,
"limit": -1
},
"totalSeatsSold": {
"usage": 2,
"limit": -1
}
},
{
"transition_info": {
"subdomain": "",
"vodafoneCustomerId": 0
},
"default_admin_login": "admin@example.onmicrosoft.com",
"domain_name": "example.onmicrosoft.com",
"is_activated": "yes",
"aps": {
"modified": "2020-03-10T11:19:04Z",
"id": "6fcff2c9-de5c-4eb3-b2b7-d5722cc29338",
"subscription": "df973571-7146-4a0e-a7fe-a01516abdf22",
"type": "http://www.parallels.com/Office365/Tenant/2.8",
"status": "aps:ready",
"revision": 18
},
"ms_account_id": "0ec8e245-2509-44b9-a184-a313345db839",
"last_synchronization": "2020-02-28T05:22:58Z",
"initial_subdomain": "example",
"totalPointsSold": {
"usage": 20,
"limit": -1
},
"totalSeatsSold": {
"usage": 5,
"limit": -1
}
},
{
"is_activated": "yes",
"aps": {
"modified": "2020-03-02T12:12:55Z",
"id": "d107eaff-9e3e-4c31-90e5-818842c1fc0f",
"subscription": "158ab4d4-130b-4c5d-bfab-3ca59778a85e",
"type": "http://www.parallels.com/Office365/Tenant/2.8",
"status": "aps:ready",
"revision": 5
},
"ms_account_id": "0ec8e245-2509-44b9-a184-a313345db839",
"totalPointsSold": {
"usage": 20,
"limit": -1
},
"totalSeatsSold": {
"usage": 2,
"limit": -1
}
},
{
"is_activated": "yes",
"aps": {
"modified": "2020-02-28T05:22:52Z",
"id": "d8812853-3a26-4058-8881-6e1e9bd31cab",
"subscription": "4ac9fd1a-05a6-4983-adfe-fa4c78598683",
"type": "http://www.parallels.com/Office365/Tenant/2.8",
"status": "aps:ready",
"revision": 12
},
"ms_account_id": "0ec8e245-2509-44b9-a184-a313345db839",
"last_synchronization": "2020-02-28T05:22:58Z",
"totalPointsSold": {
"usage": 2,
"limit": -1
},
"totalSeatsSold": {
"usage": 2,
"limit": -1
}
}
]
In this response, all the Tenant APS resources that belong to the target Microsoft account are returned. You need to write down the APS ID of one of them (for example, 042b672a-47f8-4dc9-a973-f4134390f357).
HTTP Request (Confirming Acceptance)
PUT https://example.com/aps/2/resources/042b672a-47f8-4dc9-a973-f4134390f357
{
"cloud_agreement_contact": {
"email": "johnsmith@example.com",
"first_name": "John",
"last_name": "Smith",
"phone": "+1234567",
"date_agreed": "2020-03-10"
}
}
HTTP Response (Confirming Acceptance)
JSON_OF_TENANT_RESOURCE