# Zoho Expense Integration via LowCodeAPI
## Overview
Expense management
## Base Endpoint
```
https://api.lowcodeapi.com/zohoexpense/
```
## Authentication
LowCodeAPI handles authentication automatically. You only need to:
1. **Sign up** at [Zoho Expense](https://www.zoho.com/in/expense)
2. **Get your credentials** from [credential page](https://accounts.zoho.com/developerconsole)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests
**Auth Type**: OAUTH2.0
## API Categories
- **Currencies** - 5 endpoints
- **Customers** - 5 endpoints
- **Expense** - 2 endpoints
- **Expense Categories** - 7 endpoints
- **Expenses** - 1 endpoints
- **Projects
** - 7 endpoints
- **Receipts** - 9 endpoints
- **Taxes** - 6 endpoints
- **Trip** - 9 endpoints
- **User** - 7 endpoints
- **Users** - 1 endpoints
## Common Endpoints
### Category: Currencies
#### Create a currency
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/settings/currencies`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/currencies?api_token={api_token}
```
**Description**: Create a currency
**Request Body**:
```json
{
"currency_code": "<string>",
"currency_format": "<string>"
}
```
---
#### Retrieve list of currencies
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/settings/currencies`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/currencies?currency_symbol={currency_symbol}&price_precision={price_precision}¤cy_format={currency_format}&api_token={api_token}
```
**Description**: Details of all existing currencies
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`currency_symbol` | string | No | Symbol for the currency |
|`price_precision` | number | No | Precise amount upto n decimal points |
|`currency_format` | string | Yes | Currency format |
---
#### Update details of a currency
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/settings/currencies/currency_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/currencies/currency_id?api_token={api_token}
```
**Description**: Update the details of an existing currency
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`currency_id` | string | Yes | Currency ID |
---
#### Retrieve details of a currency
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/settings/currencies/currency_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/currencies/currency_id?api_token={api_token}
```
**Description**: Details of an existing currency
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`currency_id` | string | Yes | Currency ID |
---
#### Delete a currency
**Method**: `DELETE` | **LowCodeAPI Path**: `/expense/v1/settings/currencies/currency_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/currencies/currency_id?api_token={api_token}
```
**Description**: Delete an existing currency
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`currency_id` | string | Yes | Currency ID |
---
### Category: Customers
#### Create a customer
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/contacts`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/contacts?api_token={api_token}
```
**Description**: Create a new customer
**Request Body**:
```json
{
"contact_name": "<string>"
}
```
---
#### List of all customers
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/contacts`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/contacts?api_token={api_token}
```
**Description**: List of all customers.
---
#### Update a customer
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/contacts/customer_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/contacts/customer_id?api_token={api_token}
```
**Description**: Update the details of an existing customer
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`customer_id` | string | Yes | Customer ID |
**Request Body**:
```json
{
"contact_name": "<string>"
}
```
---
#### Retrieve details of a customer
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/contacts/customer_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/contacts/customer_id?api_token={api_token}
```
**Description**: Details of an existing customer
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`customer_id` | string | Yes | Customer ID |
---
#### Delete a customer
**Method**: `DELETE` | **LowCodeAPI Path**: `/expense/v1/contacts/customer_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/contacts/customer_id?api_token={api_token}
```
**Description**: Delete an existing customer
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`customer_id` | string | Yes | Customer ID |
---
### Category: Expense
#### Update an expense
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/expenses/expense_id
`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expenses/expense_id
?api_token={api_token}
```
**Description**: Update the details of an expense
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_id` | string | Yes | Expense ID |
**Request Body**:
```json
{
"line_items": "<array>"
}
```
---
#### Merge expenses
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expenses/expense_id/merge`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expenses/expense_id/merge?duplicate_expense_id={duplicate_expense_id}&api_token={api_token}
```
**Description**: Merge multiple expenses
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_id` | string | Yes | Expense ID |
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`duplicate_expense_id` | number | Yes | Unique ID of the expense to be merged |
---
### Category: Expense Categories
#### Create an expense category
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expensecategories`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensecategories?api_token={api_token}
```
**Description**: Create a new expense category
**Request Body**:
```json
{
"category_name": "<string>"
}
```
---
#### List of expense categories
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/expensecategories`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensecategories?filter_by={filter_by}&api_token={api_token}
```
**Description**: List of all active expense categories
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`filter_by` | object | Yes | For filtering Expense Categories based on Status |
---
#### Update an expense category
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/expensecategories/expense_category_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensecategories/expense_category_id?api_token={api_token}
```
**Description**: Update the details of an existing expense category
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_category_id` | string | Yes | Expense Category ID |
**Request Body**:
```json
{
"key": "value"
}
```
---
#### Retrieve details of an expense category
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/expensecategories/expense_category_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensecategories/expense_category_id?api_token={api_token}
```
**Description**: Details of an existing expense category
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_category_id` | string | Yes | Expense Category ID |
---
#### Delete an expense category
**Method**: `DELETE` | **LowCodeAPI Path**: `/expense/v1/expensecategories/expense_category_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensecategories/expense_category_id?api_token={api_token}
```
**Description**: Delete an existing expense category
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_category_id` | string | Yes | Expense Category ID |
---
#### Enable an expense category
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expensecategories/expense_category_id/show`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensecategories/expense_category_id/show?api_token={api_token}
```
**Description**: Enable an expense category
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_category_id` | string | Yes | Expense Category ID |
---
#### Disable an expense category
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expensecategories/expense_category_id/hide`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensecategories/expense_category_id/hide?api_token={api_token}
```
**Description**: Disable an expense category
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_category_id` | string | Yes | Expense Category ID |
---
### Category: Expenses
#### List all expenses
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/reports/expensedetails`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/reports/expensedetails?status={status}&date_start={date_start}&date_end={date_end}&user_id={user_id}&category_id={category_id}&merchant_id={merchant_id}&customer_id={customer_id}&project_id={project_id}&api_token={api_token}
```
**Description**: List of all existing expenses
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`status` | string | No | Status of the expense report with which the expense is associated |
|`date_start` | number | No | Date start |
|`date_end` | number | No | Ending Date |
|`user_id` | string | No | Unique ID for user |
|`category_id` | string | No | Unique ID for expense category |
|`merchant_id` | string | No | Unique ID for merchant |
|`customer_id` | string | No | Unique ID for the customer |
|`project_id` | string | Yes | Unique ID of the project associated with the trip |
---
### Category: Projects
#### Create a project
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/projects`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/projects?api_token={api_token}
```
**Description**: Create a new project
**Request Body**:
```json
{
"project_name": "<string>",
"customer_id": "<number>"
}
```
---
#### List of all projects
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/projects`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/projects?api_token={api_token}
```
**Description**: List of all projects
---
#### Update the details of a project
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/projects/project_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/projects/project_id?api_token={api_token}
```
**Description**: Update the details of an existing project
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`project_id` | string | Yes | Project ID |
**Request Body**:
```json
{
"key": "value"
}
```
---
#### Retrieve details of a project
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/projects/project_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/projects/project_id?api_token={api_token}
```
**Description**: Details of an existing project
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`project_id` | string | Yes | Project ID |
---
#### Delete a project
**Method**: `DELETE` | **LowCodeAPI Path**: `/expense/v1/projects/project_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/projects/project_id?api_token={api_token}
```
**Description**: Delete an existing project
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`project_id` | string | Yes | Project ID |
---
#### Make a project active
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/projects/project_id/active`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/projects/project_id/active?api_token={api_token}
```
**Description**: Mark a project as active
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`project_id` | string | Yes | Project ID |
---
#### Make a project inactive
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/projects/project_id/inactive`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/projects/project_id/inactive?api_token={api_token}
```
**Description**: Mark a project as inactive
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`project_id` | string | Yes | Project ID |
---
### Category: Receipts
#### Upload Receipts
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expenses`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expenses?api_token={api_token}
```
**Description**: Upload receipts for autoscanning
**Request Body**:
```json
{
"receipt": "<number>"
}
```
---
#### Create an expense report
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expensereports`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports?api_token={api_token}
```
**Description**: Create an expense report
**Request Body**:
```json
{
"report_name": "<string>",
"start_date": "<string>"
}
```
---
#### List of all expense reports
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/expensereports`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports?filter_by={filter_by}&api_token={api_token}
```
**Description**: List of all the submitted expense reports
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`filter_by` | object | No | For Filtering Expense Reports based on status |
---
#### Update an expense report
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/expensereports/expense_report_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports/expense_report_id?api_token={api_token}
```
**Description**: Update an expense report
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_report_id` | string | Yes | Expense Report ID |
**Request Body**:
```json
{
"expenses": "<array>"
}
```
---
#### Retrieve details of an expense report
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/expensereports/expense_report_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports/expense_report_id?api_token={api_token}
```
**Description**: Details of an existing expense report
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_report_id` | string | Yes | Expense Report ID |
---
#### Approve an expense report
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expensereports/expense_report_id/approve`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports/expense_report_id/approve?api_token={api_token}
```
**Description**: Approve an expense report
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_report_id` | string | Yes | Expense Report ID |
---
#### Reject an expense report
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expensereports/expense_report_id/reject`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports/expense_report_id/reject?api_token={api_token}
```
**Description**: Reject an expense report
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_report_id` | string | Yes | Expense Report ID |
**Request Body**:
```json
{
"key": "value"
}
```
---
#### Reimburse an expense report
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/expensereports/expense_report_id/reimburse`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports/expense_report_id/reimburse?api_token={api_token}
```
**Description**: Reimburse an expense report
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_report_id` | string | Yes | Expense Report ID |
**Request Body**:
```json
{
"key": "value"
}
```
---
#### Approval history of an expense report
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/expensereports/expense_report_id/approvalhistory`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/expensereports/expense_report_id/approvalhistory?api_token={api_token}
```
**Description**: Approval history of an expense report
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`expense_report_id` | string | Yes | Expense Report ID |
---
### Category: Taxes
#### Create a tax
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/settings/taxes`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/taxes?api_token={api_token}
```
**Description**: Create a tax.
**Request Body**:
```json
{
"tax_name": "<string>",
"tax_percentage": "<number>",
"is_value_added": "<boolean>",
"tax_authority_name": "<string>"
}
```
---
#### Retrieve list of taxes
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/settings/taxes`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/taxes?api_token={api_token}
```
**Description**: Details of all existing taxes
---
#### Update details of a tax
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/settings/taxes/tax_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/taxes/tax_id?api_token={api_token}
```
**Description**: Update the details of an existing tax
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`tax_id` | string | Yes | Tax ID |
**Request Body**:
```json
{
"tax_percentage": "<number>",
"is_value_added": "<boolean>"
}
```
---
#### Retrieve details of a tax
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/settings/taxes/tax_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/taxes/tax_id?api_token={api_token}
```
**Description**: Details of an existing tax
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`tax_id` | string | Yes | Tax ID |
---
#### Delete a tax
**Method**: `DELETE` | **LowCodeAPI Path**: `/expense/v1/settings/taxes/tax_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/taxes/tax_id?api_token={api_token}
```
**Description**: Delete an existing tax
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`tax_id` | string | Yes | Tax ID |
---
#### Retrieve details of a tax group
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/settings/taxgroups/tax_group_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/settings/taxgroups/tax_group_id?api_token={api_token}
```
**Description**: Details of an existing tax group
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`tax_group_id` | string | Yes | Tax Group ID |
---
### Category: Trip
#### Create a trip
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/trips`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips?api_token={api_token}
```
**Description**: Create a new trip
**Request Body**:
```json
{
"is_international": "<boolean>",
"destination_country": "<string>",
"trip_number": "<string>"
}
```
---
#### Retrive list of all trips
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/trips`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips?filter_by={filter_by}&api_token={api_token}
```
**Description**: List all existing trips
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`filter_by` | object | No | For filtering trips based on status |
---
#### Update a trip
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/trips/trip_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips/trip_id?api_token={api_token}
```
**Description**: Update an existing Trip
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`trip_id` | string | Yes | Trip ID |
**Request Body**:
```json
{
"is_international": "<boolean>",
"project_id": "<number>",
"trip_number": "<string>"
}
```
---
#### Retrive details of a trip
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/trips/trip_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips/trip_id?api_token={api_token}
```
**Description**: Retrive details of an existing trip
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`trip_id` | string | Yes | Trip ID |
---
#### Delete a trip request
**Method**: `DELETE` | **LowCodeAPI Path**: `/expense/v1/trips/trip_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips/trip_id?api_token={api_token}
```
**Description**: Delete a trip request
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`trip_id` | string | Yes | Trip ID |
---
#### Approve a trip request
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/trips/trip_id/approve`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips/trip_id/approve?api_token={api_token}
```
**Description**: Approve a submitted trip request.
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`trip_id` | string | Yes | Trip ID |
---
#### Reject a trip request
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/trips/trip_id/reject`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips/trip_id/reject?api_token={api_token}
```
**Description**: Reject a submitted trip request
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`trip_id` | string | Yes | Trip ID |
**Request Body**:
```json
{
"key": "value"
}
```
---
#### Cancel a trip
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/trips/trip_id/cancel`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips/trip_id/cancel?api_token={api_token}
```
**Description**: Cancel a trip
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`trip_id` | string | Yes | Trip ID |
**Request Body**:
```json
{
"key": "value"
}
```
---
#### Close a trip
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/trips/trip_id/close`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/trips/trip_id/close?api_token={api_token}
```
**Description**: Close an approved trip
---
### Category: User
#### Create an user
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/users`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users?api_token={api_token}
```
**Description**: Create a new user
**Request Body**:
```json
{
"name": "<string>",
"email": "<string>"
}
```
---
#### Update details of an user
**Method**: `PUT` | **LowCodeAPI Path**: `/expense/v1/users/user_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users/user_id?api_token={api_token}
```
**Description**: Update the details of an existing user.
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_id` | string | Yes | User ID |
**Request Body**:
```json
{
"key": "value"
}
```
---
#### Retrieve details of an user
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/users/user_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users/user_id?api_token={api_token}
```
**Description**: Details of an existing user
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_id` | string | Yes | User ID |
---
#### Delete an user
**Method**: `DELETE` | **LowCodeAPI Path**: `/expense/v1/users/user_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users/user_id?api_token={api_token}
```
**Description**: Delete an existing user
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_id` | string | Yes | User ID |
---
#### Make an user inactive
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/users/user_id/inactive`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users/user_id/inactive?api_token={api_token}
```
**Description**: Make an user inactive
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_id` | string | Yes | User ID |
---
#### Make an user active
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/users/user_id/active`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users/user_id/active?api_token={api_token}
```
**Description**: Make an user active
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_id` | string | Yes | User ID |
---
#### Assign a role to user
**Method**: `POST` | **LowCodeAPI Path**: `/expense/v1/users/user_id/role/role_id`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users/user_id/role/role_id?api_token={api_token}
```
**Description**: Assign a role to user
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_id` | string | Yes | User ID |
|`role_id` | string | Yes | Role ID |
---
### Category: Users
#### Retrieve list of users
**Method**: `GET` | **LowCodeAPI Path**: `/expense/v1/users`
**Full URL**:
```
https://api.lowcodeapi.com/zohoexpense/expense/v1/users?api_token={api_token}
```
**Description**: Details of all existing users
---
## Complete Endpoint Reference
For a complete list of all 59 endpoints, refer to:
- **OpenAPI Definition**: `https://backend.lowcodeapi.com/zohoexpense/definition`
- **Official Provider Documentation**: https://www.zoho.com/expense/api/v1/introduction