Appearance
Zoho Books
Cloud accounting API for invoices, contacts, expenses, bills, items, and financial management via Zoho Books.
| Detail | Value |
|---|---|
| Category | Accounting |
| Base URL | https://www.zohoapis.com/books/v3 |
| Authentication | OAuth2 Client Credentials |
| Endpoints | 20 |
| Connector key | zoho-books |
Using Zoho Books in a workflow
- Go to Connections and click New Connection.
- Pick Zoho Books from the marketplace.
- Enter your credentials (see Authentication above for what's expected).
- In a workflow, drop an API Call node and select this connection.
- Pick the operation you need from the Operation dropdown — the full list is below.
Available endpoints
| Endpoint | Summary |
|---|---|
GET /organizations | List all organizations |
GET /invoices | List all invoices |
POST /invoices | Create a new invoice |
GET /invoices/{invoice_id} | Get an invoice by ID |
PUT /invoices/{invoice_id} | Update an invoice |
DELETE /invoices/{invoice_id} | Delete an invoice |
POST /invoices/{invoice_id}/status/sent | Mark invoice as sent |
POST /invoices/{invoice_id}/email | Email an invoice to the customer |
GET /contacts | List all contacts |
POST /contacts | Create a new contact |
GET /contacts/{contact_id} | Get a contact by ID |
PUT /contacts/{contact_id} | Update a contact |
GET /expenses | List all expenses |
POST /expenses | Create a new expense |
GET /items | List all items |
POST /items | Create a new item |
GET /bills | List all bills |
POST /bills | Create a new bill |
GET /chartofaccounts | List chart of accounts |
GET /settings/taxes | List all taxes |
Each endpoint is documented in full below. Use the outline on the right to jump to one.
GET /organizations
List all organizations
| Detail | Value |
|---|---|
| Operation ID | organizations.list |
| Method | GET |
| Path | /organizations |
Parameters
No parameters.
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
organizations.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /invoices
List all invoices
| Detail | Value |
|---|---|
| Operation ID | invoices.list |
| Method | GET |
| Path | /invoices |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
status | query | string | No |
customer_id | query | string | No |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
invoices.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
POST /invoices
Create a new invoice
| Detail | Value |
|---|---|
| Operation ID | invoices.create |
| Method | POST |
| Path | /invoices |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Request Body
| Field | Type |
|---|---|
customer_id | string |
line_items | array |
date | string |
due_date | string |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
invoices.create. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /invoices/{invoice_id}
Get an invoice by ID
| Detail | Value |
|---|---|
| Operation ID | invoices.get |
| Method | GET |
| Path | /invoices/{invoice_id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
invoice_id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
invoices.get. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
PUT /invoices/{invoice_id}
Update an invoice
| Detail | Value |
|---|---|
| Operation ID | invoices.update |
| Method | PUT |
| Path | /invoices/{invoice_id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
invoice_id | path | string | Yes |
Request Body
| Field | Type |
|---|---|
line_items | array |
due_date | string |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
invoices.update. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
DELETE /invoices/{invoice_id}
Delete an invoice
| Detail | Value |
|---|---|
| Operation ID | invoices.delete |
| Method | DELETE |
| Path | /invoices/{invoice_id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
invoice_id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
invoices.delete. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
POST /invoices/{invoice_id}/status/sent
Mark invoice as sent
| Detail | Value |
|---|---|
| Operation ID | invoices.markAsSent |
| Method | POST |
| Path | /invoices/{invoice_id}/status/sent |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
invoice_id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
invoices.markAsSent. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
POST /invoices/{invoice_id}/email
Email an invoice to the customer
| Detail | Value |
|---|---|
| Operation ID | invoices.sendEmail |
| Method | POST |
| Path | /invoices/{invoice_id}/email |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
invoice_id | path | string | Yes |
Request Body
| Field | Type |
|---|---|
to_mail_ids | array |
subject | string |
body | string |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
invoices.sendEmail. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /contacts
List all contacts
| Detail | Value |
|---|---|
| Operation ID | contacts.list |
| Method | GET |
| Path | /contacts |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
contact_type | query | string | No |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
contacts.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
POST /contacts
Create a new contact
| Detail | Value |
|---|---|
| Operation ID | contacts.create |
| Method | POST |
| Path | /contacts |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Request Body
| Field | Type |
|---|---|
contact_name | string |
contact_type | string |
email | string |
phone | string |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
contacts.create. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /contacts/{contact_id}
Get a contact by ID
| Detail | Value |
|---|---|
| Operation ID | contacts.get |
| Method | GET |
| Path | /contacts/{contact_id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
contact_id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
contacts.get. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
PUT /contacts/{contact_id}
Update a contact
| Detail | Value |
|---|---|
| Operation ID | contacts.update |
| Method | PUT |
| Path | /contacts/{contact_id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
contact_id | path | string | Yes |
Request Body
| Field | Type |
|---|---|
contact_name | string |
email | string |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
contacts.update. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /expenses
List all expenses
| Detail | Value |
|---|---|
| Operation ID | expenses.list |
| Method | GET |
| Path | /expenses |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
status | query | string | No |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
expenses.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
POST /expenses
Create a new expense
| Detail | Value |
|---|---|
| Operation ID | expenses.create |
| Method | POST |
| Path | /expenses |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Request Body
| Field | Type |
|---|---|
account_id | string |
date | string |
total | number |
is_billable | boolean |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
expenses.create. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /items
List all items
| Detail | Value |
|---|---|
| Operation ID | items.list |
| Method | GET |
| Path | /items |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
items.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
POST /items
Create a new item
| Detail | Value |
|---|---|
| Operation ID | items.create |
| Method | POST |
| Path | /items |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Request Body
| Field | Type |
|---|---|
name | string |
rate | number |
item_type | string |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
items.create. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /bills
List all bills
| Detail | Value |
|---|---|
| Operation ID | bills.list |
| Method | GET |
| Path | /bills |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
status | query | string | No |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
bills.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
POST /bills
Create a new bill
| Detail | Value |
|---|---|
| Operation ID | bills.create |
| Method | POST |
| Path | /bills |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Request Body
| Field | Type |
|---|---|
vendor_id | string |
date | string |
line_items | array |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
bills.create. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /chartofaccounts
List chart of accounts
| Detail | Value |
|---|---|
| Operation ID | accounts.list |
| Method | GET |
| Path | /chartofaccounts |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
accounts.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.
GET /settings/taxes
List all taxes
| Detail | Value |
|---|---|
| Operation ID | taxes.list |
| Method | GET |
| Path | /settings/taxes |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
organization_id | query | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Zoho Books connection from the Connection dropdown.
- In the Operation dropdown, select
taxes.list. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Zoho Books API reference.