Subscription Update
Customers can upgrade/downgrade existing subscriptions via ActivePlatform. The Subscription Update notification URL allows a vendor service to receive notifications when customers change the subscription configuration, for example, reduce the amount of the subscription resources.
The general flow for the Subscription Update event includes the following steps:
- A customer creates a new order to change the subscription via ActivePlatform.
- ActivePlatform calls the configured notification URL, passing the JSON with the details about the subscription.
- The vendor service validates the request, changes the subscription, confirms the operation or returns the details of the occurred error.
- ActivePlatform completes the operation with the subscription.
POST /subscription/update?ap_guid={ap_guid}&reseller_id={reseller_id}
Arguments
Name | Parameter type | Data type | Description |
---|---|---|---|
ap_guid | query | string | The auto-generated installation GUID (Globally Unique Identifier) used to identify the ActivePlatform installation called an entry point |
reseller_id | query | string | The ID of the reseller who sold the subscription to the service plan via the ActivePlatform installation |
Event body
Name | Data type | Description | ||
---|---|---|---|---|
external_id | string | The subscription GUID generated in the vendor service during the subscription provisioning | ||
reseller | object | Information about the reseller who sold the subscription to a service plan of a product via ActivePlatform (see Viewing and updating reseller general information in the Operator Comtrol Panel guide) | ||
id | integer | The reseller ID | ||
name | string | The reseller name | ||
company_name | string | The company name | ||
first_address | string | Address line 1 | ||
second_address | string | Address line 2 | ||
city | string | City | ||
region | string | Region | ||
zip | string | Zip code | ||
country | string | Country code | ||
company_phone | string | The company's phone number in the international format | ||
company_email | string | The company's email address | ||
currency | string | The reseller currency code | ||
attributes | object | The list of the product attributes (key-value pairs) applied to the reseller (see Extending the reseller object and Product attributes):
| ||
core_attributes | object | The list of public custom attributes (key-value pairs) applied to the reseller in ActivePlatform (see in the Viewing the list of attributes Operator Comtrol Panel guide):
| ||
distributor | object | Information about the distributor who sold the subscription. The distributor information is stored and managed in the ActivePlatform installation | ||
id | integer | The distributor ID | ||
name | string | The distributor name | ||
region | string | The distributor location: region | ||
currency | string | The distributor currency code | ||
attributes | object | The list of the product attributes applied to a distributor (see Extending the distributor object and Product attributes):
| ||
tenant | object | Information about the account of the customer who ordered the subscription. The account information is stored and managed in the ActivePlatform installation | ||
id | integer | The account ID | ||
company_name | string | The company name, if the customer is a legal entity | ||
type | string | The account type in the ActivePlatform installation | ||
contact | object | The contact information for the account | ||
first_name | string | The first name of the account contact person | ||
last_name | string | The last name of the account contact person | ||
zip | string | The account address: zip-code | ||
city | string | The account address: city | ||
state | string | The account address: state or region | ||
country | string | The account address: two-letter country code | ||
phone | string | The contact phone number of the account:
| ||
string | The contact email of the account | |||
fax | string | The fax number of the account:
| ||
address_line_1 | string | The account address (line 1) | ||
address_line_2 | string | The account address (line 2) | ||
owner | object | Information about the account Owner | ||
first_name | string | The first name of the account Owner | ||
last_name | string | The last name of the account Owner | ||
phone | string | The contact phone number of the account Owner:
| ||
plan | object | Information about the service plan ordered by the account. The service plan information is stored and managed in Vendor Portal | ||
name | string | The service plan name in Vendor Portal | ||
description | string | The service plan description in Vendor Portal | ||
resources | object | Information about the ordered resources of the service plan | ||
key | string | The resource key in Vendor Portal | ||
quantity | integer | The ordered number of the resource units | ||
period | object | Information about the ordered period of the service plan | ||
value | integer | The plan period duration | ||
type | string | The unit of measure of the period:
| ||
trial | bool | Indicates whether the ordered plan period is trial:
| ||
endless | bool | Indicates whether the ordered plan period is endless:
| ||
sku | string | The stock keeping unit of the service plan in Vendor Portal | ||
subscription | object | Information about the ordered subscription. The subscription information is stored and managed in the ActivePlatform installation | ||
id | string | The subscription ID | ||
attributes | object | The list of additional subscription attributes required for the subscription provisioning (see Extending the subscriptions object):
You can add the attributes in the Attributes section of Vendor Portal if you need to receive additional information during subscription provisioning | ||
attributes | object | The list of additional order attributes required for the subscription provisioning (see Order Attributes. Attributes Validation):
|
Response model
If a subscription was successfully updated, the vendor service returns:
- 200 HTTP code status
- JSON with the following information:
Name | Data type | Description |
---|---|---|
external_id | string | The subscription GUID generated in the vendor service |
If a subscription was not updated, the vendor service returns:
- HTTP code status
- JSON with the following information:
Name | Data type | Description | |
---|---|---|---|
task | object | ||
error_message | string | The text message of the occurred error |
Event example
POST http://example.com/subscription/update
{
"external_id": "0000fff2-00c8-9d6e-0ecc-3a083b9e736a",
"distributor": {
"id": 211,
"name": "Dev Acc",
"region": "Region",
"currency": "USD",
"attributes": {
"certificate_password": "[FILTERED]"
}
},
"reseller": {
"id": 2,
"name": "Root",
"company_name": "Dev acc",
"first_address": "Street building",
"second_address": "",
"city": "City",
"region": "Region",
"zip": "220000",
"country": "US",
"company_phone": "+123555456",
"company_email": "email@example.com",
"currency": "USD",
"attributes": {
"reseller_public_id": "********"
},
"core_attributes": {
"kaspersky_reseller_pin": "********"
}
},
"tenant": {
"id": 199,
"company_name": "John GS",
"type": "Business",
"contact": {
"first_name": "John",
"last_name": "GS",
"zip": "220000",
"city": "Quinsk",
"state": "Quinsk",
"country": "AQ",
"phone": "+123 55 1111111",
"email": "test@example.com",
"fax": "+123 55 1111111",
"address_line_1": "Quinsk",
"address_line_2": ""
},
"owner": {
"first_name": "John",
"last_name": "GS",
"phone": "+123 55 1111111"
}
},
"plan": {
"name": "Cloud User 50-99 WKS/FS",
"description": "",
"resources": [
{
"key": "quantity",
"quantity": 50
}
],
"period": {
"value": 1,
"type": "month",
"trial": false,
"endless": false
},
"attributes": {},
"sku": "KLMN1234OMG"
},
"subscription": {
"id": 3002619,
"attributes": {}
},
"attributes": {}
}
Response example
HTTP code status: 200 OK
{
"external_id": "02000000-10c8-9d6e-0ecc-39e13f7a4de1"
}