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": " ",
"location_id": "460000000038080",
"location_name": "string",
"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,
"location_id": "460000000038080",
"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,
"location_id": "460000000038080"
}
],
"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": "982000000030040",
"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": " ",
"location_id": "460000000038080",
"location_name": "string",
"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
Query Parameters
Headers
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,
"location_id": "460000000038080"
}
],
"location_id": "460000000038080",
"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": "982000000030040",
"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": " ",
"location_id": "460000000038080",
"location_name": "string",
"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",
"location_id": "460000000038080",
"location_name": "string",
"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
Path Parameters
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,
"location_id": "460000000038080"
}
],
"location_id": "460000000038080",
"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": "982000000030040",
"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": " ",
"location_id": "460000000038080",
"location_name": "string",
"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
Path Parameters
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?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": " ",
"location_id": "460000000038080",
"location_name": "string",
"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,
"location_id": "460000000038080",
"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
Path Parameters
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?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
Path Parameters
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/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'
Create an employee
Create an employee for an expense.
OAuth Scope : ZohoBooks.expenses.CREATE
Arguments
Query Parameters
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": "982000000030040",
"name": "John David",
"email": "johnsmith@zilliuminc.com"
}
}
List employees
List employees with pagination.
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/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": "982000000030040",
"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
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/employees/982000000030040?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/982000000030040?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/982000000030040?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/982000000030040?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/982000000030040?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/982000000030040?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
{
"code": 0,
"message": "success",
"employee": {
"employee_id": "982000000030040",
"name": "John David",
"email": "johnsmith@zilliuminc.com"
}
}
Delete an employee
Delete an existing employee.
OAuth Scope : ZohoBooks.expenses.DELETE
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/employee/982000000030040?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/982000000030040?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/982000000030040?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/982000000030040?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/982000000030040?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/982000000030040?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
Path Parameters
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
Path Parameters
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
Path Parameters
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: 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."
}
Add attachment to an expense
Attach one or multiple files to an expense. This endpoint allows you to attach various types of documents to support your expense records. Returns document details for the uploaded attachments.
OAuth Scope : ZohoBooks.expenses.CREATE
Arguments
gif
, png
, jpeg
, jpg
, bmp
, pdf
, xls
, xlsx
, doc
, docx
, txt
and csv
Path Parameters
Query Parameters
parameters_data = Map();
parameters_data.put("field1", "value1")
parameters_data.put("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/attachment?organization_id=10234695"
type: POST
headers: headers_data
parameters: parameters_data
connection: <connection_name>
];
info response;
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001");
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n");
Request request = new Request.Builder()
.url("https://www.zohoapis.com/books/v3/expenses/982000000030049/attachment?organization_id=10234695")
.post(body)
.addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
.addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001")
.build();
Response response = client.newCall(request).execute();
const form = new FormData();
form.append("field1", "value1");
form.append("field2", "value2");
const options = {
method: 'POST',
headers: {
Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
'content-type': 'multipart/form-data; boundary=---011000010111000001101001'
}
};
options.body = form;
fetch('https://www.zohoapis.com/books/v3/expenses/982000000030049/attachment?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 = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"
headers = {
'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
'content-type': "multipart/form-data; boundary=---011000010111000001101001"
}
conn.request("POST", "/books/v3/expenses/982000000030049/attachment?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/982000000030049/attachment?organization_id=10234695",
"headers": {
"Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
"content-type": "multipart/form-data; boundary=---011000010111000001101001"
}
};
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("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n");
req.end();
curl --request POST \
--url 'https://www.zohoapis.com/books/v3/expenses/982000000030049/attachment?organization_id=10234695' \
--header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
--header 'content-type: multipart/form-data' \
--form field1=value1 \
--form field2=value2
{
"attachment": "@/attachment.pdf",
"totalFiles": 1,
"document_ids": []
}
{ "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" }, {...}, {...} ] }