API Docs
/
No Results Found
Introduction

Introduction

Zoho expense service can be accessed via Zoho expense API. It gives you the freedom to expand and build on our programmatic base to suit your needs.

Built using REST principles, it makes application development incredibly easy for you. A wide range of HTTP clients can be used with this API since it follows HTTP rules.

Every resource is exposed as a URL. The URL of each resource can be obtained by accessing the API Root Endpoint.

API Root Endpoint

Click to copy
https://www.zohoapis.com/expense/v1

Organization ID

In Zoho Expense, your business is termed as an organization. If you have multiple business, you need to setup an individual organization for each of them. Each organization is an independent Zoho Expense Organization with its own organization ID, base currency, time zone, language, customers, reports, etc.

The Url parameter organization_id along with the organization ID should be sent in with every API request to identify the organization.

The organization_id can be obtained from the GET /organizations API’s JSON response.

Request Example

Click to copy
$ curl -X GET 'https://www.zohoapis.com/expense/v1/organizations' \ -H 'Authorization: Zoho-oauthtoken 6e80xxxxxxxxxxxxxxxxxxxxxxxx8a80'

Response Example

{ "code": 0, "message": "success", "organizations": [ { "organization_id": "10234695", "name": "Zillum", "contact_name": "John Smith", "email": "johnsmith@zillum.com", "is_default_org": false, "language_code": "en", "fiscal_year_start_month": 0, "account_created_date": "2016-02-18", "time_zone": "PST", "is_org_active": true, "currency_id": "460000000000097", "currency_code": "USD", "currency_symbol": "$", "currency_format": "###,##0.00", "price_precision": 2 }, {...}, {...} ] }

Multiple Data Centers

Zoho Expense is hosted at multiple data centers, and therefore available on different domains.

There are 8 different domains for Zoho Expense' APIs, and you will have to use the one that is applicable to you.

Data Center Domain Base API URI
United States .com https://www.zohoapis.com/expense/
Europe .eu https://www.zohoapis.eu/expense/
India .in https://www.zohoapis.in/expense/
Australia .com.au https://www.zohoapis.com.au/expense/
Japan .jp https://www.zohoapis.jp/expense/
Canada .ca https://www.zohoapis.ca/expense/
China .com.cn https://www.zohoapis.com.cn/expense/
Saudi Arabia .sa https://www.zohoapis.sa/expense/

The APIs on this page are for organizations in Zoho Expense that are hosted on the .com domain. If your organization is on a different domain, then you must replace .com with the appropriate domain for API endpoints on this page before using them.

Note: To know the domain you're accessing Zoho Expense from, visit the Zoho Expense web app and check its URL. If the URL contains expense.zoho.com, then you're accessing it from the .com domain. If the URL contains expense.zoho.in, you're accessing it from the .in domain. Similarly, you could be accessing Zoho Expense from the .eu or .com.au or .jp or .ca domain.


For example, here's how you would modify the domain in an API endpoint for the .eu domain:

API endpoint for the .com domain, as available on this page:

https://www.zohoapis.com/expense/v1/expenses

API endpoint after replacing the .com domain with .eu:

https://www.zohoapis.eu/expense/v1/expenses

API Call Limit

API calls are limited to provide better quality of service and availability to all the users. You can make 100 requests per minute per organisation. The limits on total requests per day are listed below for each plan:

  • Free Plan - 1000 API requests/day
  • Standard Plan- 2000 requests/day
  • Premium Plan- 10000 requests/day
  • Enterprise Plan- 10000 requests/day

An error with HTTP status code 429 will be returned if the number of requests made exceeds the number of requests of a particular plan.

Response Example

{ "code": 45, "message": "The API call for this organization has exceeded the maximum call rate limit of 1000." }

An error with HTTP status code 429 will be returned if the number of requests per minute per organization exceeds 100. Users who access the application via the web interface may encounter the following error.

Response Example

{ "code": 44, "message": "For security reasons your account has been blocked as you have exceeded the maximum number of requests per minute that can originate from one account." }

An error with HTTP status code 429 will be returned if the number of requests per minute per organization exceeds 100. API customers may encounter the following error.

Response Example

{ "code": 44, "message": "For security reasons your organization has been blocked as it have exceeded the maximum number of requests per minute that can originate from an organization." }

Concurrent Rate Limiter

The concurrent rate limiter is the maximum number of API calls that can be simultaneously active for an organization at any given point in time.

The concurrent rate limit varies based on the plan:

  • Free Plan - 5 concurrent calls
  • Paid Plans - 10 concurrent calls (soft limit)

An error with HTTP status code 429 will be returned if the number of concurrent calls exceeds the specified limits.

Response Example

{ "code": 1070, "message": "You have reached the maximum number of in process requests allowed. Kindly try again after some time." }