# 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}&currency_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