Expenses
A typical expense is incurred when money goes out of your pocket. Whether its a product you buy from your vendor to run your business, or food that you eat while on business trips, it’s important to track the money you spend.
Attribute
business_gst
, business_none
, overseas
, consumer
.vat_registered
,vat_not_registered
,gcc_vat_not_registered
,gcc_vat_registered
,non_gcc
.dz_vat_registered
and dz_vat_not_registered
are supported only for UAE. For Kenya Edition:
vat_registered
,vat_not_registered
,non_kenya
(A business that is located outside Kenya).For SouthAfrica Edition:
vat_registered
, vat_not_registered
, overseas
(A business that is located outside SouthAfrica).place of contact
given for the contact will be taken)Supported codes for UAE emirates are : Abu Dhabi -
AB
,Ajman - AJ
,Dubai - DU
,Fujairah - FU
,Ras al-Khaimah - RA
,Sharjah - SH
,Umm al-Quwain - UM
.Supported codes for the GCC countries are : United Arab Emirates -
AE
,Saudi Arabia - SA
,Bahrain - BH
,Kuwait - KW
,Oman - OM
,Qatar - QA
.place of contact
given for the contact will be taken)mileage_type
is odometer
.mileage_type
is odometer
.{
"expense_id": 982000000030049,
"transaction_id": " ",
"transaction_type": "expense",
"gst_no": "22AAAAA0000A1Z5",
"gst_treatment": "business_gst",
"tax_treatment": "vat_registered",
"destination_of_supply": "TN",
"destination_of_supply_state": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"source_of_supply": "AP",
"paid_through_account_name": "Petty Cash",
"vat_reg_no": "string",
"reverse_charge_tax_id": 982000000561063,
"reverse_charge_tax_name": "intra",
"reverse_charge_tax_percentage": 10,
"reverse_charge_tax_amount": 12,
"tax_amount": 11.85,
"is_itemized_expense": false,
"is_pre_gst": "fasle",
"trip_id": "",
"trip_number": "",
"reverse_charge_vat_total": 1.2,
"acquisition_vat_total": 0,
"acquisition_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"reverse_charge_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"taxes": [
{
"tax_id": 982000000566007,
"tax_amount": 11.85
}
],
"expense_item_id": 982000000567220,
"account_id": 982000000561057,
"account_name": "Rent",
"date": "2013-11-18",
"tax_id": 982000000566007,
"tax_name": "SalesTax",
"tax_percentage": 10.5,
"currency_id": 982000000567001,
"currency_code": "USD",
"exchange_rate": 1,
"sub_total": 90,
"total": 100,
"bcy_total": 100,
"amount": 112.5,
"is_inclusive_tax": false,
"reference_number": null,
"description": "Marketing",
"is_billable": true,
"is_personal": false,
"customer_id": 982000000567001,
"customer_name": "Bowman & Co",
"expense_receipt_name": " ",
"expense_receipt_type": " ",
"last_modified_time": " ",
"status": "unbilled",
"invoice_id": " ",
"invoice_number": " ",
"project_id": 982000000567226,
"project_name": " ",
"mileage_rate": " ",
"mileage_type": "non_mileage",
"expense_type": "non-mileage",
"start_reading": " ",
"end_reading": " "
}
Create an Expense
Create billable or non-billable expense.
OAuth Scope : ZohoBooks.expenses.CREATE
Arguments
place of contact
given for the contact will be taken)place of contact
given for the contact will be taken)Supported codes for UAE emirates are : Abu Dhabi -
AB
,Ajman - AJ
,Dubai - DU
,Fujairah - FU
,Ras al-Khaimah - RA
,Sharjah - SH
,Umm al-Quwain - UM
.Supported codes for the GCC countries are : United Arab Emirates -
AE
,Saudi Arabia - SA
,Bahrain - BH
,Kuwait - KW
,Oman - OM
,Qatar - QA
.For UK:
digital_service
, goods
and service
.For SouthAfrica Edition:
service
, goods
, capital_service
and capital_goods
uk
. If the vendor is in an EU country & VAT registered, you are resides in Northen Ireland and purchasing Goods then his VAT treatment is eu_vat_registered
and if he resides outside the UK then his VAT treatment is overseas
(For Pre Brexit, this can be split as eu_vat_registered
, eu_vat_not_registered
and non_eu
).vat_registered
,vat_not_registered
,gcc_vat_not_registered
,gcc_vat_registered
,non_gcc
.dz_vat_registered
and dz_vat_not_registered
are supported only for UAE. For Kenya Edition:
vat_registered
,vat_not_registered
,non_kenya
(A business that is located outside Kenya).For SouthAfrica Edition:
vat_registered
, vat_not_registered
, overseas
(A business that is located outside SouthAfrica).For UK:
digital_service
, goods
and service
.For SouthAfrica Edition:
service
, goods
, capital_service
and capital_goods
mileage_type
is odometer
.mileage_type
is odometer
.mileage_type
is manual
km
and mile
car
, van
, motorcycle
and bike
petrol
, lpg
and diesel
less_than_1400cc
, between_1400cc_and_1600cc
, between_1600cc_and_2000cc
and more_than_2000cc
Query Parameters
gif
, png
, jpeg
, jpg
, bmp
, pdf
, xls
, xlsx
, doc
and docx
.parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses?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.com/books/v3/expenses?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.com/books/v3/expenses?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.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
'content-type': "application/json"
}
conn.request("POST", "/books/v3/expenses?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.com",
"port": null,
"path": "/books/v3/expenses?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.com/books/v3/expenses?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
--header 'content-type: application/json' \
--data '{"field1":"value1","field2":"value2"}'
{
"account_id": 982000000561057,
"date": "2013-11-18",
"amount": 112.5,
"tax_id": 982000000566007,
"source_of_supply": "AP",
"destination_of_supply": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"gst_no": "22AAAAA0000A1Z5",
"reverse_charge_tax_id": 982000000561063,
"line_items": [
{
"line_item_id": 10763000000140068,
"account_id": 982000000561057,
"description": "Marketing",
"amount": 112.5,
"tax_id": 982000000566007,
"item_order": 1,
"product_type": "goods",
"acquisition_vat_id": " ",
"reverse_charge_vat_id": " ",
"reverse_charge_tax_id": 982000000561063,
"tax_exemption_code": "string",
"tax_exemption_id": 982000000561067
}
],
"taxes": [
{
"tax_id": 982000000566007,
"tax_amount": 11.85
}
],
"is_inclusive_tax": false,
"is_billable": true,
"reference_number": null,
"description": "Marketing",
"customer_id": 982000000567001,
"currency_id": 982000000567001,
"exchange_rate": 1,
"project_id": 982000000567226,
"mileage_type": "non_mileage",
"vat_treatment": "eu_vat_not_registered",
"tax_treatment": "vat_registered",
"product_type": "goods",
"acquisition_vat_id": " ",
"reverse_charge_vat_id": " ",
"start_reading": " ",
"end_reading": " ",
"distance": " ",
"mileage_unit": " ",
"mileage_rate": " ",
"employee_id": " ",
"vehicle_type": " ",
"can_reclaim_vat_on_mileage": " ",
"fuel_type": " ",
"engine_capacity_range": " ",
"paid_through_account_id": 982000000567250,
"vendor_id": " ",
"custom_fields": []
}
{
"code": 0,
"message": "The expense has been recorded.",
"expense": {
"expense_id": 982000000030049,
"transaction_id": " ",
"transaction_type": "expense",
"gst_no": "22AAAAA0000A1Z5",
"gst_treatment": "business_gst",
"tax_treatment": "vat_registered",
"destination_of_supply": "TN",
"destination_of_supply_state": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"source_of_supply": "AP",
"paid_through_account_name": "Petty Cash",
"vat_reg_no": "string",
"reverse_charge_tax_id": 982000000561063,
"reverse_charge_tax_name": "intra",
"reverse_charge_tax_percentage": 10,
"reverse_charge_tax_amount": 12,
"tax_amount": 11.85,
"is_itemized_expense": false,
"is_pre_gst": "fasle",
"trip_id": "",
"trip_number": "",
"reverse_charge_vat_total": 1.2,
"acquisition_vat_total": 0,
"acquisition_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"reverse_charge_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"taxes": [
{
"tax_id": 982000000566007,
"tax_amount": 11.85
}
],
"expense_item_id": 982000000567220,
"account_id": 982000000561057,
"account_name": "Rent",
"date": "2013-11-18",
"tax_id": 982000000566007,
"tax_name": "SalesTax",
"tax_percentage": 10.5,
"currency_id": 982000000567001,
"currency_code": "USD",
"exchange_rate": 1,
"sub_total": 90,
"total": 100,
"bcy_total": 100,
"amount": 112.5,
"is_inclusive_tax": false,
"reference_number": null,
"description": "Marketing",
"is_billable": true,
"is_personal": false,
"customer_id": 982000000567001,
"customer_name": "Bowman & Co",
"expense_receipt_name": " ",
"expense_receipt_type": " ",
"last_modified_time": " ",
"status": "unbilled",
"invoice_id": " ",
"invoice_number": " ",
"project_id": 982000000567226,
"project_name": " ",
"mileage_rate": " ",
"mileage_type": "non_mileage",
"expense_type": "non-mileage",
"start_reading": " ",
"end_reading": " "
}
}
Update an expense using a custom field's unique value
A custom field will have unique values if it's configured to not accept duplicate values. Now, you can use that custom field's value to update a expense by providing its API name in the X-Unique-Identifier-Key header and its value in the X-Unique-Identifier-Value header. Based on this value, the corresponding bill expense be retrieved and updated. Additionally, there is an optional X-Upsert header. If the X-Upsert header is true and the custom field's unique value is not found in any of the existing expenses, a new expense will be created if the necessary payload details are available
OAuth Scope : ZohoBooks.expenses.UPDATE
Arguments
place of contact
given for the contact will be taken)place of contact
given for the contact will be taken)Supported codes for UAE emirates are : Abu Dhabi -
AB
,Ajman - AJ
,Dubai - DU
,Fujairah - FU
,Ras al-Khaimah - RA
,Sharjah - SH
,Umm al-Quwain - UM
.Supported codes for the GCC countries are : United Arab Emirates -
AE
,Saudi Arabia - SA
,Bahrain - BH
,Kuwait - KW
,Oman - OM
,Qatar - QA
.For UK:
digital_service
, goods
and service
.For SouthAfrica Edition:
service
, goods
, capital_service
and capital_goods
uk
. If the vendor is in an EU country & VAT registered, you are resides in Northen Ireland and purchasing Goods then his VAT treatment is eu_vat_registered
and if he resides outside the UK then his VAT treatment is overseas
(For Pre Brexit, this can be split as eu_vat_registered
, eu_vat_not_registered
and non_eu
).vat_registered
,vat_not_registered
,gcc_vat_not_registered
,gcc_vat_registered
,non_gcc
.dz_vat_registered
and dz_vat_not_registered
are supported only for UAE. For Kenya Edition:
vat_registered
,vat_not_registered
,non_kenya
(A business that is located outside Kenya).For SouthAfrica Edition:
vat_registered
, vat_not_registered
, overseas
(A business that is located outside SouthAfrica).For UK:
digital_service
, goods
and service
.For SouthAfrica Edition:
service
, goods
, capital_service
and capital_goods
mileage_type
is odometer
.mileage_type
is odometer
.mileage_type
is manual
km
and mile
car
, van
, motorcycle
and bike
petrol
, lpg
and diesel
less_than_1400cc
, between_1400cc_and_1600cc
, between_1600cc_and_2000cc
and more_than_2000cc
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("X-Unique-Identifier-Key", "cf_unique_cf");
headers_data.put("X-Unique-Identifier-Value", "unique Value");
headers_data.put("X-Upsert", "true");
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses?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.com/books/v3/expenses?organization_id=10234695")
.put(body)
.addHeader("X-Unique-Identifier-Key", "cf_unique_cf")
.addHeader("X-Unique-Identifier-Value", "unique Value")
.addHeader("X-Upsert", "true")
.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-Unique-Identifier-Key': 'cf_unique_cf',
'X-Unique-Identifier-Value': 'unique Value',
'X-Upsert': 'true',
Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
'content-type': 'application/json'
},
body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/expenses?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.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
'X-Unique-Identifier-Key': "cf_unique_cf",
'X-Unique-Identifier-Value': "unique Value",
'X-Upsert': "true",
'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
'content-type': "application/json"
}
conn.request("PUT", "/books/v3/expenses?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.com",
"port": null,
"path": "/books/v3/expenses?organization_id=10234695",
"headers": {
"X-Unique-Identifier-Key": "cf_unique_cf",
"X-Unique-Identifier-Value": "unique Value",
"X-Upsert": "true",
"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/books/v3/expenses?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
--header 'X-Unique-Identifier-Key: cf_unique_cf' \
--header 'X-Unique-Identifier-Value: unique Value' \
--header 'X-Upsert: true' \
--header 'content-type: application/json' \
--data '{"field1":"value1","field2":"value2"}'
{
"account_id": 982000000561057,
"date": "2013-11-18",
"amount": 120.5,
"tax_id": 982000000566007,
"source_of_supply": "AP",
"destination_of_supply": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"gst_no": "22AAAAA0000A1Z5",
"reverse_charge_tax_id": 982000000561063,
"line_items": [
{
"line_item_id": 10763000000140068,
"account_id": 982000000561057,
"description": "Marketing",
"amount": 112.5,
"tax_id": 982000000566007,
"item_order": 1,
"product_type": "goods",
"acquisition_vat_id": " ",
"reverse_charge_vat_id": " ",
"reverse_charge_tax_id": 982000000561063,
"tax_exemption_code": "string",
"tax_exemption_id": 982000000561067
}
],
"taxes": [
{
"tax_id": 982000000566007,
"tax_amount": 11.85
}
],
"is_inclusive_tax": false,
"is_billable": true,
"reference_number": null,
"description": "Marketing",
"customer_id": 982000000567001,
"currency_id": 982000000567001,
"exchange_rate": 1,
"project_id": 982000000567226,
"mileage_type": "non_mileage",
"vat_treatment": "eu_vat_not_registered",
"tax_treatment": "vat_registered",
"product_type": "goods",
"acquisition_vat_id": " ",
"reverse_charge_vat_id": " ",
"start_reading": " ",
"end_reading": " ",
"distance": " ",
"mileage_unit": " ",
"mileage_rate": " ",
"employee_id": " ",
"vehicle_type": " ",
"can_reclaim_vat_on_mileage": " ",
"fuel_type": " ",
"engine_capacity_range": " ",
"paid_through_account_id": 982000000567250,
"vendor_id": " ",
"custom_fields": []
}
{
"code": 0,
"message": "Expense information has been updated.",
"expense": {
"expense_id": 982000000030049,
"transaction_id": " ",
"transaction_type": "expense",
"gst_no": "22AAAAA0000A1Z5",
"gst_treatment": "business_gst",
"tax_treatment": "vat_registered",
"destination_of_supply": "TN",
"destination_of_supply_state": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"source_of_supply": "AP",
"paid_through_account_name": "Petty Cash",
"vat_reg_no": "string",
"reverse_charge_tax_id": 982000000561063,
"reverse_charge_tax_name": "intra",
"reverse_charge_tax_percentage": 10,
"reverse_charge_tax_amount": 12,
"tax_amount": 11.85,
"is_itemized_expense": false,
"is_pre_gst": "fasle",
"trip_id": "",
"trip_number": "",
"reverse_charge_vat_total": 1.2,
"acquisition_vat_total": 0,
"acquisition_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"reverse_charge_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"taxes": [
{
"tax_id": 982000000566007,
"tax_amount": 11.85
}
],
"expense_item_id": 982000000567220,
"account_id": 982000000561057,
"account_name": "Rent",
"date": "2013-11-18",
"tax_id": 982000000566007,
"tax_name": "SalesTax",
"tax_percentage": 10.5,
"currency_id": 982000000567001,
"currency_code": "USD",
"exchange_rate": 1,
"sub_total": 90,
"total": 100,
"bcy_total": 100,
"amount": 120.5,
"is_inclusive_tax": false,
"reference_number": null,
"description": "Marketing",
"is_billable": true,
"is_personal": false,
"customer_id": 982000000567001,
"customer_name": "Bowman & Co",
"expense_receipt_name": " ",
"expense_receipt_type": " ",
"last_modified_time": " ",
"status": "unbilled",
"invoice_id": " ",
"invoice_number": " ",
"project_id": 982000000567226,
"project_name": " ",
"mileage_rate": " ",
"mileage_type": "non_mileage",
"expense_type": "non-mileage",
"start_reading": " ",
"end_reading": " "
}
}
List Expenses
List all the Expenses with pagination.
OAuth Scope : ZohoBooks.expenses.READ
Query Parameters
description_startswith
and description_contains
. Max-length [100]reference_number_startswith
and reference_number_contains
. Max-length [100]date_start
, date_end
, date_before
and date_after
. Format [yyyy-mm-dd]unbilled
, invoiced
, reimbursed
, non-billable
and billable
amount_less_than
, amount_less_equals
, amount_greater_than
and amount_greater_than
account_name_startswith
and account_name_contains
. Max-length [100]customer_name_startswith
and customer_name_contains
. Max-length [100]vendor_name_startswith
and vendor_name_contains
.customer name
or vendor name
. Max-length [100]date
, account_name
, total
, bcy_total
, reference_number
, customer_name
and created_time
Status.All
, Status.Billable
, Status.Nonbillable
, Status.Reimbursed
, Status.Invoiced
and Status.Unbilled
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses?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.com/books/v3/expenses?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.com/books/v3/expenses?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/expenses?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.com",
"port": null,
"path": "/books/v3/expenses?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.com/books/v3/expenses?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "success",
"expenses": [
{
"expense_id": 982000000030049,
"date": "2013-11-18",
"account_name": "Rent",
"description": "Marketing",
"currency_id": 982000000567001,
"currency_code": "USD",
"bcy_total": 100,
"bcy_total_without_tax": 100,
"total": 100,
"total_without_tax": 100,
"is_billable": true,
"reference_number": null,
"customer_id": 982000000567001,
"customer_name": "Bowman & Co",
"status": "unbilled",
"created_time": "2013-11-18T00:00:00.000Z",
"last_modified_time": " ",
"expense_receipt_name": " ",
"mileage_rate": " ",
"mileage_unit": " ",
"expense_type": "non-mileage",
"start_reading": " ",
"end_reading": " "
},
{...},
{...}
],
"page_context": [
{
"sort_column": "total",
"filter_by": "Status.Billable",
"search_text": "Rent",
"applied_filter": "Status.All",
"page": 1,
"per_page": 100
}
]
}
Update an Expense
Update an existing Expense.
OAuth Scope : ZohoBooks.expenses.UPDATE
Arguments
place of contact
given for the contact will be taken)place of contact
given for the contact will be taken)Supported codes for UAE emirates are : Abu Dhabi -
AB
,Ajman - AJ
,Dubai - DU
,Fujairah - FU
,Ras al-Khaimah - RA
,Sharjah - SH
,Umm al-Quwain - UM
.Supported codes for the GCC countries are : United Arab Emirates -
AE
,Saudi Arabia - SA
,Bahrain - BH
,Kuwait - KW
,Oman - OM
,Qatar - QA
.For UK:
digital_service
, goods
and service
.For SouthAfrica Edition:
service
, goods
, capital_service
and capital_goods
uk
. If the vendor is in an EU country & VAT registered, you are resides in Northen Ireland and purchasing Goods then his VAT treatment is eu_vat_registered
and if he resides outside the UK then his VAT treatment is overseas
(For Pre Brexit, this can be split as eu_vat_registered
, eu_vat_not_registered
and non_eu
).vat_registered
,vat_not_registered
,gcc_vat_not_registered
,gcc_vat_registered
,non_gcc
.dz_vat_registered
and dz_vat_not_registered
are supported only for UAE. For Kenya Edition:
vat_registered
,vat_not_registered
,non_kenya
(A business that is located outside Kenya).For SouthAfrica Edition:
vat_registered
, vat_not_registered
, overseas
(A business that is located outside SouthAfrica).For UK:
digital_service
, goods
and service
.For SouthAfrica Edition:
service
, goods
, capital_service
and capital_goods
mileage_type
is odometer
.mileage_type
is odometer
.mileage_type
is manual
km
and mile
car
, van
, motorcycle
and bike
petrol
, lpg
and diesel
less_than_1400cc
, between_1400cc_and_1600cc
, between_1600cc_and_2000cc
and more_than_2000cc
Query Parameters
gif
, png
, jpeg
, jpg
, bmp
, pdf
, xls
, xlsx
, doc
and docx
.parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?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.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
'content-type': "application/json"
}
conn.request("PUT", "/books/v3/expenses/982000000030049?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.com",
"port": null,
"path": "/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
--header 'content-type: application/json' \
--data '{"field1":"value1","field2":"value2"}'
{
"account_id": 982000000561057,
"date": "2013-11-18",
"amount": 120.5,
"tax_id": 982000000566007,
"source_of_supply": "AP",
"destination_of_supply": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"gst_no": "22AAAAA0000A1Z5",
"reverse_charge_tax_id": 982000000561063,
"line_items": [
{
"line_item_id": 10763000000140068,
"account_id": 982000000561057,
"description": "Marketing",
"amount": 112.5,
"tax_id": 982000000566007,
"item_order": 1,
"product_type": "goods",
"acquisition_vat_id": " ",
"reverse_charge_vat_id": " ",
"reverse_charge_tax_id": 982000000561063,
"tax_exemption_code": "string",
"tax_exemption_id": 982000000561067
}
],
"taxes": [
{
"tax_id": 982000000566007,
"tax_amount": 11.85
}
],
"is_inclusive_tax": false,
"is_billable": true,
"reference_number": null,
"description": "Marketing",
"customer_id": 982000000567001,
"currency_id": 982000000567001,
"exchange_rate": 1,
"project_id": 982000000567226,
"mileage_type": "non_mileage",
"vat_treatment": "eu_vat_not_registered",
"tax_treatment": "vat_registered",
"product_type": "goods",
"acquisition_vat_id": " ",
"reverse_charge_vat_id": " ",
"start_reading": " ",
"end_reading": " ",
"distance": " ",
"mileage_unit": " ",
"mileage_rate": " ",
"employee_id": " ",
"vehicle_type": " ",
"can_reclaim_vat_on_mileage": " ",
"fuel_type": " ",
"engine_capacity_range": " ",
"paid_through_account_id": 982000000567250,
"vendor_id": " ",
"custom_fields": []
}
{
"code": 0,
"message": "Expense information has been updated.",
"expense": {
"expense_id": 982000000030049,
"transaction_id": " ",
"transaction_type": "expense",
"gst_no": "22AAAAA0000A1Z5",
"gst_treatment": "business_gst",
"tax_treatment": "vat_registered",
"destination_of_supply": "TN",
"destination_of_supply_state": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"source_of_supply": "AP",
"paid_through_account_name": "Petty Cash",
"vat_reg_no": "string",
"reverse_charge_tax_id": 982000000561063,
"reverse_charge_tax_name": "intra",
"reverse_charge_tax_percentage": 10,
"reverse_charge_tax_amount": 12,
"tax_amount": 11.85,
"is_itemized_expense": false,
"is_pre_gst": "fasle",
"trip_id": "",
"trip_number": "",
"reverse_charge_vat_total": 1.2,
"acquisition_vat_total": 0,
"acquisition_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"reverse_charge_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"taxes": [
{
"tax_id": 982000000566007,
"tax_amount": 11.85
}
],
"expense_item_id": 982000000567220,
"account_id": 982000000561057,
"account_name": "Rent",
"date": "2013-11-18",
"tax_id": 982000000566007,
"tax_name": "SalesTax",
"tax_percentage": 10.5,
"currency_id": 982000000567001,
"currency_code": "USD",
"exchange_rate": 1,
"sub_total": 90,
"total": 100,
"bcy_total": 100,
"amount": 120.5,
"is_inclusive_tax": false,
"reference_number": null,
"description": "Marketing",
"is_billable": true,
"is_personal": false,
"customer_id": 982000000567001,
"customer_name": "Bowman & Co",
"expense_receipt_name": " ",
"expense_receipt_type": " ",
"last_modified_time": " ",
"status": "unbilled",
"invoice_id": " ",
"invoice_number": " ",
"project_id": 982000000567226,
"project_name": " ",
"mileage_rate": " ",
"mileage_type": "non_mileage",
"expense_type": "non-mileage",
"start_reading": " ",
"end_reading": " "
}
}
Get an Expense
Get the details of the Expense.
OAuth Scope : ZohoBooks.expenses.READ
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/expenses/982000000030049?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.com",
"port": null,
"path": "/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "success",
"expense": {
"expense_id": 982000000030049,
"transaction_id": " ",
"transaction_type": "expense",
"gst_no": "22AAAAA0000A1Z5",
"gst_treatment": "business_gst",
"tax_treatment": "vat_registered",
"destination_of_supply": "TN",
"destination_of_supply_state": "TN",
"place_of_supply": "DU",
"hsn_or_sac": 80540,
"source_of_supply": "AP",
"paid_through_account_name": "Petty Cash",
"vat_reg_no": "string",
"reverse_charge_tax_id": 982000000561063,
"reverse_charge_tax_name": "intra",
"reverse_charge_tax_percentage": 10,
"reverse_charge_tax_amount": 12,
"tax_amount": 11.85,
"is_itemized_expense": false,
"is_pre_gst": "fasle",
"trip_id": "",
"trip_number": "",
"reverse_charge_vat_total": 1.2,
"acquisition_vat_total": 0,
"acquisition_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"reverse_charge_vat_summary": [
{
"tax": {
"tax_name": "SalesTax",
"tax_amount": 11.85
}
}
],
"expense_item_id": 982000000567220,
"account_id": 982000000561057,
"account_name": "Rent",
"date": "2013-11-18",
"tax_id": 982000000566007,
"tax_name": "SalesTax",
"tax_percentage": 10.5,
"currency_id": 982000000567001,
"currency_code": "USD",
"exchange_rate": 1,
"sub_total": 90,
"total": 100,
"bcy_total": 100,
"amount": 112.5,
"is_inclusive_tax": false,
"reference_number": null,
"description": "Marketing",
"is_billable": true,
"is_personal": false,
"customer_id": 982000000567001,
"customer_name": "Bowman & Co",
"expense_receipt_name": " ",
"expense_receipt_type": " ",
"last_modified_time": " ",
"status": "unbilled",
"invoice_id": " ",
"invoice_number": " ",
"project_id": 982000000567226,
"project_name": " ",
"mileage_rate": " ",
"mileage_type": "non_mileage",
"expense_type": "non-mileage",
"start_reading": " ",
"end_reading": " ",
"line_item": {
"line_item_id": 10763000000140068,
"account_id": 982000000561057,
"account_name": "Rent",
"description": "Marketing",
"tax_amount": 11.85,
"tax_id": 982000000566007,
"tax_name": "SalesTax",
"tax_type": "tax",
"tax_percentage": 10.5,
"item_total": 100,
"item_order": 1,
"amount": 112.5,
"hsn_or_sac": 80540,
"reverse_charge_tax_id": 982000000561063,
"reverse_charge_tax_name": "intra",
"reverse_charge_tax_percentage": 10,
"reverse_charge_tax_amount": 12
}
}
}
Delete an Expense
Delete an existing expense.
OAuth Scope : ZohoBooks.expenses.DELETE
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("DELETE", "/books/v3/expenses/982000000030049?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.com",
"port": null,
"path": "/books/v3/expenses/982000000030049?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.com/books/v3/expenses/982000000030049?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "The expense has been deleted."
}
List expense History & Comments
Get history and comments of expense.
OAuth Scope : ZohoBooks.expenses.READ
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses/982000000030049/comments?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.com/books/v3/expenses/982000000030049/comments?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.com/books/v3/expenses/982000000030049/comments?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/expenses/982000000030049/comments?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.com",
"port": null,
"path": "/books/v3/expenses/982000000030049/comments?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.com/books/v3/expenses/982000000030049/comments?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "success",
"comments": [
{
"comment_id": 982000000567272,
"expense_id": 982000000030049,
"description": "Marketing",
"commented_by_id": 982000000554041,
"commented_by": "John David",
"date_description": "16 hours ago",
"time": "4.22AM",
"operation_type": "Added",
"transaction_id": " ",
"transaction_type": "expense"
},
{...},
{...}
]
}
Create an employee
Create an employee for an expense.
OAuth Scope : ZohoBooks.expenses.CREATE
Arguments
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/employees?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.com/books/v3/employees?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.com/books/v3/employees?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.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
'content-type': "application/json"
}
conn.request("POST", "/books/v3/employees?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.com",
"port": null,
"path": "/books/v3/employees?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.com/books/v3/employees?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
--header 'content-type: application/json' \
--data '{"field1":"value1","field2":"value2"}'
{
"name": "John David",
"email": "johnsmith@zilliuminc.com"
}
{
"code": 0,
"message": "success",
"employee": {
"employee_id": " ",
"name": "John David",
"email": "johnsmith@zilliuminc.com"
}
}
List employees
List employees with pagination.
OAuth Scope : ZohoBooks.expenses.READ
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/employees?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.com/books/v3/employees?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.com/books/v3/employees?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/employees?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.com",
"port": null,
"path": "/books/v3/employees?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.com/books/v3/employees?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "success",
"employees": [
{
"employee_id": " ",
"name": "John David",
"email": "johnsmith@zilliuminc.com"
},
{...},
{...}
],
"page_context": [
{
"sort_column": "total",
"filter_by": "Status.Billable",
"search_text": "Rent",
"applied_filter": "Status.All",
"page": 1,
"per_page": 100
}
]
}
Get an employee
Get the details of the employee.
OAuth Scope : ZohoBooks.expenses.READ
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/employees/?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.com/books/v3/employees/?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.com/books/v3/employees/?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/employees/?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.com",
"port": null,
"path": "/books/v3/employees/?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.com/books/v3/employees/?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "success",
"employee": {
"employee_id": " ",
"name": "John David",
"email": "johnsmith@zilliuminc.com"
}
}
Delete an employee
Delete an existing employee.
OAuth Scope : ZohoBooks.expenses.DELETE
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/employee/?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.com/books/v3/employee/?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.com/books/v3/employee/?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("DELETE", "/books/v3/employee/?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.com",
"port": null,
"path": "/books/v3/employee/?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.com/books/v3/employee/?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "Employee has been deleted."
}
Add receipt to an expense.
Attach a receipt to an expense.
OAuth Scope : ZohoBooks.expenses.CREATE
Query Parameters
gif
, png
, jpeg
, jpg
, bmp
, pdf
, xls
, xlsx
, doc
and docx
.headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses/982000000030049/receipt?organization_id=10234695"
type: POST
headers: headers_data
connection: <connection_name>
]
info response;
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://www.zohoapis.com/books/v3/expenses/982000000030049/receipt?organization_id=10234695")
.post(null)
.addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
.build();
Response response = client.newCall(request).execute();
const options = {
method: 'POST',
headers: {
Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
}
};
fetch('https://www.zohoapis.com/books/v3/expenses/982000000030049/receipt?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("POST", "/books/v3/expenses/982000000030049/receipt?organization_id=10234695", 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": "/books/v3/expenses/982000000030049/receipt?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 POST \
--url 'https://www.zohoapis.com/books/v3/expenses/982000000030049/receipt?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "The expense receipt has been attached."
}
Get an expense receipt
Returns the receipt attached to the expense.
OAuth Scope : ZohoBooks.expenses.READ
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses/982000000030049/receipt?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.com/books/v3/expenses/982000000030049/receipt?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.com/books/v3/expenses/982000000030049/receipt?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/expenses/982000000030049/receipt?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.com",
"port": null,
"path": "/books/v3/expenses/982000000030049/receipt?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.com/books/v3/expenses/982000000030049/receipt?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "success"
}
Delete a receipt
Delete the receipt attached to the expense.
OAuth Scope : ZohoBooks.expenses.DELETE
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/expenses/982000000030049/receipt?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.com/books/v3/expenses/982000000030049/receipt?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.com/books/v3/expenses/982000000030049/receipt?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.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("DELETE", "/books/v3/expenses/982000000030049/receipt?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.com",
"port": null,
"path": "/books/v3/expenses/982000000030049/receipt?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.com/books/v3/expenses/982000000030049/receipt?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "The attached expense receipt has been deleted."
}