Cost Templates

Cost Templates AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

A cost template defines how the manufacturing cost of an item is calculated by grouping different cost components. It acts as a predefined costing structure for each work center type and is automatically applied when jobs are in progress, helping ensure consistent cost calculation and better visibility into manufacturing expenses.

Download Cost Templates OpenAPI Document

Attribute

cost_template_id
string
ID of the Cost Template. Note: This value is a set of numeric characters.
cost_template_name
string
Name of the cost template. Maximum length: 500 characters.
cost_items
array
List of individual cost components included in this cost template.
Show Sub-Attributes arrow
cost_id
string
ID of the cost item. Note: This value is a set of numeric characters.
cost_name
string
Name of the cost item (e.g. Labour, Electricity, Equipment Depreciation). Must be unique within the cost template — two cost items in the same template cannot share a name. Maximum length: 100 characters.
cost_amount
double
Amount for this cost item. Must be greater than 0.
is_fixed
boolean
Indicates whether this cost is fixed irrespective of the job card duration (true) or scales with it (false). When true, the cost_amount is applied once per job card regardless of how long it runs. When false, the effective cost is cost_amount multiplied by the job card duration.
cost_account_id
string
Unique identifier of the ledger account to which this cost is posted. Only Liability accounts are accepted; Credit Card and Accounts Payable accounts (both sub-types of Liability) are not allowed. The account must be active and must exist in the organization's Chart of Accounts.
cost_account_name
string
Name of the ledger account to which this cost is posted.

Example

{ "cost_template_id": "982000000011001", "cost_template_name": "Manufacturing", "cost_items": [ { "cost_id": "982000000011101", "cost_name": "Labour", "cost_amount": 100, "is_fixed": false, "cost_account_id": "3863095000000000474", "cost_account_name": "Tax Payable" } ] }

Create a cost template AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Create a cost template.
OAuth Scope : ERP.manufacturing.CREATE

Arguments

cost_template_name
string
(Required)
Name of the cost template. Maximum length: 500 characters.
cost_items
array
(Required)
List of individual cost components included in this cost template.
Show Sub-Attributes arrow
cost_name
string
(Required)
Name of the cost item (e.g. Labour, Electricity, Equipment Depreciation). Must be unique within the cost template — two cost items in the same template cannot share a name. Maximum length: 100 characters.
is_fixed
boolean
(Required)
Indicates whether this cost is fixed irrespective of the job card duration (true) or scales with it (false). When true, the cost_amount is applied once per job card regardless of how long it runs. When false, the effective cost is cost_amount multiplied by the job card duration.
cost_amount
double
(Required)
Amount for this cost item. Must be greater than 0.
cost_account_id
string
(Required)
Unique identifier of the ledger account to which this cost is posted. Only Liability accounts are accepted; Credit Card and Accounts Payable accounts (both sub-types of Liability) are not allowed. The account must be active and must exist in the organization's Chart of Accounts.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/costtemplates?organization_id=10234695" 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.in/erp/v3/costtemplates?organization_id=10234695") .post(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.in/erp/v3/costtemplates?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("POST", "/erp/v3/costtemplates?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/costtemplates?organization_id=10234695", "headers": { "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.in/erp/v3/costtemplates?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "cost_template_name": "Manufacturing", "cost_items": [ { "cost_name": "Labour", "is_fixed": false, "cost_amount": 100, "cost_account_id": "3863095000000000474" } ] }

Response Example

{ "code": 0, "message": "Cost Template created", "cost_template": { "cost_template_id": "982000000011001", "cost_template_name": "Manufacturing", "cost_items": [ { "cost_id": "982000000011101", "cost_name": "Labour", "cost_amount": 100, "is_fixed": false, "cost_account_id": "3863095000000000474", "cost_account_name": "Tax Payable" } ] } }

List cost templates AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

List all cost templates.
OAuth Scope : ERP.manufacturing.READ

Query Parameters

organization_id
string
(Required)
ID of the organization.
sort_column
string
Specify the column field for sorting cost template results. Allowed Values: created_time and last_modified_time.
sort_order
string
Sort order for results. Allowed Values: A (ascending) and D (descending).
search_text
string
Search across cost template name.
page
integer
Page number for pagination. Default is 1.
per_page
integer
Number of records to be fetched per page. Default value is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/costtemplates?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.in/erp/v3/costtemplates?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.in/erp/v3/costtemplates?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/erp/v3/costtemplates?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/costtemplates?organization_id=10234695", "headers": { "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.in/erp/v3/costtemplates?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "cost_templates": [ { "cost_template_id": "982000000011001", "cost_template_name": "Manufacturing", "created_time": "2026-05-12T14:05:10+0530", "last_modified_time": "2026-05-12T14:30:22+0530", "created_by_id": "460000000053001", "last_modified_by_id": "460000000053001" }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "report_name": "Cost Templates", "sort_column": "created_time", "sort_order": "D" } }

Update a cost template AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Update an existing cost template.
OAuth Scope : ERP.manufacturing.UPDATE

Arguments

cost_template_name
string
Name of the cost template. Maximum length: 500 characters.
cost_items
array
List of individual cost components included in this cost template.
Show Sub-Attributes arrow
cost_name
string
(Required)
Name of the cost item (e.g. Labour, Electricity, Equipment Depreciation). Must be unique within the cost template — two cost items in the same template cannot share a name. Maximum length: 100 characters.
is_fixed
boolean
(Required)
Indicates whether this cost is fixed irrespective of the job card duration (true) or scales with it (false). When true, the cost_amount is applied once per job card regardless of how long it runs. When false, the effective cost is cost_amount multiplied by the job card duration.
cost_amount
double
(Required)
Amount for this cost item. Must be greater than 0.
cost_account_id
string
(Required)
Unique identifier of the ledger account to which this cost is posted. Only Liability accounts are accepted; Credit Card and Accounts Payable accounts (both sub-types of Liability) are not allowed. The account must be active and must exist in the organization's Chart of Accounts.

Path Parameters

cost_template_id
string
(Required)
ID of the cost template. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695" 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.in/erp/v3/costtemplates/982000000011001?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/erp/v3/costtemplates/982000000011001?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/costtemplates/982000000011001?organization_id=10234695", "headers": { "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.in/erp/v3/costtemplates/982000000011001?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "cost_template_name": "Manufacturing", "cost_items": [ { "cost_name": "Labour", "is_fixed": false, "cost_amount": 100, "cost_account_id": "3863095000000000474" } ] }

Response Example

{ "code": 0, "message": "Cost Template updated", "cost_template": { "cost_template_id": "982000000011001", "cost_template_name": "Manufacturing", "cost_items": [ { "cost_id": "982000000011101", "cost_name": "Labour", "cost_amount": 100, "is_fixed": false, "cost_account_id": "3863095000000000474", "cost_account_name": "Tax Payable" } ] } }

Get a cost template AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Get the details of a cost template.
OAuth Scope : ERP.manufacturing.READ

Path Parameters

cost_template_id
string
(Required)
ID of the cost template. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/erp/v3/costtemplates/982000000011001?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/costtemplates/982000000011001?organization_id=10234695", "headers": { "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.in/erp/v3/costtemplates/982000000011001?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "cost_template": { "cost_template_id": "982000000011001", "cost_template_name": "Manufacturing", "cost_items": [ { "cost_id": "982000000011101", "cost_name": "Labour", "cost_amount": 100, "is_fixed": false, "cost_account_id": "3863095000000000474", "cost_account_name": "Tax Payable" } ] } }

Delete a cost template AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Delete an existing cost template. Cost templates linked to a work center, work center type, or job card cannot be deleted.
OAuth Scope : ERP.manufacturing.DELETE

Path Parameters

cost_template_id
string
(Required)
ID of the cost template. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695") .delete(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.in/erp/v3/costtemplates/982000000011001?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.in") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/erp/v3/costtemplates/982000000011001?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "www.zohoapis.in", "port": null, "path": "/erp/v3/costtemplates/982000000011001?organization_id=10234695", "headers": { "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.in/erp/v3/costtemplates/982000000011001?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "Cost Template deleted" }