API Docs
/
No Results Found
Recurring Expenses

Recurring Expenses

Recurring expenses are those expenses that repeat itself after a fixed interval of time.

Possible error codes:
Error CodeMessage
4027Please select a valid date range
5012Recurrence Name already exists
5015Enter a valid expense amount

Attribute

account_id
string
Unique ID of an account
recurrence_name
string
Name of the Recurring Expense. Maximum length [100]
start_date
string
Start date of the recurring expense. Expenses will not be generated for dates prior to the current date. Format [yyyy-mm-dd].
end_date
string
Date on which recurring expense has to expire. Can be left as empty to run forever. Format [yyyy-mm-dd].
is_pre_gst
boolean
🇮🇳 India
only
Applicable for transactions that fall before july 1, 2017
source_of_supply
string
🇮🇳 India
only
Place from where the goods/services are supplied. (If not given, place of contact given for the contact will be taken)
destination_of_supply
string
🇮🇳 India
only
Place where the goods/services are supplied to. (If not given, organisation's home state will be taken)
gst_no
string
🇮🇳 India
only
15 digit GST identification number of the vendor.
gst_treatment
string
🇮🇳 India
only
Choose whether the contact is GST registered/unregistered/consumer/overseas. Allowed values are business_gst , business_none , overseas , consumer .
destination_of_supply_state
string
🇮🇳 India
only
Place to where the goods/services are supplied
hsn_or_sac
string
🇮🇳 India
only
Add HSN/SAC code for your goods/services
vat_treatment
string
🇬🇧 United Kingdom
only
VAT treatment for the expense. VAT treatment denotes the location of the vendor, if the vendor resides in UK then the VAT treatment is 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 EU then his VAT treatment is overseas(For Pre Brexit, this can be split as eu_vat_registered, eu_vat_not_registered and non_eu).
reverse_charge_tax_id
string
🇮🇳 India
only
Enter reverse charge tax ID
reverse_charge_tax_name
string
🇮🇳 India
only
Enter reverse charge tax name
reverse_charge_tax_percentage
double
🇮🇳 India
only
Tax percentage of the reverse charge
reverse_charge_tax_amount
double
🇮🇳 India
only
Tax amount of the reverse charge
is_reverse_charge_applied
boolean
🇮🇳 India
only
Applicable for transactions where you pay reverse charge
acquisition_vat_total
double
Enter the total acquisition vat.
reverse_charge_vat_total
double
🇮🇳 India
only
Enter the total of the reverse charge vat.
acquisition_vat_summary
array
Summary of the VAT Acquistion
Show Sub-Attributes arrow
tax_name
string
Name of the tax
tax_amount
double
Total value of tax applied
reverse_charge_vat_summary
array
Summary of the Reverse Charge
Show Sub-Attributes arrow
tax_name
string
Name of the tax
tax_amount
double
Total value of tax applied
recurrence_frequency
string
Frequency of the recurrance
repeat_every
string
The cycle of recurrance
amount
double
Recurring Expense amount.
total
double
Total expense
sub_total
double
Sub total of the expenses
bcy_total
double
Total in base currency
product_type
string
🇬🇧 United Kingdom
only
Type of the expense. This denotes whether the expense is to be treated as a goods or service purchase. Allowed Values: goods and service.
acquisition_vat_id
string
🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is an EU - goods expense and acquisition VAT needs to be reported.
reverse_charge_vat_id
string
🇮🇳 India
, 🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is a non UK - service expense and reverse charge VAT needs to be reported.
tax_id
string
Unique ID for the tax
tax_name
string
Name of the tax
tax_percentage
double
Percentage of tax levied
created_time
string
Time expense was created
last_modified_time
string
Time the expense was last modified
is_inclusive_tax
boolean
To check if the total is inclusive of tax
is_billable
boolean
To check if the expense is billable
customer_id
string
Search expenses by customer id.
currency_id
string
Unique ID of the currency used
exchange_rate
double
Foreign exchange rate
project_id
string
Unique ID of the tax applied
project_name
string
Name of the project being billed
custom_fields
array
Custom fields for a recurring-expense.
Show Sub-Attributes arrow
customfield_id
long
value
string
Value of the Custom Field
line_item
object
Show Sub-Attributes arrow
line_item_id
string
Unique ID of Item listed
account_id
string
Unique ID of an account
account_name
string
For which Account the Expense is raised. Maximum length [100]
description
string
Search recurring expenses by description. Maximum length [100]
tax_amount
double
Total value of tax applied
tax_id
string
Unique ID for the tax
tax_name
string
Name of the tax
tax_type
string
Type of tax applied
tax_percentage
double
Percentage of tax levied
item_total
string
Total value of items
item_order
string
Order of items
hsn_or_sac
string
🇮🇳 India
only
Add HSN/SAC code for your goods/services
reverse_charge_tax_id
string
🇮🇳 India
only
Enter reverse charge tax ID
reverse_charge_tax_name
string
🇮🇳 India
only
Enter reverse charge tax name
reverse_charge_tax_percentage
double
🇮🇳 India
only
Tax percentage of the reverse charge
reverse_charge_tax_amount
double
🇮🇳 India
only
Tax amount of the reverse charge

Example

{ "account_id": 982000000561057, "recurrence_name": "Monthly Rental", "start_date": "2016-11-19T00:00:00.000Z", "end_date": " ", "is_pre_gst": false, "source_of_supply": "AP", "destination_of_supply": "TN", "gst_no": "22AAAAA0000A1Z5", "gst_treatment": "business_gst", "destination_of_supply_state": "AP", "hsn_or_sac": 80540, "vat_treatment": "eu_vat_not_registered", "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10, "is_reverse_charge_applied": false, "acquisition_vat_total": 0, "reverse_charge_vat_total": 10, "acquisition_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "reverse_charge_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "recurrence_frequency": "months", "repeat_every": 1, "amount": 112.5, "total": 128.25, "sub_total": 90, "bcy_total": 100, "product_type": "goods", "acquisition_vat_id": " ", "reverse_charge_vat_id": " ", "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_percentage": 10.5, "created_time": "2013-11-18T02:17:40-0800", "last_modified_time": "2013-12-18T02:17:40-0800", "is_inclusive_tax": false, "is_billable": true, "customer_id": 982000000567001, "currency_id": 982000000567001, "exchange_rate": 1, "project_id": " ", "project_name": " ", "custom_fields": [ { "customfield_id": "46000000012845", "value": "Normal" } ], "line_item": { "line_item_id": 10763000000140068, "account_id": 982000000561057, "account_name": "Rent", "description": " ", "tax_amount": 11.85, "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_type": "tax", "tax_percentage": 10.5, "item_total": 100, "item_order": 1, "hsn_or_sac": 80540, "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10 } }

Create a recurring expense

Create a new recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.CREATE

Arguments

account_id
string
(Required)
Unique ID of an account
recurrence_name
string
(Required)
Name of the Recurring Expense. Maximum length [100]
start_date
string
(Required)
Start date of the recurring expense. Expenses will not be generated for dates prior to the current date. Format [yyyy-mm-dd].
gst_no
string
🇮🇳 India
only
15 digit GST identification number of the vendor.
source_of_supply
string
🇮🇳 India
only
Place from where the goods/services are supplied. (If not given, place of contact given for the contact will be taken)
destination_of_supply
string
🇮🇳 India
only
Place where the goods/services are supplied to. (If not given, organisation's home state will be taken)
reverse_charge_tax_id
string
🇮🇳 India
only
Enter reverse charge tax ID
custom_fields
array
Custom fields for a recurring-expense.
Show Sub-Attributes arrow
customfield_id
long
value
string
Value of the Custom Field
line_items
array
Show Sub-Attributes arrow
line_item_id
string
Unique ID of Item listed
account_id
string
(Required)
Unique ID of an account
description
string
Search recurring expenses by description. Maximum length [100]
amount
double
(Required)
Recurring Expense amount.
tax_id
string
Unique ID for the tax
item_order
string
Order of items
product_type
string
🇬🇧 United Kingdom
only
Type of the expense. This denotes whether the expense is to be treated as a goods or service purchase. Allowed Values: goods and service.
acquisition_vat_id
string
🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is an EU - goods expense and acquisition VAT needs to be reported.
reverse_charge_vat_id
string
🇮🇳 India
, 🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is a non UK - service expense and reverse charge VAT needs to be reported.
reverse_charge_tax_id
string
🇮🇳 India
only
Enter reverse charge tax ID
tax_exemption_code
string
🇮🇳 India
only
Enter the code for tax exemption
tax_exemption_id
string
🇮🇳 India
only
Enter ID of the tax exemption
end_date
string
Date on which recurring expense has to expire. Can be left as empty to run forever. Format [yyyy-mm-dd].
recurrence_frequency
string
(Required)
Frequency of the recurrance
repeat_every
string
(Required)
The cycle of recurrance
amount
double
(Required)
Recurring Expense amount.
vat_treatment
string
🇬🇧 United Kingdom
only
VAT treatment for the expense. VAT treatment denotes the location of the vendor, if the vendor resides in UK then the VAT treatment is 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 EU then his VAT treatment is overseas(For Pre Brexit, this can be split as eu_vat_registered, eu_vat_not_registered and non_eu).
product_type
string
🇬🇧 United Kingdom
only
Type of the expense. This denotes whether the expense is to be treated as a goods or service purchase. Allowed Values: goods and service.
acquisition_vat_id
string
🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is an EU - goods expense and acquisition VAT needs to be reported.
reverse_charge_vat_id
string
🇮🇳 India
, 🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is a non UK - service expense and reverse charge VAT needs to be reported.
tax_id
string
Unique ID for the tax
is_inclusive_tax
boolean
To check if the total is inclusive of tax
is_billable
boolean
To check if the expense is billable
customer_id
string
Search expenses by customer id.
project_id
string
Unique ID of the tax applied
currency_id
string
Unique ID of the currency used
exchange_rate
double
Foreign exchange rate

Request Example

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

Body Parameters

Click to copy
{ "account_id": 982000000561057, "recurrence_name": "Monthly Rental", "start_date": "2016-11-19T00:00:00.000Z", "gst_no": "22AAAAA0000A1Z5", "source_of_supply": "AP", "destination_of_supply": "TN", "reverse_charge_tax_id": 982000000567254, "custom_fields": [ { "customfield_id": "46000000012845", "value": "Normal" } ], "line_items": [ { "line_item_id": 10763000000140068, "account_id": 982000000561057, "description": " ", "amount": 112.5, "tax_id": 982000000566007, "item_order": 1, "product_type": "goods", "acquisition_vat_id": " ", "reverse_charge_vat_id": " ", "reverse_charge_tax_id": 982000000567254, "tax_exemption_code": "string", "tax_exemption_id": 982000000567267 } ], "end_date": " ", "recurrence_frequency": "months", "repeat_every": 1, "amount": 112.5, "vat_treatment": "eu_vat_not_registered", "product_type": "goods", "acquisition_vat_id": " ", "reverse_charge_vat_id": " ", "tax_id": 982000000566007, "is_inclusive_tax": false, "is_billable": true, "customer_id": 982000000567001, "project_id": " ", "currency_id": 982000000567001, "exchange_rate": 1 }

Response Example

{ "code": 0, "message": "The recurring expense has been created", "recurring_expense": { "account_id": 982000000561057, "recurrence_name": "Monthly Rental", "start_date": "2016-11-19T00:00:00.000Z", "end_date": " ", "is_pre_gst": false, "source_of_supply": "AP", "destination_of_supply": "TN", "gst_no": "22AAAAA0000A1Z5", "gst_treatment": "business_gst", "destination_of_supply_state": "AP", "hsn_or_sac": 80540, "vat_treatment": "eu_vat_not_registered", "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10, "is_reverse_charge_applied": false, "acquisition_vat_total": 0, "reverse_charge_vat_total": 10, "acquisition_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "reverse_charge_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "recurrence_frequency": "months", "repeat_every": 1, "amount": 112.5, "total": 128.25, "sub_total": 90, "bcy_total": 100, "product_type": "goods", "acquisition_vat_id": " ", "reverse_charge_vat_id": " ", "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_percentage": 10.5, "created_time": "2013-11-18T02:17:40-0800", "last_modified_time": "2013-12-18T02:17:40-0800", "is_inclusive_tax": false, "is_billable": true, "customer_id": 982000000567001, "currency_id": 982000000567001, "exchange_rate": 1, "project_id": " ", "project_name": " ", "custom_fields": [ { "customfield_id": "46000000012845", "value": "Normal" } ], "line_item": { "line_item_id": 10763000000140068, "account_id": 982000000561057, "account_name": "Rent", "description": " ", "tax_amount": 11.85, "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_type": "tax", "tax_percentage": 10.5, "item_total": 100, "item_order": 1, "hsn_or_sac": 80540, "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10 } } }

List recurring expenses

List all the Expenses with pagination.
OAuth Scope : ZohoSubscriptions.expenses.READ

Query Parameters

recurrence_name
Search recurring expenses by recurring expense name. Variants: recurrence_name_startswith and recurrence_name_contains. Maximum length [100]
last_created_date
Search recurring expenses by date on when last expense was generated. Variants: last_created_date_start, last_created_date_end, last_created_date_before and last_created_date_after . Format [yyyy-mm-dd]
next_expense_date
Search recurring expenses by date on which next expense will be generated. Variants: next_expense_date_start, next_expense_date_end, next_expense_date_before and next_expense_date_after . Format [yyyy-mm-dd]
status
Search expenses by expense status. Allowed Values active, stopped and expired
account_id
Unique ID of an account
account_name
Search expenses by expense account name. Variants account_name_startswith and account_name_contains . Maximum length [100]
amount
Search expenses by amount. Variants: amount_less_than, amount_less_equals, amount_greater_than and amount_greater_than
customer_name
Search expenses by customer name. Variants: customer_name_startswith and customer_name_contains . Maximum length [100]
customer_id
Search expenses by customer id.
paid_through_account_id
Search expenses by paid through account id.
filter_by
Filter expenses by expense status. Allowed Values Status.All, Status.Active, Status.Expired and Status.Stopped
search_text
Search expenses by account name or description or customer name or vendor name. Maximum length [100] .
sort_column
Sort expenses.Allowed Values next_expense_date, account_name, total, last_created_date, recurrence_name, customer_name and created_time

Request Example

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

Response Example

{ "code": 0, "message": "success", "recurring_expenses": [ { "recurring_expense_id": 982000000567240, "recurrence_name": "Monthly Rental", "recurrence_frequency": "months", "repeat_every": 1, "last_created_date": "2013-11-18T00:00:00.000Z", "next_expense_date": "2013-12-18T00:00:00.000Z", "account_name": "Rent", "description": " ", "currency_id": 982000000567001, "currency_code": "USD", "total": 128.25, "is_billable": true, "customer_name": "Bowman & Co", "status": "active", "custom_fields": [ { "customfield_id": "46000000012845", "value": "Normal" } ], "created_time": "2013-11-18T02:17:40-0800", "last_modified_time": "2013-12-18T02:17:40-0800" }, {...}, {...} ] }

Update a recurring expense

Update an existing recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.UPDATE

Arguments

account_id
string
(Required)
Unique ID of an account
recurrence_name
string
(Required)
Name of the Recurring Expense. Maximum length [100]
start_date
string
(Required)
Start date of the recurring expense. Expenses will not be generated for dates prior to the current date. Format [yyyy-mm-dd].
gst_no
string
🇮🇳 India
only
15 digit GST identification number of the vendor.
source_of_supply
string
🇮🇳 India
only
Place from where the goods/services are supplied. (If not given, place of contact given for the contact will be taken)
destination_of_supply
string
🇮🇳 India
only
Place where the goods/services are supplied to. (If not given, organisation's home state will be taken)
reverse_charge_tax_id
string
🇮🇳 India
only
Enter reverse charge tax ID
custom_fields
array
Custom fields for a recurring-expense.
Show Sub-Attributes arrow
customfield_id
long
value
string
Value of the Custom Field
line_items
array
Show Sub-Attributes arrow
line_item_id
string
Unique ID of Item listed
account_id
string
(Required)
Unique ID of an account
description
string
Search recurring expenses by description. Maximum length [100]
amount
double
(Required)
Recurring Expense amount.
tax_id
string
Unique ID for the tax
item_order
string
Order of items
product_type
string
🇬🇧 United Kingdom
only
Type of the expense. This denotes whether the expense is to be treated as a goods or service purchase. Allowed Values: goods and service.
acquisition_vat_id
string
🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is an EU - goods expense and acquisition VAT needs to be reported.
reverse_charge_vat_id
string
🇮🇳 India
, 🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is a non UK - service expense and reverse charge VAT needs to be reported.
reverse_charge_tax_id
string
🇮🇳 India
only
Enter reverse charge tax ID
tax_exemption_code
string
🇮🇳 India
only
Enter the code for tax exemption
tax_exemption_id
string
🇮🇳 India
only
Enter ID of the tax exemption
end_date
string
Date on which recurring expense has to expire. Can be left as empty to run forever. Format [yyyy-mm-dd].
recurrence_frequency
string
(Required)
Frequency of the recurrance
repeat_every
string
(Required)
The cycle of recurrance
amount
double
(Required)
Recurring Expense amount.
vat_treatment
string
🇬🇧 United Kingdom
only
VAT treatment for the expense. VAT treatment denotes the location of the vendor, if the vendor resides in UK then the VAT treatment is 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 EU then his VAT treatment is overseas(For Pre Brexit, this can be split as eu_vat_registered, eu_vat_not_registered and non_eu).
product_type
string
🇬🇧 United Kingdom
only
Type of the expense. This denotes whether the expense is to be treated as a goods or service purchase. Allowed Values: goods and service.
acquisition_vat_id
string
🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is an EU - goods expense and acquisition VAT needs to be reported.
reverse_charge_vat_id
string
🇮🇳 India
, 🇬🇧 United Kingdom
only
This is the ID of the tax applied in case this is a non UK - service expense and reverse charge VAT needs to be reported.
tax_id
string
Unique ID for the tax
is_inclusive_tax
boolean
To check if the total is inclusive of tax
is_billable
boolean
To check if the expense is billable
customer_id
string
Search expenses by customer id.
project_id
string
Unique ID of the tax applied
currency_id
string
Unique ID of the currency used
exchange_rate
double
Foreign exchange rate

Request Example

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

Body Parameters

Click to copy
{ "account_id": 982000000561057, "recurrence_name": "Monthly Rental", "start_date": "2016-11-19T00:00:00.000Z", "gst_no": "22AAAAA0000A1Z5", "source_of_supply": "AP", "destination_of_supply": "TN", "reverse_charge_tax_id": 982000000567254, "custom_fields": [ { "customfield_id": "46000000012845", "value": "Normal" } ], "line_items": [ { "line_item_id": 10763000000140068, "account_id": 982000000561057, "description": " ", "amount": 112.5, "tax_id": 982000000566007, "item_order": 1, "product_type": "goods", "acquisition_vat_id": " ", "reverse_charge_vat_id": " ", "reverse_charge_tax_id": 982000000567254, "tax_exemption_code": "string", "tax_exemption_id": 982000000567267 } ], "end_date": " ", "recurrence_frequency": "months", "repeat_every": 1, "amount": 112.5, "vat_treatment": "eu_vat_not_registered", "product_type": "goods", "acquisition_vat_id": " ", "reverse_charge_vat_id": " ", "tax_id": 982000000566007, "is_inclusive_tax": false, "is_billable": true, "customer_id": 982000000567001, "project_id": " ", "currency_id": 982000000567001, "exchange_rate": 1 }

Response Example

{ "code": 0, "message": "Recurring expense information has been updated", "recurring_expense": { "account_id": 982000000561057, "recurrence_name": "Monthly Rental", "start_date": "2016-11-19T00:00:00.000Z", "end_date": " ", "is_pre_gst": false, "source_of_supply": "AP", "destination_of_supply": "TN", "gst_no": "22AAAAA0000A1Z5", "gst_treatment": "business_gst", "destination_of_supply_state": "AP", "hsn_or_sac": 80540, "vat_treatment": "eu_vat_not_registered", "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10, "is_reverse_charge_applied": false, "acquisition_vat_total": 0, "reverse_charge_vat_total": 10, "acquisition_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "reverse_charge_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "recurrence_frequency": "months", "repeat_every": 1, "amount": 120.5, "total": 128.25, "sub_total": 90, "bcy_total": 100, "product_type": "goods", "acquisition_vat_id": " ", "reverse_charge_vat_id": " ", "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_percentage": 10.5, "created_time": "2013-11-18T02:17:40-0800", "last_modified_time": "2013-12-18T02:17:40-0800", "is_inclusive_tax": false, "is_billable": true, "customer_id": 982000000567001, "currency_id": 982000000567001, "exchange_rate": 1, "project_id": " ", "project_name": " ", "custom_fields": [ { "customfield_id": "46000000012845", "value": "Normal" } ], "line_item": { "line_item_id": 10763000000140068, "account_id": 982000000561057, "account_name": "Rent", "description": " ", "tax_amount": 11.85, "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_type": "tax", "tax_percentage": 10.5, "item_total": 100, "item_order": 1, "hsn_or_sac": 80540, "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10 } } }

Retrieve a recurring expense

Fetch the details of the recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.READ

Request Example

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

Response Example

{ "code": 0, "message": "success", "recurring_expense": { "recurring_expense_id": 982000000567240, "recurrence_name": "Monthly Rental", "start_date": "2016-11-19T00:00:00.000Z", "end_date": " ", "is_pre_gst": false, "source_of_supply": "AP", "destination_of_supply": "TN", "gst_no": "22AAAAA0000A1Z5", "gst_treatment": "business_gst", "destination_of_supply_state": "AP", "hsn_or_sac": 80540, "vat_treatment": "eu_vat_not_registered", "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10, "is_reverse_charge_applied": false, "acquisition_vat_total": 0, "reverse_charge_vat_total": 10, "acquisition_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "reverse_charge_vat_summary": [ { "tax_name": "SalesTax", "tax_amount": 11.85 } ], "recurrence_frequency": "months", "repeat_every": 1, "last_created_date": "2013-11-18T00:00:00.000Z", "next_expense_date": "2013-12-18T00:00:00.000Z", "account_id": 982000000561057, "account_name": "Rent", "currency_id": 982000000567001, "currency_code": "USD", "exchange_rate": 1, "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_percentage": 10.5, "tax_amount": 11.85, "sub_total": 90, "total": 128.25, "bcy_total": 100, "amount": 112.5, "description": " ", "is_inclusive_tax": false, "is_billable": true, "customer_id": 982000000567001, "customer_name": "Bowman & Co", "status": "active", "created_time": "2013-11-18T02:17:40-0800", "last_modified_time": "2013-12-18T02:17:40-0800", "project_id": " ", "project_name": " ", "custom_fields": [ { "customfield_id": "46000000012845", "value": "Normal" } ], "line_item": { "line_item_id": 10763000000140068, "account_id": 982000000561057, "account_name": "Rent", "description": " ", "tax_amount": 11.85, "tax_id": 982000000566007, "tax_name": "SalesTax", "tax_type": "tax", "tax_percentage": 10.5, "item_total": 100, "item_order": 1, "hsn_or_sac": 80540, "reverse_charge_tax_id": 982000000567254, "reverse_charge_tax_name": "inter", "reverse_charge_tax_percentage": 10, "reverse_charge_tax_amount": 10 } } }

Delete a recurring expense

Deleting an existing recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.DELETE

Request Example

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

Response Example

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

Stop a recurring expense

Stop an active recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.CREATE

Request Example

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

Response Example

{ "code": 0, "message": "The recurring expense has been stopped." }

Resume a recurring Expense

Resume a stopped recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.CREATE

Request Example

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

Response Example

{ "code": 0, "message": "The recurring expense has been activated." }

List child expenses created

List child expenses created from recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.READ

Query Parameters

sort_column
Sort expenses.Allowed Values next_expense_date, account_name, total, last_created_date, recurrence_name, customer_name and created_time

Request Example

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

Response Example

{ "code": 0, "message": "success", "expensehistory": [ { "expense_id": 982000000567250, "date": "2013-11-18", "account_name": "Rent", "customer_name": "Bowman & Co", "total": 128.25, "status": "active", "vendor_name": " ", "paid_through_account_name": "Undeposited Funds" }, {...}, {...} ] }

List recurring expense history

Get history and comments of a recurring expense.
OAuth Scope : ZohoSubscriptions.expenses.READ

Request Example

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

Response Example

{ "code": 0, "message": "success", "comments": [ { "comment_id": 982000000567272, "recurring_expense_id": 982000000567240, "description": " ", "commented_by_id": 982000000554041, "commented_by": "John David", "date": "2013-11-18", "time": "2.41 AM", "operation_type": "Added", "transaction_id": " ", "transaction_type": "expense" }, {...}, {...} ] }