API Docs
/
No Results Found
Addons

Addons

An addon contains additional features that are not part of the subscribed plan, but are made available to customers on purchase of the addon. There are two kinds of addons - one-time and recurring. For a one-time addon, customers pay only once at the time of subscription, whereas for a recurring addon, customers have to pay for the addon each time they pay for the plan’s subscription. An addon can be associated with one or more plans of a product.

Attribute

addon_code
string
Unique string of your choice which lets you identify this addon.
name
string
Name of your choice to be displayed in the interface and invoices.
unit
string
A name of your choice to refer to one unit of the addon.
unit_name
string
A name of your choice to refer to one unit of the addon.
pricing_scheme
Pricing type of the addon can be changed and the values are unit, volume, tier or package. To know more about pricing schemes click here.
price_brackets
array
Array of objects which contains the start quantity, end quantity and price
Show Sub-Attributes arrow
start_quantity
integer
(Required) for “volume” and “tier” pricing schemes.
Lower limit of the addon range.
end_quantity
integer
(Required) for “volume”, “tier” and “package” pricing schemes.
Upper limit of the addon range.
price
double
Per unit cost of the addon for the selected range. For the “package” pricing scheme, this would be the price of the specified quantity of addons.
type
string
, default is recurring
Indicates type of the addon. This could be either recurring or one_time.
interval_unit
string
, default is monthly
The billing frequency of the addon only if type is recurring and the values can be monthly or yearly.
tags
array
Show Sub-Attributes arrow
tag_option_id
long
Id of the Tag Option
is_tag_mandatory
string
tag_name
string
tag_id
long
ID of the Tag
tag_option_name
string
custom_fields
array
Custom fields for a Addon.
Show Sub-Attributes arrow
customfield_id
string
is_active
string
show_in_all_pdf
string
value_formatted
string
data_type
string
index
integer
label
string
Label of the Custom Field
show_on_pdf
string
placeholder
string
value
string
Value of the Custom Field
applicable_to_all_plans
boolean
, default is true
If the addon is to be associated with all plans, applicable_to_all_plans is set to true; otherwise, it is set to false.
plans
array
List of plans that the addon needs to be associated with. If an addon is to be associated with only two plans - "basic" and "professional", then applicable_to_all_plans is set to false. Only the plan codes of the plans that need to be associated with are required.
Show Sub-Attributes arrow
plan_code
string
The plan code of the plan to which the addon is to be applied.
name
The name of the plan.
status
string
Status of the addon. It can either be active or inactive.
product_id
string
Product ID to which you want to associate this addon with.
description
string
Short description regarding the addon.
store_markup_description
string
Long Description regarding the plan.
product_type
string
VAT , India GST only
Product type for UK Edition.
hsn_or_sac
string
India GST only
HSN or SAC code for Goods/Services addon
sat_item_key_code
string
Add SAT Item Key Code for your goods/services. Download the CFDI Catalogs.
unitkey_code
string
Add Unit Key Code for your goods/services. Download the CFDI Catalogs.
item_tax_preferences
array
India GST only
Tax preferenece for addon
Show Sub-Attributes arrow
tax_specification
string
Tax specification for the addon. It can be either inter or intra.
tax_name
string
Name of the tax to which subscription is associated.
tax_percentage
number
Percentage of tax applied to the plan/addon
tax_id
string
, default is no tax will be associated
Tax ID to which you would like to associate with this addon.
tax_id
string
, default is no tax will be associated
Tax ID to which you would like to associate with this addon.
created_time
string
Time at which the addon was created.
updated_time
string
Time at which the addon details were last updated.

Example

{ "addon_code": "Email-basic", "name": "Email addon", "unit": "kg", "unit_name": "Email", "pricing_scheme": "package", "price_brackets": [ { "start_quantity": 1, "end_quantity": 50, "price": 10 } ], "type": "recurring", "interval_unit": "monthly", "tags": [ { "tag_option_id": "460000000054280", "is_tag_mandatory": false, "tag_name": "Colors", "tag_id": "460000000054182", "tag_option_name": "Black" } ], "custom_fields": [ { "customfield_id": "2000000029001", "is_active": "true", "show_in_all_pdf": "true", "value_formatted": "test", "data_type": "string", "index": 1, "label": "cfitem", "show_on_pdf": false, "placeholder": "cf_cfitem", "value": "test" } ], "applicable_to_all_plans": false, "plans": [ { "plan_code": "basic-monthly", "name": "Basic" } ], "status": "active", "product_id": "903000000045027", "description": "The addon for additonal email support", "store_markup_description": "Mailbox Storage-100GB | User & Docs Storage-500GB | User", "product_type": "goods", "hsn_or_sac": "74191010", "sat_item_key_code": "10128918", "unitkey_code": "Yh7", "item_tax_preferences": [ { "tax_specification": "intra", "tax_name": "GST", "tax_percentage": 10, "tax_id": "903000000065300" } ], "tax_id": "903000000065300", "created_time": "2016-06-05T18:02:26-0700", "updated_time": "2016-06-05T18:02:26-0700" }

Create an addon

Create a new addon.
OAuth Scope : ZohoSubscriptions.addons.CREATE

Arguments

addon_code
string
(Required)
Unique string of your choice which lets you identify this addon.
name
string
(Required)
Name of your choice to be displayed in the interface and invoices.
unit_name
string
(Required)
A name of your choice to refer to one unit of the addon.
pricing_scheme
Pricing type of the addon can be changed and the values are unit, volume, tier or package. To know more about pricing schemes click here.
price_brackets
array
(Required)
Array of objects which contains the start quantity, end quantity and price
Show Sub-Attributes arrow
start_quantity
integer
(Required) for “volume” and “tier” pricing schemes.
Lower limit of the addon range.
end_quantity
integer
(Required) for “volume”, “tier” and “package” pricing schemes.
Upper limit of the addon range.
price
double
(Required)
Per unit cost of the addon for the selected range. For the “package” pricing scheme, this would be the price of the specified quantity of addons.
type
string
, default is recurring
Indicates type of the addon. This could be either recurring or one_time.
interval_unit
string
, default is monthly
The billing frequency of the addon only if type is recurring and the values can be monthly or yearly.
tags
array
Show Sub-Attributes arrow
tag_id
long
ID of the Tag
tag_option_id
long
Id of the Tag Option
custom_fields
array
Custom fields for a Addon.
Show Sub-Attributes arrow
label
string
Label of the Custom Field
value
string
Value of the Custom Field
applicable_to_all_plans
boolean
, default is true
If the addon is to be associated with all plans, applicable_to_all_plans is set to true; otherwise, it is set to false.
plans
array
(Required)
List of plans that the addon needs to be associated with. If an addon is to be associated with only two plans - "basic" and "professional", then applicable_to_all_plans is set to false. Only the plan codes of the plans that need to be associated with are required.
Show Sub-Attributes arrow
plan_code
string
(Required)
The plan code of the plan to which the addon is to be applied.
product_id
string
(Required)
Product ID to which you want to associate this addon with.
description
string
Short description regarding the addon.
store_markup_description
string
Long Description regarding the plan.
tax_id
string
, default is no tax will be associated
Tax ID to which you would like to associate with this addon.
product_type
string
VAT , India GST only
Product type for UK Edition.
hsn_or_sac
string
India GST only
HSN or SAC code for Goods/Services addon
sat_item_key_code
string
Add SAT Item Key Code for your goods/services. Download the CFDI Catalogs.
unitkey_code
string
Add Unit Key Code for your goods/services. Download the CFDI Catalogs.
item_tax_preferences
array
India GST only
Tax preferenece for addon
Show Sub-Attributes arrow
tax_specification
string
Tax specification for the addon. It can be either inter or intra.
tax_name
string
Name of the tax to which subscription is associated.
tax_percentage
number
Percentage of tax applied to the plan/addon
tax_id
string
, default is no tax will be associated
Tax ID to which you would like to associate with this addon.
tax_exemption_id
string
Sales Tax , GST only
Unique ID of the tax exemption.
tax_exemption_code
string
Sales Tax , GST only
Unique code of the tax exemption.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("X-com-zoho-subscriptions-organizationid", "10234695"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/billing/v1/addons" type: POST headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ] info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/billing/v1/addons") .post(body) .addHeader("X-com-zoho-subscriptions-organizationid", "10234695") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { 'X-com-zoho-subscriptions-organizationid': '10234695', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/billing/v1/addons', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'X-com-zoho-subscriptions-organizationid': "10234695", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("POST", "/billing/v1/addons", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/billing/v1/addons", "headers": { "X-com-zoho-subscriptions-organizationid": "10234695", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request POST \ --url https://www.zohoapis.com/billing/v1/addons \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-com-zoho-subscriptions-organizationid: 10234695' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "addon_code": "Email-basic", "name": "Email addon", "unit_name": "Email", "pricing_scheme": "tier", "price_brackets": [ { "start_quantity": 1, "end_quantity": 50, "price": 10 } ], "type": "recurring", "interval_unit": "monthly", "tags": [ { "tag_id": "460000000054182", "tag_option_id": "460000000054280" } ], "custom_fields": [ { "label": "cfitem", "value": "test" } ], "applicable_to_all_plans": false, "plans": [ { "plan_code": "basic-monthly" } ], "product_id": "903000000045027", "description": "The addon for additonal email support", "store_markup_description": "Mailbox Storage-100GB | User & Docs Storage-500GB | User", "tax_id": "903000000065300", "product_type": "goods", "hsn_or_sac": "74191010", "sat_item_key_code": "10128918", "unitkey_code": "Yh7", "item_tax_preferences": [ { "tax_specification": "intra", "tax_name": "GST", "tax_percentage": 10, "tax_id": "903000000065300" } ], "tax_exemption_id": "903000006345", "tax_exemption_code": "GST FREE" }

Response Example

{ "code": 0, "message": "The addon has been created", "addon": { "addon_code": "Email-basic", "name": "Email addon", "unit": "kg", "unit_name": "Email", "pricing_scheme": "package", "price_brackets": [ { "start_quantity": 1, "end_quantity": 50, "price": 10 } ], "type": "recurring", "interval_unit": "monthly", "tags": [ { "tag_option_id": "460000000054280", "is_tag_mandatory": false, "tag_name": "Colors", "tag_id": "460000000054182", "tag_option_name": "Black" } ], "custom_fields": [ { "customfield_id": "2000000029001", "is_active": "true", "show_in_all_pdf": "true", "value_formatted": "test", "data_type": "string", "index": 1, "label": "cfitem", "show_on_pdf": false, "placeholder": "cf_cfitem", "value": "test" } ], "applicable_to_all_plans": false, "plans": [ { "plan_code": "basic-monthly", "name": "Basic" } ], "status": "active", "product_id": "903000000045027", "description": "The addon for additonal email support", "store_markup_description": "Mailbox Storage-100GB | User & Docs Storage-500GB | User", "product_type": "goods", "hsn_or_sac": "74191010", "sat_item_key_code": "10128918", "unitkey_code": "Yh7", "item_tax_preferences": [ { "tax_specification": "intra", "tax_name": "GST", "tax_percentage": 10, "tax_id": "903000000065300" } ], "tax_id": "903000000065300", "created_time": "2016-06-05T18:02:26-0700", "updated_time": "2016-06-05T18:02:26-0700" } }

List all addons

List of all addons.
OAuth Scope : ZohoSubscriptions.addons.READ

Query Parameters

filter_by
To list plans based on the Status, use the parameter filter_by. The allowed values for filter_by are AddonStatus.(All, ACTIVE, INACTIVE,ONETIME and RECURRING)
product_id
To list addons of a particular product use the parameter product_id.

Request Example

Click to copy
headers_data = Map(); headers_data.put("X-com-zoho-subscriptions-organizationid", "10234695"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/billing/v1/addons" type: GET headers: headers_data connection: <connection_name> ] info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/billing/v1/addons") .get() .addHeader("X-com-zoho-subscriptions-organizationid", "10234695") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { 'X-com-zoho-subscriptions-organizationid': '10234695', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/billing/v1/addons', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'X-com-zoho-subscriptions-organizationid': "10234695", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/billing/v1/addons", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/billing/v1/addons", "headers": { "X-com-zoho-subscriptions-organizationid": "10234695", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url https://www.zohoapis.com/billing/v1/addons \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-com-zoho-subscriptions-organizationid: 10234695'

Response Example

{ "code": 0, "message": "success", "addons": [ { "addon_code": "Email-basic", "name": "Email addon", "unit": "kg", "unit_name": "Email", "pricing_scheme": "unit", "price_brackets": [ { "start_quantity": 1, "end_quantity": 50, "price": 10 } ], "type": "recurring", "interval_unit": "monthly", "tags": [ { "tag_option_id": "460000000054278", "is_tag_mandatory": false, "tag_name": "Colors", "tag_id": "460000000054182", "tag_option_name": "Green" } ], "custom_fields": [ { "customfield_id": "2000000029001", "is_active": "true", "show_in_all_pdf": "true", "value_formatted": "test", "data_type": "string", "index": 1, "label": "cfitem", "show_on_pdf": false, "placeholder": "cf_cfitem", "value": "test" } ], "applicable_to_all_plans": false, "status": "active", "product_id": "903000000045027", "description": "The addon for additonal email support", "store_markup_description": "Mailbox Storage-100GB | User & Docs Storage-500GB | User", "product_type": "goods", "hsn_or_sac": "74191010", "sat_item_key_code": "10128918", "unitkey_code": "Yh7", "item_tax_preferences": [ { "tax_specification": "intra", "tax_name": "GST", "tax_percentage": 10, "tax_id": "903000000065300" } ], "tax_id": "903000000065300", "created_time": "2016-06-05T18:02:26-0700", "updated_time": "2016-06-05T18:02:26-0700" }, {...}, {...} ] }

Update an addon

Update details of an existing addon.
OAuth Scope : ZohoSubscriptions.addons.UPDATE

Arguments

addon_code
string
(Required)
Unique string of your choice which lets you identify this addon.
name
string
(Required)
Name of your choice to be displayed in the interface and invoices.
unit_name
string
(Required)
A name of your choice to refer to one unit of the addon.
pricing_scheme
string
, default is unit
Pricing type of the addon can be changed and the values are unit, volume, tier or package. To know more about pricing schemes click here.
price_brackets
array
(Required)
Array of objects which contains the start quantity, end quantity and price
Show Sub-Attributes arrow
start_quantity
integer
(Required) for “volume” and “tier” pricing schemes.
Lower limit of the addon range.
end_quantity
integer
(Required) for “volume”, “tier” and “package” pricing schemes.
Upper limit of the addon range.
price
double
(Required)
Per unit cost of the addon for the selected range. For the “package” pricing scheme, this would be the price of the specified quantity of addons.
type
string
, default is recurring
Indicates type of the addon. This could be either recurring or one_time.
interval_unit
string
, default is monthly
The billing frequency of the addon only if type is recurring and the values can be monthly or yearly.
tags
array
Show Sub-Attributes arrow
tag_id
long
ID of the Tag
tag_option_id
long
Id of the Tag Option
custom_fields
array
Custom fields for a Addon.
Show Sub-Attributes arrow
label
string
Label of the Custom Field
value
string
Value of the Custom Field
applicable_to_all_plans
boolean
, default is true
If the addon is to be associated with all plans, applicable_to_all_plans is set to true; otherwise, it is set to false.
plans
array
(Required)
List of plans that the addon needs to be associated with. If an addon is to be associated with only two plans - "basic" and "professional", then applicable_to_all_plans is set to false. Only the plan codes of the plans that need to be associated with are required.
Show Sub-Attributes arrow
plan_code
string
(Required)
The plan code of the plan to which the addon is to be applied.
name
The name of the plan.
product_id
string
(Required)
Product ID to which you want to associate this addon with.
description
string
Short description regarding the addon.
store_markup_description
string
Long Description regarding the plan.
product_type
string
VAT , India GST only
Product type for UK Edition.
hsn_or_sac
string
India GST only
HSN or SAC code for Goods/Services addon
sat_item_key_code
string
Add SAT Item Key Code for your goods/services. Download the CFDI Catalogs.
unitkey_code
string
Add Unit Key Code for your goods/services. Download the CFDI Catalogs.
item_tax_preferences
array
India GST only
Tax preferenece for addon
Show Sub-Attributes arrow
tax_specification
string
Tax specification for the addon. It can be either inter or intra.
tax_name
string
Name of the tax to which subscription is associated.
tax_percentage
number
Percentage of tax applied to the plan/addon
tax_id
string
, default is no tax will be associated
Tax ID to which you would like to associate with this addon.
tax_id
string
, default is no tax will be associated
Tax ID to which you would like to associate with this addon.
tax_exemption_id
string
Sales Tax , GST only
Unique ID of the tax exemption.
tax_exemption_code
string
Sales Tax , GST only
Unique code of the tax exemption.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("X-com-zoho-subscriptions-organizationid", "10234695"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/billing/v1/addons/Email-basic" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ] info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/billing/v1/addons/Email-basic") .put(body) .addHeader("X-com-zoho-subscriptions-organizationid", "10234695") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { 'X-com-zoho-subscriptions-organizationid': '10234695', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/billing/v1/addons/Email-basic', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'X-com-zoho-subscriptions-organizationid': "10234695", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/billing/v1/addons/Email-basic", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/billing/v1/addons/Email-basic", "headers": { "X-com-zoho-subscriptions-organizationid": "10234695", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url https://www.zohoapis.com/billing/v1/addons/Email-basic \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-com-zoho-subscriptions-organizationid: 10234695' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "addon_code": "Email-basic", "name": "Email addon", "unit_name": "Email", "pricing_scheme": "unit", "price_brackets": [ { "start_quantity": 1, "end_quantity": 50, "price": 10 } ], "type": "recurring", "interval_unit": "monthly", "tags": [ { "tag_id": "460000000054182", "tag_option_id": "460000000054278" } ], "custom_fields": [ { "label": "cfitem", "value": "test" } ], "applicable_to_all_plans": false, "plans": [ { "plan_code": "basic-monthly", "name": "Basic" } ], "product_id": "903000000045027", "description": "The addon for additonal email support", "store_markup_description": "Mailbox Storage-100GB | User & Docs Storage-500GB | User", "product_type": "goods", "hsn_or_sac": "74191010", "sat_item_key_code": "10128918", "unitkey_code": "Yh7", "item_tax_preferences": [ { "tax_specification": "intra", "tax_name": "GST", "tax_percentage": 10, "tax_id": "903000000065300" } ], "tax_id": "903000000065300", "tax_exemption_id": "903000006345", "tax_exemption_code": "GST FREE" }

Response Example

{ "code": 0, "message": "The addon details have been updated.", "addon": { "addon_code": "Email-basic", "name": "Email addon", "unit": "kg", "unit_name": "Email", "pricing_scheme": "unit", "price_brackets": [ { "start_quantity": 1, "end_quantity": 50, "price": 10 } ], "type": "recurring", "interval_unit": "monthly", "tags": [ { "tag_option_id": "460000000054278", "is_tag_mandatory": false, "tag_name": "Colors", "tag_id": "460000000054182", "tag_option_name": "Green" } ], "custom_fields": [ { "customfield_id": "2000000029001", "is_active": "true", "show_in_all_pdf": "true", "value_formatted": "test", "data_type": "string", "index": 1, "label": "cfitem", "show_on_pdf": false, "placeholder": "cf_cfitem", "value": "test" } ], "applicable_to_all_plans": false, "plans": [ { "plan_code": "basic-monthly", "name": "Basic" } ], "status": "active", "product_id": "903000000045027", "description": "The addon for additonal email support", "store_markup_description": "Mailbox Storage-100GB | User & Docs Storage-500GB | User", "product_type": "goods", "hsn_or_sac": "74191010", "sat_item_key_code": "10128918", "unitkey_code": "Yh7", "item_tax_preferences": [ { "tax_specification": "intra", "tax_name": "GST", "tax_percentage": 10, "tax_id": "903000000065300" } ], "tax_id": "903000000065300", "created_time": "2016-06-05T18:02:26-0700", "updated_time": "2016-06-05T18:02:26-0700" } }

Retrieve an addon

Details for an existing Addon.
OAuth Scope : ZohoSubscriptions.addons.READ

Request Example

Click to copy
headers_data = Map(); headers_data.put("X-com-zoho-subscriptions-organizationid", "10234695"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/billing/v1/addons/Email-basic" type: GET headers: headers_data connection: <connection_name> ] info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/billing/v1/addons/Email-basic") .get() .addHeader("X-com-zoho-subscriptions-organizationid", "10234695") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { 'X-com-zoho-subscriptions-organizationid': '10234695', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/billing/v1/addons/Email-basic', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'X-com-zoho-subscriptions-organizationid': "10234695", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/billing/v1/addons/Email-basic", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/billing/v1/addons/Email-basic", "headers": { "X-com-zoho-subscriptions-organizationid": "10234695", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url https://www.zohoapis.com/billing/v1/addons/Email-basic \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-com-zoho-subscriptions-organizationid: 10234695'

Response Example

{ "code": 0, "message": "success", "addon": { "addon_code": "Email-basic", "name": "Email addon", "unit": "kg", "unit_name": "Email", "pricing_scheme": "unit", "price_brackets": [ { "start_quantity": 1, "end_quantity": 50, "price": 10 } ], "type": "recurring", "interval_unit": "monthly", "tags": [ { "tag_option_id": "460000000054280", "is_tag_mandatory": false, "tag_name": "Colors", "tag_id": "460000000054182", "tag_option_name": "Black" } ], "custom_fields": [ { "customfield_id": "2000000029001", "is_active": "true", "show_in_all_pdf": "true", "value_formatted": "test", "data_type": "string", "index": 1, "label": "cfitem", "show_on_pdf": false, "placeholder": "cf_cfitem", "value": "test" } ], "applicable_to_all_plans": false, "plans": [ { "plan_code": "basic-monthly", "name": "Basic" } ], "status": "active", "product_id": "903000000045027", "description": "The addon for additonal email support", "store_markup_description": "Mailbox Storage-100GB | User & Docs Storage-500GB | User", "product_type": "goods", "hsn_or_sac": "74191010", "sat_item_key_code": "10128918", "unitkey_code": "Yh7", "item_tax_preferences": [ { "tax_specification": "intra", "tax_name": "GST", "tax_percentage": 10, "tax_id": "903000000065300" } ], "tax_id": "903000000065300", "created_time": "2016-06-05T18:02:26-0700", "updated_time": "2016-06-05T18:02:26-0700" } }

Delete an addon

Delete an existing addon.
OAuth Scope : ZohoSubscriptions.addons.DELETE

Request Example

Click to copy
headers_data = Map(); headers_data.put("X-com-zoho-subscriptions-organizationid", "10234695"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/billing/v1/addons/Email-basic" type: DELETE headers: headers_data connection: <connection_name> ] info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/billing/v1/addons/Email-basic") .delete(null) .addHeader("X-com-zoho-subscriptions-organizationid", "10234695") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { 'X-com-zoho-subscriptions-organizationid': '10234695', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/billing/v1/addons/Email-basic', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'X-com-zoho-subscriptions-organizationid': "10234695", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/billing/v1/addons/Email-basic", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "www.zohoapis.com", "port": null, "path": "/billing/v1/addons/Email-basic", "headers": { "X-com-zoho-subscriptions-organizationid": "10234695", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request DELETE \ --url https://www.zohoapis.com/billing/v1/addons/Email-basic \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-com-zoho-subscriptions-organizationid: 10234695'

Response Example

{ "code": 0, "message": "The addon has been deleted." }

Mark as active

Change status of the addon to active.
OAuth Scope : ZohoSubscriptions.addons.CREATE

Request Example

Click to copy
headers_data = Map(); headers_data.put("X-com-zoho-subscriptions-organizationid", "10234695"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/billing/v1/addons/Email-basic/markasactive" type: POST headers: headers_data connection: <connection_name> ] info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/billing/v1/addons/Email-basic/markasactive") .post(null) .addHeader("X-com-zoho-subscriptions-organizationid", "10234695") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { 'X-com-zoho-subscriptions-organizationid': '10234695', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/billing/v1/addons/Email-basic/markasactive', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'X-com-zoho-subscriptions-organizationid': "10234695", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/billing/v1/addons/Email-basic/markasactive", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/billing/v1/addons/Email-basic/markasactive", "headers": { "X-com-zoho-subscriptions-organizationid": "10234695", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url https://www.zohoapis.com/billing/v1/addons/Email-basic/markasactive \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-com-zoho-subscriptions-organizationid: 10234695'

Response Example

{ "code": 0, "message": "The addon has been marked as active." }

Mark as inactive

Change status of the addon to inactive.
OAuth Scope : ZohoSubscriptions.addons.CREATE

Request Example

Click to copy
headers_data = Map(); headers_data.put("X-com-zoho-subscriptions-organizationid", "10234695"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/billing/v1/addons/Email-basic/markasinactive" type: POST headers: headers_data connection: <connection_name> ] info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/billing/v1/addons/Email-basic/markasinactive") .post(null) .addHeader("X-com-zoho-subscriptions-organizationid", "10234695") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { 'X-com-zoho-subscriptions-organizationid': '10234695', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/billing/v1/addons/Email-basic/markasinactive', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'X-com-zoho-subscriptions-organizationid': "10234695", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/billing/v1/addons/Email-basic/markasinactive", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/billing/v1/addons/Email-basic/markasinactive", "headers": { "X-com-zoho-subscriptions-organizationid": "10234695", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url https://www.zohoapis.com/billing/v1/addons/Email-basic/markasinactive \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-com-zoho-subscriptions-organizationid: 10234695'

Response Example

{ "code": 0, "message": "The addon has been marked as inactive." }