Subscription Resource Validation
Customers can change the number of resource units in a subscription via ActivePlatform. The Subscription Resource Validation notification URL allows a vendor service to validate the new resource quantity and allow or deny the change.
The general flow for the Subscription Resource Validation event includes the following steps:
- A customer creates an order of any type with a new resource quantity for a subscription via ActivePlatform.
- ActivePlatform calls the configured notification URL, passing the JSON with the details about the subscription.
- The vendor service validates the new resource quantity and allows or denies the change.
- ActivePlatform processes the operation with the subscription.
POST /subscription/resource_validation?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):
| ||
plugin_connector | object | Information about the plugin connector of the subscription | ||
id | integer | The plugin connector ID | ||
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 | ||
sku | string | The stock keeping unit of the service plan in Vendor Portal | ||
description | string | The service plan description in Vendor Portal | ||
resources | array of objects | Information about the ordered resources of the service plan | ||
key | string | The resource key in Vendor Portal | ||
quantity | integer | The current number of the resource units | ||
resulting_quantity | integer | The new number of the resource units to be validated | ||
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:
| ||
subscription | object | Information about the ordered subscription. The subscription information is stored and managed in the ActivePlatform installation | ||
id | string | The subscription ID | ||
trial | bool | Indicates whether the subscription is trial:
| ||
expiration_date | string | The subscription expiration date (YYYY-MM-DD) | ||
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):
| ||
plugin_provisioning_params | object | The plugin provisioning parameters | ||
application | integer | The application instance ID | ||
order_type | object | The order type |
Response model
If the new resource quantity is valid, the vendor service returns the 200 HTTP code status.
Otherwize, the vendor service returns:
- HTTP code status.
- JSON with the text message of the occurred error.
- Optionally, the available resource quantity.
Event example
POST /subscription/resource_validation?ap_guid=test-server.new-guid&reseller_id=1
{
"external_id": "0000fff2-00c8-9d6e-0ecc-3a083b9e736a",
"distributor": {
"id": 211,
"name": "Dev Acc",
"region": "Region",
"currency": "USD",
"attributes": {
"certificate_password": "[FILTERED]"
}
},
"plugin_connector": {
"id": 685
},
"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": {
"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",
"sku": "KLMN1234OMG",
"description": "",
"resources": [
{
"key": "quantity",
"quantity": 50,
"resulting_quantity": 30
}
],
"period": {
"value": 1,
"type": "month",
"trial": false,
"endless": false
},
"attributes": {}
},
"subscription": {
"id": 3002619,
"trial": false,
"expiration_date": "2024-01-05",
"attributes": {}
},
"attributes": {},
"plugin_provisioning_params": {
"application": 1881
},
"order_type": "change_order"
}