Skip to main content

Zoho Expense Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a Zoho Expense location.
zoho_expense_api.png

Zoho Expense

Create a Zoho Expense Destination

  1. 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.

  2. 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.

  3. In Nexla, Zoho Expense destinations can be created using pre-built endpoint templates, which expedite destination setup for common Zoho Expense endpoints. Each template is designed specifically for the corresponding Zoho Expense endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Zoho Expense destinations can also be configured manually, allowing you to send data to Zoho Expense endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Zoho Expense endpoints. Each template is designed specifically for the corresponding Zoho Expense endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, 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.

    Create Expense Category

    Creates a new expense category in your Zoho Expense organization. Use this endpoint to add new spend categories—such as Travel, Meals, or Office Supplies—that employees can assign to their expense submissions.

    • This endpoint does not require additional URL parameters. The new category details (name, account code, and other properties) are transmitted as JSON in the request body, automatically populated from the Nexset data being sent.
    • Ensure your Nexset data includes the required fields for a Zoho Expense category. At minimum, the category name must be included in the data. Refer to the Zoho Expense Expense Categories API documentation for the complete list of required and optional fields.
    • Duplicate category names within the same organization may be rejected by the Zoho Expense API. Verify that the category name does not already exist before creating a new one.

    The OAuth scope ZohoExpense.expensecategory.CREATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Update Expense Category

    Updates the details of an existing expense category in your Zoho Expense organization. Use this endpoint to modify category properties such as the name, associated account code, or description.

    • Enter the unique identifier of the expense category to update in the Expense Category ID field. This ID is required to target the correct category for the update operation. Category IDs can be retrieved using the List Expense Categories or Get Expense Category source templates.
    • The updated category details are transmitted as JSON in the request body, automatically populated from the Nexset data being sent. Include only the fields you want to update; fields not included in the payload will retain their current values.

    The OAuth scope ZohoExpense.expensecategory.UPDATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Delete Expense Category

    Deletes an expense category from your Zoho Expense organization by its unique ID. Use this endpoint to permanently remove expense categories that are no longer needed.

    • Enter the unique identifier of the expense category to delete in the Expense Category ID field. This operation is permanent and cannot be undone—verify the correct Category ID before proceeding. Category IDs can be retrieved using the List Expense Categories or Get Expense Category source templates.
    • Categories that are currently in use by existing expense reports may not be deletable. Consider using the Disable Expense Category endpoint to deactivate a category without permanently removing it.

    :::warning Important Deleting an expense category is a permanent action. Ensure the category is no longer needed and is not referenced by active expense reports before proceeding. :::

    The OAuth scope ZohoExpense.expensecategory.DELETE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Enable Expense Category

    Re-enables a previously disabled (inactive) expense category, making it available for use in new expense submissions. Use this endpoint when a category that was hidden needs to be reinstated for employees.

    • Enter the unique identifier of the expense category to enable in the Expense Category ID field. Only categories that are currently in an inactive state can be enabled with this endpoint. Category IDs can be retrieved using the List Expense Categories source template with the Show Inactive parameter set to true.
    • Once enabled, the category will immediately appear in the expense category list for employees submitting new expenses within the organization.

    The OAuth scope ZohoExpense.expensecategory.UPDATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Disable Expense Category

    Disables (hides) an active expense category, preventing it from being selected in new expense submissions without permanently deleting it. Use this endpoint to deactivate categories that are no longer in use while preserving historical data integrity.

    • Enter the unique identifier of the expense category to disable in the Expense Category ID field. Only active categories can be disabled with this endpoint. Category IDs can be retrieved using the List Expense Categories source template.
    • Disabled categories remain in the system and can be re-enabled at any time using the Enable Expense Category endpoint. Existing expense reports that reference the category are unaffected.

    The OAuth scope ZohoExpense.expensecategory.UPDATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Create Currency

    Adds a new currency to your Zoho Expense organization settings. Use this endpoint to enable additional currencies for multi-currency expense reporting and reimbursements.

    • This endpoint does not require additional URL parameters. The new currency details (currency code, symbol, exchange rate, and formatting settings) are transmitted as JSON in the request body, automatically populated from the Nexset data being sent.
    • Ensure your Nexset data includes the required fields for a Zoho Expense currency. At minimum, the currency code must be included. Refer to the Zoho Expense Currencies API documentation for the complete list of required and optional fields.

    The OAuth scope ZohoExpense.settings.CREATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Update Currency

    Updates the details of an existing currency in your Zoho Expense organization, such as the exchange rate, symbol, or formatting settings. Use this endpoint to keep currency exchange rates up-to-date for accurate multi-currency expense reporting.

    • Enter the unique identifier of the currency to update in the Currency ID field. Currency IDs can be retrieved using the List Currencies or Get Currency source templates.
    • The updated currency details are transmitted as JSON in the request body, automatically populated from the Nexset data being sent. Include only the fields you want to update; fields not included will retain their current values.

    The OAuth scope ZohoExpense.settings.UPDATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Delete Currency

    Deletes a currency from your Zoho Expense organization settings by its unique ID. Use this endpoint to remove currencies that are no longer used for expense reporting.

    • Enter the unique identifier of the currency to delete in the Currency ID field. This operation is permanent—verify the correct Currency ID before proceeding. Currency IDs can be retrieved using the List Currencies or Get Currency source templates.
    • Currencies that are currently referenced by existing expense reports or transactions may not be deletable by the Zoho Expense API.

    :::warning Important Deleting a currency is a permanent action. Ensure the currency is no longer needed and is not referenced by active expense data before proceeding. :::

    The OAuth scope ZohoExpense.settings.DELETE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Create Tax

    Creates a new tax configuration in your Zoho Expense organization settings. Use this endpoint to add tax types—such as VAT, GST, or sales tax—that can be applied to expense submissions for accurate financial reporting.

    • This endpoint does not require additional URL parameters. The new tax details (tax name, percentage rate, and type) are transmitted as JSON in the request body, automatically populated from the Nexset data being sent.
    • Ensure your Nexset data includes the required fields for a Zoho Expense tax. At minimum, the tax name and percentage rate must be included. Refer to the Zoho Expense Taxes API documentation for the complete list of required and optional fields.

    The OAuth scope ZohoExpense.settings.CREATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Update Tax

    Updates the details of an existing tax in your Zoho Expense organization, such as the tax name or percentage rate. Use this endpoint to keep tax configurations accurate and compliant with current tax regulations.

    • Enter the unique identifier of the tax to update in the Tax ID field. Tax IDs can be retrieved using the List Taxes or Get Tax source templates.
    • The updated tax details are transmitted as JSON in the request body, automatically populated from the Nexset data being sent. Include only the fields you want to update; fields not included will retain their current values.

    The OAuth scope ZohoExpense.settings.UPDATE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

    Delete Tax

    Deletes a tax configuration from your Zoho Expense organization settings by its unique ID. Use this endpoint to remove tax configurations that are no longer applicable.

    • Enter the unique identifier of the tax to delete in the Tax ID field. This operation is permanent—verify the correct Tax ID before proceeding. Tax IDs can be retrieved using the List Taxes or Get Tax source templates.
    • Taxes that are referenced by existing expense reports may not be deletable by the Zoho Expense API.

    :::warning Important Deleting a tax configuration is a permanent action. Ensure the tax is no longer needed and is not referenced by active expense data before proceeding. :::

    The OAuth scope ZohoExpense.settings.DELETE is required for this operation. Ensure this scope is included in your Zoho Expense credential configuration.

Configure Manually

Zoho Expense destinations can be manually configured to send data to any valid Zoho Expense API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Zoho Expense API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Zoho Expense API from the Method pulldown menu. Common methods for Zoho Expense write operations include:

    • POST: For creating new resources (e.g., new expense categories, taxes, or currencies)
    • PUT: For fully updating existing resources
    • DELETE: For removing existing resources

Data Format

  1. Select the format in which the Nexset data will be sent to the Zoho Expense API from the Content Format pulldown menu. Nexla will automatically convert the data to the selected format for each API call. The Zoho Expense API requires data in JSON format for all write operations.

API Endpoint URL

  1. Enter the URL of the Zoho Expense API endpoint to which you want to send the Nexset data in the URL field. 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: https://expense.zoho.com/api/v1/expensecategories
    • Update a specific expense category: https://expense.zoho.com/api/v1/expensecategories/{'{category_id}'}
    • Create a tax: https://expense.zoho.com/api/v1/settings/taxes

Use the base URL that corresponds to your Zoho data center region. See the Authorization guide for the complete list of regional base URLs. For the full list of available Zoho Expense API endpoints, refer to the Zoho Expense API documentation.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the X-com-zoho-expense-organizationid header or the Authorization header here—these are automatically handled by Nexla based on your Zoho Expense credential configuration.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Zoho Expense destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings—click on an algorithm listed below to view instructions for configuring these settings.

Response Webhook

Optional

Nexla can automatically send the response received from the Zoho Expense API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Zoho Expense API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Zoho Expense API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Zoho Expense API using the current settings.

Save & Activate the Destination

  • 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.