Zoho Expense
Zoho Expense is an all-in-one travel and expense management platform that automates the expense lifecycle — receipt capture and auto-categorization, multi-level approvals, corporate card reconciliation, and reimbursement. It gives real-time visibility into employee spend, enforces policy compliance, and integrates with ERP, payroll, and accounting systems to streamline expense reporting.

Power end-to-end data operations for your Zoho Expense API with Nexla. Our bi-directional Zoho Expense connector is purpose-built for Zoho Expense, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Zoho Expense or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Zoho Expense workflows fast, secure, and fully governed.
Features
Type: API
- Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
- Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
- API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
- Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Prerequisites
Zoho Expense uses OAuth 2.0 for API authentication. Before creating a credential in Nexla, you must register an application in the Zoho API Console to obtain a Client ID and Client Secret. These credentials, combined with your Organization ID and the appropriate API base URL for your data center region, are required to complete the Nexla credential setup.
Register an Application in the Zoho API Console
-
Sign in to the Zoho API Console using your Zoho account.
-
Click GET STARTED (or Add Client) to begin registering a new OAuth application.
-
Select Server-based Applications as the client type, since Nexla operates as a server-side integration.
-
Fill in the required application details:
- Client Name: Enter a descriptive name for the integration (e.g.,
Nexla Zoho Expense Integration). - Homepage URL: Enter your organization's homepage URL (e.g.,
https://nexla.io). - Authorized Redirect URI: Enter
https://nexla.io/oauth/callback(or the redirect URI provided in the Nexla credential setup screen).
- Client Name: Enter a descriptive name for the integration (e.g.,
-
Click Create to register the application.
-
After successful registration, your Client ID and Client Secret will be displayed in the Client Secret tab of your application in the Zoho API Console. Copy and store these values securely—the Client Secret cannot be retrieved again after you leave the page.
Keep your Client ID and Client Secret confidential. Do not share these credentials or store them in publicly accessible locations.
Identify Your Organization ID
The Zoho Expense Organization ID is required to scope API requests to the correct organization. You can retrieve it using one of the following methods:
- Via the Zoho Expense API: Once OAuth credentials are configured, call the
/organizationsendpoint (GEThttps://expense.zoho.com/api/v1/organizations) to retrieve a list of organizations associated with your account. Theorganization_idfield in the response contains the value needed. - Via the Zoho Expense Admin Console: Sign in to your Zoho Expense account as an administrator, navigate to Settings > Organization Profile, and locate the Organization ID displayed on the page.
Determine Your API Base URL
Zoho Expense operates across multiple data center regions. Select the base URL that corresponds to the region where your Zoho account is hosted:
| Region | Base URL |
|---|---|
| United States | https://expense.zoho.com/api/v1 |
| Europe | https://expense.zoho.eu/api/v1 |
| India | https://expense.zoho.in/api/v1 |
| Australia | https://expense.zoho.com.au/api/v1 |
| Japan | https://expense.zoho.jp/api/v1 |
Additional information about Zoho OAuth setup and scopes is available in the Zoho OAuth 2.0 documentation and the Zoho Expense API authentication guide.
Authenticate
Credentials required
3-legged OAuth2 flow for delegated user access to Zoho Expense
| Field | Required | Secret | Description |
|---|---|---|---|
| Client ID | Yes | No | OAuth client ID from Zoho API Console |
| Client Secret | Yes | Yes | OAuth client secret from Zoho API Console |
| OAuth State | Yes | No | Security nonce for OAuth flow |
| API Base URL | Yes | No | Zoho Expense API base URL for your data center region. Allowed values: https://expense.zoho.com/api/v1; https://expense.zoho.eu/api/v1; https://expense.zoho.in/api/v1; https://expense.zoho.com.au/api/v1; https://expense.zoho.jp/api/v1 |
| Organization ID | Yes | No | Zoho Expense Organization ID (obtain from GET /organizations or admin console) |
Create a credential in Nexla
-
To create a new Zoho Expense credential, after selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
-
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Zoho Expense authentication uses a 3-legged OAuth 2.0 flow. Nexla will use the Client ID and Client Secret you registered in the Zoho API Console to obtain an access token on behalf of your Zoho user account. The access token is valid for one hour and is automatically refreshed by Nexla using the stored refresh token.
-
Enter the Client ID obtained from the Zoho API Console in the Client ID field. This value identifies your registered application to Zoho's authorization server.
-
Enter the Client Secret obtained from the Zoho API Console in the Client Secret field. This secret is used to authorize the OAuth token exchange and should be treated as a password.
-
Select the API Base URL that corresponds to your Zoho account's data center region from the API Base URL pulldown menu. The default value is
https://expense.zoho.com/api/v1(United States). Select the appropriate regional URL if your Zoho account is hosted in Europe, India, Australia, or Japan.Selecting the wrong base URL will result in authentication failures or empty API responses. Refer to the Zoho Expense API documentation to confirm the correct data center URL for your account.
-
Enter your Zoho Expense Organization ID in the Organization ID field. This value scopes all API requests to the correct organization within your Zoho Expense account. See the Prerequisites section above for instructions on how to obtain your Organization ID.
-
Click the Authorize button (or equivalent OAuth redirect button) to initiate the OAuth 2.0 authorization flow. You will be redirected to Zoho's login page to sign in and grant Nexla permission to access your Zoho Expense account. After granting access, you will be redirected back to Nexla and the access and refresh tokens will be automatically populated.
The OAuth flow requires you to sign in with the Zoho account that owns or has access to the Zoho Expense organization you want to connect. Ensure that the account used has the appropriate permissions to access the expense data you intend to integrate.
-
Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
Use as a data source
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Zoho Expense connector tile, then select the credential that will be used to connect to the Zoho Expense instance, and click Next; or, create a new Zoho Expense credential for use in this flow.
Endpoint templates
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Zoho Expense endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Manual configuration
Zoho Expense data sources can also be manually configured to ingest data from any valid Zoho Expense API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
The base URL format for Zoho Expense endpoints is https://expense.zoho.com/api/v1/{'{endpoint_path}'} (substitute the base URL for your data center region—see Authenticate above for the full list). For example: list expense categories at https://expense.zoho.com/api/v1/expensecategories, list currencies at https://expense.zoho.com/api/v1/settings/currencies, and list taxes at https://expense.zoho.com/api/v1/settings/taxes. Common response data paths include $.expenseCategories[*], $.currencies[*], $.taxes[*], and $.organizations[*]; response status metadata (code, message) is returned alongside these arrays and can be captured via the Path to Metadata in Response field. You do not need to include the X-com-zoho-expense-organizationid or Authorization headers—these are automatically handled by Nexla based on your Zoho Expense credential configuration.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Zoho Expense data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Use as a destination
Click the + icon on the Nexset that will be sent to the Zoho Expense destination, and select the Send to Destination option from the menu. Select the Zoho Expense connector from the list of available destination connectors, then select the credential that will be used to connect to the Zoho Expense organization, and click Next; or, create a new Zoho Expense credential for use in this flow.
Endpoint templates
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Zoho Expense endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Manual configuration
Zoho Expense destinations can also be manually configured to send data to any valid Zoho Expense API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Zoho Expense write operations use POST (create), PUT (update), or DELETE (remove), and the API requires data in JSON format for all write operations. For update or delete operations, include the ID of the object to be targeted at the end of the URL—for example, create an expense category at https://expense.zoho.com/api/v1/expensecategories, update a specific expense category at https://expense.zoho.com/api/v1/expensecategories/{'{category_id}'}, and create a tax at https://expense.zoho.com/api/v1/settings/taxes (substitute the base URL for your data center region—see Authenticate above for the full list). You do not need to include the X-com-zoho-expense-organizationid or Authorization headers—these are automatically handled by Nexla based on your Zoho Expense credential configuration.
Save & activate
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Zoho Expense endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Zoho Expense until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.