# Zoho Invoice Integration via LowCodeAPI

**Last Updated**: February 10, 2026

## Overview
Invoicing software

**Categories:**
- {'id': 'zoho-suite', 'name': 'Zoho Suite'}

## Base Endpoint
https://api.lowcodeapi.com/zohoinvoice

**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`

## Authentication
**Type:** 

**Official Documentation:** https://www.zoho.com/invoice/api/v3/introduction

## URL Format (Important)

LowCodeAPI supports two URL formats. **Always try the New Format first**, then fall back to Old Format if needed.

### New Format (Priority)
- Path parameters stay in the URL path
- Do NOT include path parameters as query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/{id}?api_token=XXX`

### Old Format (Fallback)
- Path parameters become query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/id?id={id}&api_token=XXX`

### Decision Flow for AI Agents
1. Always use **New Format** first - keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider

## API Categories

## Common Endpoints

### Create a contact person

**Method:** POST
**LowCodeAPI Path:** /invoice/v3/contacts/contactpersons

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons?api_token=YOUR_API_TOKEN

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| contact_id | string |  |
| department | string |  |
| designation | string |  |
| email | string |  |
| enable_portal | boolean |  |
| first_name | string |  |
| last_name | string |  |
| mobile | string |  |
| phone | string |  |
| salutation | string |  |
| skype | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contact-persons/#create-a-contact-person

### Update a contact person

**Method:** PUT
**LowCodeAPI Path:** /invoice/v3/contacts/contactpersons/{contact_person_id}

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/{contact_person_id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/contact_person_id?contact_person_id={contact_person_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| contact_person_id | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| contact_id | string |  |
| department | string |  |
| designation | string |  |
| email | string |  |
| enable_portal | boolean |  |
| first_name | string |  |
| last_name | string |  |
| mobile | string |  |
| phone | string |  |
| salutation | string |  |
| skype | string |  |

**Example Request (New Format):**

```bash
curl -X PUT 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/{contact_person_id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contact-persons/#update-a-contact-person

### Delete a contact person

**Method:** DELETE
**LowCodeAPI Path:** /invoice/v3/contacts/contactpersons/{contact_person_id}

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/{contact_person_id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/contact_person_id?contact_person_id={contact_person_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| contact_person_id | string |  |

**Example Request (New Format):**

```bash
curl -X DELETE 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/{contact_person_id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contact-persons/#delete-a-contact-person

### List contact persons

**Method:** GET
**LowCodeAPI Path:** /invoice/v3/contacts/{contact_id}/contactpersons

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}/contactpersons?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contact_id/contactpersons?contact_id={contact_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| contact_id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}/contactpersons?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contact-persons/#list-contact-persons

### Get a contact person

**Method:** GET
**LowCodeAPI Path:** /invoice/v3/contacts/{contact_id}/contactpersons/{contact_person_id}

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}/contactpersons/{contact_person_id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contact_id/contactpersons/contact_person_id?contact_id={contact_id}&contact_person_id={contact_person_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| contact_id | string |  |
| contact_person_id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}/contactpersons/{contact_person_id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contact-persons/#get-a-contact-person

### Mark as primary contact person

**Method:** POST
**LowCodeAPI Path:** /invoice/v3/contacts/contactpersons/{contact_person_id}/primary

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/{contact_person_id}/primary?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/contact_person_id/primary?contact_person_id={contact_person_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| contact_person_id | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contactpersons/{contact_person_id}/primary?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contact-persons/#mark-as-primary-contact-person

### Create a Contact

**Method:** POST
**LowCodeAPI Path:** /invoice/v3/contacts

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts?api_token=YOUR_API_TOKEN

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| avatax_exempt_no | string |  |
| avatax_use_code | string |  |
| billing_address | object |  |
| company_name | string |  |
| contact_name | string |  |
| contact_persons | array |  |
| country_code | string |  |
| currency_id | string |  |
| custom_fields | array |  |
| default_templates | object |  |
| facebook | string |  |
| gst_no | string |  |
| gst_treatment | string |  |
| is_taxable | boolean |  |
| is_tds_registered | boolean |  |
| language_code | string |  |
| notes | string |  |
| payment_terms | number |  |
| place_of_contact | string |  |
| shipping_address | object |  |
| tax_authority_id | string |  |
| tax_authority_name | string |  |
| tax_exemption_code | string |  |
| tax_exemption_id | string |  |
| tax_id | string |  |
| tax_reg_no | string |  |
| tax_regime | string |  |
| tax_treatment | string |  |
| tds_tax_id | string |  |
| twitter | string |  |
| vat_reg_no | string |  |
| vat_treatment | string |  |
| website | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contacts/#create-a-contact

### List Contacts

**Method:** GET
**LowCodeAPI Path:** /invoice/v3/contacts

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts?api_token=YOUR_API_TOKEN

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| address | string |  |
| company_name | string |  |
| contact_name | string |  |
| email | string |  |
| filter_by | string |  |
| first_last_name | string |  |
| first_name | string |  |
| phone | string |  |
| search_text | string |  |
| sort_column | string |  |
| zcrm_account_id | string |  |
| zcrm_contact_id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contacts/#list-contacts

### Update a Contact

**Method:** PUT
**LowCodeAPI Path:** /invoice/v3/contacts/{contact_id}

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contact_id?contact_id={contact_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| contact_id | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| avatax_exempt_no | string |  |
| avatax_use_code | string |  |
| billing_address | object |  |
| company_name | string |  |
| contact_name | string |  |
| contact_persons | array |  |
| country_code | string |  |
| currency_id | string |  |
| custom_fields | array |  |
| default_templates | object |  |
| facebook | string |  |
| gst_no | string |  |
| gst_treatment | string |  |
| is_taxable | boolean |  |
| is_tds_registered | boolean |  |
| language_code | string |  |
| notes | string |  |
| payment_terms | number |  |
| place_of_contact | string |  |
| shipping_address | object |  |
| tax_authority_id | string |  |
| tax_authority_name | string |  |
| tax_exemption_code | string |  |
| tax_exemption_id | string |  |
| tax_id | string |  |
| tax_reg_no | string |  |
| tax_regime | string |  |
| tax_treatment | string |  |
| tds_tax_id | string |  |
| twitter | string |  |
| vat_reg_no | string |  |
| vat_treatment | string |  |
| website | string |  |

**Example Request (New Format):**

```bash
curl -X PUT 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contacts/#update-a-contact

### Get a Contact

**Method:** GET
**LowCodeAPI Path:** /invoice/v3/contacts/{contact_id}

**New Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/contact_id?contact_id={contact_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| contact_id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/zohoinvoice/invoice/v3/contacts/{contact_id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.zoho.com/invoice/api/v3/contacts/#get-a-contact


## Usage Examples

### Example 1: Basic API Request (New Format)

Making a simple GET request to retrieve resources:

```bash
# Get a list of resources - no path parameters needed
curl -X GET "https://api.lowcodeapi.com/zohoinvoice/endpoint?api_token=YOUR_API_TOKEN"
```

### Example 2: Request with Path Parameters (New Format)

Retrieving a specific resource using its ID:

```bash
# Get specific resource by ID - replace RESOURCE_ID with actual ID from previous response
curl -X GET "https://api.lowcodeapi.com/zohoinvoice/endpoint/{RESOURCE_ID}?api_token=YOUR_API_TOKEN"
# Note: RESOURCE_ID typically comes from a previous list request or from the provider dashboard
```

### Example 3: POST Request with Body (New Format)

Creating a new resource:

```bash
# Create a new resource
curl -X POST "https://api.lowcodeapi.com/zohoinvoice/endpoint?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"field": "value", "another_field": "another_value"}'
```

## Error Handling

LowCodeAPI returns standard HTTP status codes. Common errors:

| Status Code | Description |
|-------------|-------------|
| 200 | Success - Request completed successfully |
| 400 | Bad Request - Invalid parameters or request body |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Endpoint or resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Provider API error |

All error responses include error details:

```json
{
  "data": {
    "error": {
      "message": "Error description",
      "code": "ERROR_CODE"
    }
  }
}
```

## Complete Endpoint Reference

| Endpoint | Method | Category |
|----------|--------|----------|
| Create a contact person | POST | Contact Persons |
| Update a contact person | PUT | Contact Persons |
| Delete a contact person | DELETE | Contact Persons |
| List contact persons | GET | Contact Persons |
| Get a contact person | GET | Contact Persons |
| Mark as primary contact person | POST | Contact Persons |
| Create a Contact | POST | Contacts |
| List Contacts | GET | Contacts |
| Update a Contact | PUT | Contacts |
| Get a Contact | GET | Contacts |
| Delete a Contact | DELETE | Contacts |
| Mark as Active | POST | Contacts |
| Mark as Inactive | POST | Contacts |
| Enable Portal Access | POST | Contacts |
| View All Client Reviews | GET | Contacts |
| Details of a Particular Client Review | GET | Contacts |
| Reply a Client Review | POST | Contacts |
| Enable Payment Reminders | POST | Contacts |
| Disable Payment Reminders | POST | Contacts |
| Email Statement | POST | Contacts |
| Get Statement Mail Content | GET | Contacts |
| Email Contact | POST | Contacts |
| List Comments | GET | Contacts |
| Add Additional Address | POST | Contacts |
| Get Contact Addresses | GET | Contacts |
| Edit Additional Address | PUT | Contacts |
| Delete Additional Address | DELETE | Contacts |
| List Refunds | GET | Contacts |
| Create a credit note | POST | Credit Notes
 |
| List Credit Notes | GET | Credit Notes
 |
| Update a credit note | PUT | Credit Notes
 |
| Get a credit note | GET | Credit Notes
 |
| Delete a credit note | DELETE | Credit Notes
 |
| Email a credit note | POST | Credit Notes
 |
| Void a credit note | POST | Credit Notes
 |
| Open a voided credit note | POST | Credit Notes
 |
| Email history | GET | Credit Notes
 |
| Update billing address | PUT | Credit Notes
 |
| Update Shipping address | PUT | Credit Notes
 |
| List credit note templates | GET | Credit Notes
 |
| Update a credit note template | PUT | Credit Notes
 |
| Credit to an invoice | POST | Credit Notes
 |
| List invoices credited | GET | Credit Notes
 |
| Delete invoices credited | DELETE | Credit Notes
 |
| Add a comment | POST | Credit Notes
 |
| List credit note comments & history | GET | Credit Notes
 |
| Delete a Comment | DELETE | Credit Notes
 |
| List credit note refunds | GET | Credit Notes
 |
| Refund credit note | POST | Credit Notes
 |
| List refunds of a credit note | GET | Credit Notes
 |
| Update credit note refund | PUT | Credit Notes
 |
| Get credit note refund | GET | Credit Notes
 |
| Delete credit note refund | DELETE | Credit Notes
 |
| Create a Currency | POST | Currency
 |
| List Currencies | GET | Currency
 |
| Update a Currency | PUT | Currency
 |
| Get a Currency | GET | Currency
 |
| Delete a currency | DELETE | Currency
 |
| Create an exchange rate | POST | Currency
 |
| List exchange rates | GET | Currency
 |
| Update an exchange rate | PUT | Currency
 |
| Get an exchange rate. | GET | Currency
 |
| Delete an exchage rate | DELETE | Currency
 |
| Create a payment | POST | Customer Payments |
| List Customer Payments | GET | Customer Payments |
| Update a payment | PUT | Customer Payments |
| Retrieve a payment | GET | Customer Payments |
| Delete a payment | DELETE | Customer Payments |
| Refund an excess customer payment | POST | Customer Payments |
| List refunds of a customer payment | GET | Customer Payments |
| Update a refund | PUT | Customer Payments |
| Details of a refund | GET | Customer Payments |
| Delete a Refund | DELETE | Customer Payments |
| Create an Estimate | POST | Estimates |
| List estimates | GET | Estimates |
| Update an Estimate | PUT | Estimates |
| Get an estimate | GET | Estimates |
| Delete an Estimate | DELETE | Estimates |
| Mark an estimate as sent | POST | Estimates |
| Mark an estimate as accepted | POST | Estimates |
| Mark an estimate as declined | POST | Estimates |
| Email an estimate | POST | Estimates |
| Get estimate email content | GET | Estimates |
| Email multiple estimates | POST | Estimates |
| Bulk export estimates | GET | Estimates |
| Bulk print estimates | GET | Estimates |
| Update billing address | PUT | Estimates |
| Update shipping address | PUT | Estimates |
| List estimate templates | GET | Estimates |
| Update estimate template | PUT | Estimates |
| Add Comments | POST | Estimates |
| List estimate comments & history | GET | Estimates |
| Update comment | PUT | Estimates |
| Delete a comment | DELETE | Estimates |
| Create an expense category | POST | Expense Category
 |
| List expense categories | GET | Expense Category
 |
| Update an expense category | PUT | Expense Category
 |
| Get an expense category | GET | Expense Category
 |
| Delete an expense category | DELETE | Expense Category
 |
| Mark an expense category as active | POST | Expense Category
 |
| Mark an expense category as inactive | POST | Expense Category
 |
| Create an Expense | POST | Expenses
 |
| List Expenses | GET | Expenses
 |
| Update an Expense | PUT | Expenses
 |
| Get an Expense | GET | Expenses
 |
| Delete an Expense | DELETE | Expenses
 |
| List expense History & Comments | GET | Expenses
 |
| Create an employee | POST | Expenses
 |
| List employees | GET | Expenses
 |
| Get an employee | GET | Expenses
 |
| Delete an employee | DELETE | Expenses
 |
| Create an invoice | POST | Invoices |
| List invoices | GET | Invoices |
| Update an invoice | PUT | Invoices |
| Get an invoice | GET | Invoices |
| Delete an invoice | DELETE | Invoices |
| Mark an invoice as sent | POST | Invoices |
| Void an invoice | POST | Invoices |
| Mark as draft | POST | Invoices |
| Email an invoice | POST | Invoices |
| Get invoice email content | GET | Invoices |
| Email invoices | POST | Invoices |
| Remind Customer | POST | Invoices |
| Get payment reminder mail content | GET | Invoices |
| Bulk invoice reminder | POST | Invoices |
| Bulk export Invoices | GET | Invoices |
| Bulk print invoices | GET | Invoices |
| Disable payment reminder | POST | Invoices |
| Enable payment reminder | POST | Invoices |
| Write off invoice | POST | Invoices |
| Cancel write off | POST | Invoices |
| Update billing address | PUT | Invoices |
| Update shipping address | PUT | Invoices |
| List invoice templates | GET | Invoices |
| Update invoice template | PUT | Invoices |
| List invoice payments | GET | Invoices |
| List credits applied | GET | Invoices |
| Apply credits | POST | Invoices |
| Delete a payment | DELETE | Invoices |
| Delete applied credit | DELETE | Invoices |
| Add attachment to an invoice | POST | Invoices |
| Update attachment preference | PUT | Invoices |
| Get an invoice attachment | GET | Invoices |
| Delete an attachment | DELETE | Invoices |
| Delete the expense receipt | DELETE | Invoices |
| Add comment | POST | Invoices |
| List invoice comments & history | GET | Invoices |
| Update comment | PUT | Invoices |
| Delete a comment | DELETE | Invoices |
| Create an Item | POST | Items |
| List Contacts | GET | Items |
| Update an Item | PUT | Items |
| Retrieve an item | GET | Items |
| Delete an item | DELETE | Items |
| Mark as active | POST | Items |
| Mark as inactive | POST | Items |
| Create a Price List | POST | Price Lists |
| List of all the Price Lists | GET | Price Lists |
| Update a Price List | PUT | Price Lists |
| Retrieve a Price list | GET | Price Lists |
| Delete a Price List | DELETE | Price Lists |
| Create a project | POST | Projects |
| List projects | GET | Projects |
| Update a project | PUT | Projects |
| Get a project | GET | Projects |
| Delete project | DELETE | Projects |
| Activate a project | POST | Projects |
| Deactivate a project | POST | Projects |
| Clone a project | POST | Projects |
| Assign users | POST | Projects |
| List Users | GET | Projects |
| Invite user | POST | Projects |
| Update user | PUT | Projects |
| Get a User | GET | Projects |
| Delete user | DELETE | Projects |
| Post comment | POST | Projects |
| List comments | GET | Projects |
| Delete comment | DELETE | Projects |
| List invoices | GET | Projects |
| Create a recurring expense | POST | Recurring Expenses |
| List recurring expenses | GET | Recurring Expenses |
| Update a recurring expense | POST | Recurring Expenses |
| Get a recurring expense | GET | Recurring Expenses |
| Delete a recurring expense | DELETE | Recurring Expenses |
| Resume a recurring Expense | POST | Recurring Expenses |
| List child expenses created | GET | Recurring Expenses |
| List recurring expense history | GET | Recurring Expenses |
| Create a Recurring Invoice | POST | Recurring Invoices |
| List Recurring Invoice | GET | Recurring Invoices |
| Update Recurring Invoice | PUT | Recurring Invoices |
| Get a Recurring Invoice | GET | Recurring Invoices |
| Delete a Recurring Invoice | DELETE | Recurring Invoices |
| Stop a Recurring Invoice | POST | Recurring Invoices |
| Resume a Recurring Invoice | POST | Recurring Invoices |
| Update Recurring Invoice template | PUT | Recurring Invoices |
| List Recurring Invoice History | GET | Recurring Invoices |
| Create a retainer invoice | POST | Retainer Invoices |
| List Retainer invoices | GET | Retainer Invoices |
| Update a retainer invoice | PUT | Retainer Invoices |
| Get a retainer invoice | GET | Retainer Invoices |
| Delete a retainer invoice | DELETE | Retainer Invoices |
| Mark a retainer invoice as sent | POST | Retainer Invoices |
| Update retainer invoice template | PUT | Retainer Invoices |
| Void a retainer invoice | POST | Retainer Invoices |
| Mark as draft | POST | Retainer Invoices |
| Email a retainer invoice | POST | Retainer Invoices |
| Get retainer invoice email content | GET | Retainer Invoices |
| Update billing address | PUT | Retainer Invoices |
| List retainer invoice templates | GET | Retainer Invoices |
| Add attachment to a retainer invoice | POST | Retainer Invoices |
| Get a retainer invoice attachment | GET | Retainer Invoices |
| Delete an attachment | DELETE | Retainer Invoices |
| Add comment | POST | Retainer Invoices |
| List retainer invoice comments & history | GET | Retainer Invoices |
| Update comment | PUT | Retainer Invoices |
| Delete a comment | DELETE | Retainer Invoices |
| Add a task | POST | Tasks
 |
| List tasks | GET | Tasks
 |
| Update a task | PUT | Tasks
 |
| Get a task | GET | Tasks
 |
| Delete a Task | DELETE | Tasks
 |
| Create a tax | POST | Taxes
 |
| List taxes | GET | Taxes
 |
| Update a tax | PUT | Taxes
 |
| Get a tax | GET | Taxes
 |
| Delete a tax | DELETE | Taxes
 |
| Update a tax group | PUT | Taxes
 |
| Get a tax group | GET | Taxes
 |
| Delete a tax group | DELETE | Taxes
 |
| Create a tax group | POST | Taxes
 |
| Create Tax Exemption | POST | Taxes
 |
| List Tax Exemptions | GET | Taxes
 |
| Update Tax Exemption | PUT | Taxes
 |
| Delete Tax Exemption | DELETE | Taxes
 |
| Create Tax Authority. | POST | Taxes
 |
| List Tax Authorities | GET | Taxes
 |
| Update Tax Authority. | PUT | Taxes
 |
| Update Tax Authority. | DELETE | Taxes
 |
| Log time entries | POST | Time Entries
 |
| List time entries. | GET | Time Entries
 |
| Delete time entries | DELETE | Time Entries
 |
| Update time entry | PUT | Time Entries
 |
| Get a time entry | GET | Time Entries
 |
| Delete time entry | DELETE | Time Entries
 |
| Start timer | POST | Time Entries
 |
| Stop timer | POST | Time Entries
 |
| Get timer | GET | Time Entries
 |
| Create a user | POST | Users
 |
| List Users | GET | Users
 |
| Update a user | PUT | Users
 |
| Get a user | GET | Users
 |
| Delete a user | DELETE | Users
 |
| Get current user | GET | Users
 |
| Invite a user | POST | Users
 |
| Mark user as active | POST | Users
 |
| Mark user as inactive | POST | Users
 |
| Import a customer using the CRM account ID | POST | ZOHO CRM Integration |
| Import a customer using CRM contact ID | POST | ZOHO CRM Integration
 |

## API Definition Endpoints

You can fetch the complete API specification for this provider:

**New Format (OpenAPI spec):**
```bash
curl 'https://backend.lowcodeapi.com/zohoinvoice/openapi'
```

**Old Format (API definition):**
```bash
curl 'https://backend.lowcodeapi.com/zohoinvoice/definition'
```

## Response Format

All responses are wrapped in a `data` key:

```json
{
  "data": {
    // Actual response from provider (object or array)
  }
}
```