Zoho invoice

Learn how to use Zoho invoice with Composio

Overview

SLUG: ZOHO_INVOICE

Description

Zoho Invoice simplifies billing, recurring payments, and expense management, helping freelancers and small businesses send professional invoices

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to ZohoInvoice.contacts.ALL,ZohoInvoice.settings.ALL,ZohoInvoice.estimates.ALL,ZohoInvoice.invoices.ALL,ZohoInvoice.customerpayments.ALL,ZohoInvoice.creditnotes.ALL,ZohoInvoice.projects.ALL,ZohoInvoice.expenses.ALL
bearer_token
string
suffix.one
stringRequired

Connecting to Zoho invoice

Create an auth config

Use the dashboard to create an auth config for the Zoho invoice toolkit. This allows you to connect multiple Zoho invoice accounts to Composio for agents to use.

1

Select App

Navigate to [Zoho invoice](https://platform.composio.dev/marketplace/Zoho invoice).

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Zoho invoice Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4zoho_invoice_auth_config_id = "ac_YOUR_ZOHO_INVOICE_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Zoho invoice: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, zoho_invoice_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Zoho invoice toolkit’s playground](https://app.composio.dev/app/Zoho invoice)

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["ZOHO_INVOICE"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Get Zoho Invoice Item

Description

Tool to retrieve the details of a specific item by item id. use when you need to fetch an item's data after confirming its existence.

Action Parameters

item_id
stringRequired
organization_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Contacts

Description

Tool to list contacts. use after obtaining the organization id to retrieve contacts with optional filters and pagination.

Action Parameters

address
string
address_contains
string
address_startswith
string
company_name
string
company_name_contains
string
company_name_startswith
string
contact_name
string
contact_name_contains
string
contact_name_startswith
string
email
string
email_contains
string
email_startswith
string
filter_by
string
first_name
string
first_name_contains
string
first_name_startswith
string
last_name
string
last_name_contains
string
last_name_startswith
string
organization_id
stringRequired
page
integer
per_page
integer
phone
string
phone_contains
string
phone_startswith
string
search_text
string
sort_column
string
zcrm_account_id
string
zcrm_contact_id
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Expenses

Description

Tool to list all expenses with optional pagination. use when you need to retrieve expenses with simple pagination.

Action Parameters

page
integer
per_page
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Invoices

Description

Tool to list invoices. use when you need to retrieve all invoices with optional filters and pagination.

Action Parameters

balance
number
custom_field
string
custom_field_contains
string
custom_field_startswith
string
customer_id
string
customer_name
string
date
string
date_after
string
date_before
string
date_end
string
date_start
string
due_date
string
due_date_after
string
due_date_before
string
due_date_end
string
due_date_start
string
email
filter_by
string
invoice_number
string
item_description
string
item_description_contains
string
item_description_startswith
string
item_id
string
item_name
string
item_name_contains
string
item_name_startswith
string
page
integer
per_page
integer
recurring_invoice_id
string
reference_number
string
search_text
string
sort_column
string
status
string
total
number
zcrm_potential_id
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Items

Description

Tool to list all items. use when you need to retrieve your item catalog with optional pagination and filtering after specifying the organization id.

Action Parameters

filter_by
string
organization_id
stringRequired
page
integer
per_page
integer
search_text
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Payments

Description

Tool to list payments. use when you need to retrieve all payments with optional filters like customer, invoice, date range, and pagination.

Action Parameters

customer_id
string
date_end
string
date_start
string
filter_by
string
invoice_id
string
mode
string
page
integer
payment_number
string
per_page
integer
reference_number
string
sort_column
string
sort_order
string

Action Response

data
objectRequired
error
string
successful
booleanRequired