> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Zoho Books

The Zoho Books connector lets your AI agent act in each user's Zoho Books account. Each user signs in to Zoho Books once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 119 tools.

**Authentication:** OAuth 2.0
**Categories:** Accounting & Finance
**Tools:** 119: 57 read, 62 write, 0 destructive
**Users sign in with:** OAuth
**OAuth app:** Your own Zoho Books app
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=ZOHOBOOKS)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Zoho Books connection

   In **AgentKit > Connections**, create a Zoho Books connection and copy its redirect URI. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Register an OAuth app

   Zoho Books connections use your own OAuth app. Register one with Zoho Books and add the redirect URI you copied.

   Then enter the app's Client ID and Client Secret on the Zoho Books connection.

5. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'zohobooks'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Zoho Books:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'zohobooks_organizations_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "zohobooks"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Zoho Books:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="zohobooks_organizations_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'zohobooks_bank_account_get',
  toolInput: {
    account_id: '<account_id>',
    organization_id: '<organization_id>',
  },
  connector: 'zohobooks',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="zohobooks_bank_account_get",
    tool_input={
        "account_id": "<account_id>",
        "organization_id": "<organization_id>",
    },
    connection_name="zohobooks",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `zohobooks_bank_account_get`

Get Bank Account · Read-only

Get one bank or credit card account by ID, including its balance and bank details. Returns a bankaccount object with account_id, account_name, account_code, currency_id, currency_code, currency_symbol. Use this when you have an account_id. Use bank_accounts_list to find accounts. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, required): Unique identifier of the bank account. Example: 460000000050127
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"account_id":"<account_id>","organization_id":"<organization_id>"}`

### `zohobooks_bank_accounts_list`

List Bank Accounts · Read-only

List the bank and credit card accounts set up in the organization, with balances. Returns a bankaccounts array (each with account_id, account_name, account_code, currency_id, currency_code, account_type). Use this to find account IDs for bank transactions. Use bank_account_get for one account. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `filter_by` (`string`, optional): Filter the account by their status. Allowed Values: Status.All, Status.Active and Status.Inactive. Example: Status.All. One of: `Status.All`, `Status.Active`, `Status.Inactive`.
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `sort_column` (`string`, optional): Sort the values based on the allowed values. Allowed Values: account_name,account_type and account_code. Example: account_name

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_bank_transaction_get`

Get Bank Transaction · Read-only

Get one bank transaction by ID, including its account, amount, type and categorization. Returns a banktransaction object with transaction_id, from_account_id, from_account_name, to_account_id, to_account_name, transaction_type. Use this when you have a bank_transaction_id. Use bank_transactions_list to find transactions. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bank_transaction_id` (`string`, required): Unique identifier of the bank transaction. Example: 460000000048017
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"bank_transaction_id":"<bank_transaction_id>","organization_id":"<organization_id>"}`

### `zohobooks_bank_transactions_list`

List Bank Transactions · Read-only

List bank transactions, with filters for account, type, status, dates and amount. Returns a banktransactions array (each with transaction_id, date, amount, transaction_type, status, source). Use this to browse banking activity. Use bank_transaction_get for one transaction. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `account_id` (`string`, optional): ID of the bank account to filter transactions. Example: 460000000048001
- `amount` (`number`, optional): Start and end amount, to provide a range within which the transaction amount exist. Variants: amount_start and amount_end Example: 2000
- `date` (`string`, optional): Start and end date, to provide a range within which the transaction date exist. Variants: date_start and date_end Example: 2013-10-01
- `filter_by` (`string`, optional): Filters the transactions based on the allowed types. Allowed Values: Status.All, Status.Uncategorized, Status.Categorized, Status.ManuallyAdded, Status.Excluded and Status.Matched. One of: `Status.All`, `Status.Uncategorized`, `Status.Categorized`, `Status.ManuallyAdded`, `Status.Excluded`, `Status.Matched`.
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `reference_number` (`string`, optional): Search using Reference Number of the transaction Example: Ref-121
- `search_text` (`string`, optional): Search Transactions by contact name or description
- `sort_column` (`string`, optional): Sorts the transactions based on the allowed sort types. Allowed Values: date.
- `status` (`string`, optional): Transaction status wise list view - All, uncategorized, manually_added, matched, excluded, categorized Example: categorized
- `transaction_status` (`string`, optional): Transaction status wise list view - All, uncategorized, manually_added, matched, excluded, categorized
- `transaction_type` (`string`, optional): Type of the bank transaction. Allowed Values: sales_without_invoices, expense_refund, owner_drawings, owner_contribution, interest_income, other_income, expense, deposit Example: deposit. One of: `sales_without_invoices`, `expense_refund`, `owner_drawings`, `owner_contribution`, `interest_income`, `other_income`, `expense`, `deposit`.

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_bill_get`

Get Bill · Read-only

Get one vendor bill by ID, including line items, totals, balance due and payment status. Returns a bill object with bill_id, entity_type, purchaseorder_ids, vendor_id, vendor_name, pricebook_id. Use this when you have a bill_id. Use bills_list to find bills. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bill_id` (`string`, required): Unique identifier of the bill. Example: 460000000098765
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"bill_id":"<bill_id>","organization_id":"<organization_id>"}`

### `zohobooks_bill_payments_list`

List Bill Payments · Read-only

List the vendor payments recorded against one bill. Returns a payments array (each with payment_id, bill_id, bill_payment_id, vendor_id, vendor_name, payment_mode). Use this to see how a bill was paid. Use vendor_payments_list to browse all payments made. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bill_id` (`string`, required): Unique identifier of the bill. Example: 460000000098765
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"bill_id":"<bill_id>","organization_id":"<organization_id>"}`

### `zohobooks_bills_list`

List Bills · Read-only

List vendor bills, with filters for status, vendor, dates, bill number and free-text search. Returns a bills array (each with bill_id, vendor_id, vendor_name, status, bill_number, reference_number), page_context for pagination. Use this to browse or search bills. Use bill_get for one bill's line items. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `bill_number` (`string`, optional): Filter bills by bill number. Accepts exact matches or use bill_number_startswith for prefix matching and bill_number_contains for substring matching. Useful for finding bills by unique identifier or partial patterns. Example: 00454
- `created_date` (`string`, optional): Search bills by creation date. Filters bills based on the date they were created. Use yyyy-mm-dd format. Supports variants: created_date_start and created_date_end. Useful for finding bills created within specific time periods or date ranges. Example: 2013-11-17
- `customer_id` (`string`, optional): Search bills by customer ID. Filters bills based on the unique identifier of the customer associated with the bill. Use the customer ID returned by the Contacts API to find bills for a specific customer. Note: This value is a set of numeric characters. Example: 982000000567001
- `date` (`string`, optional): Filter bills by bill date in YYYY-MM-DD format. Use date_start/date_end for ranges, date_before/date_after for relative dates. Useful for billing periods and due date management. Example: 2013-09-11
- `description` (`string`, optional): Filter bills by description text. Accepts exact matches or use description_startswith for prefix matching and description_contains for substring matching. Useful for finding bills by line item descriptions or vendor notes.
- `due_date` (`string`, optional): Search bills by due date. Filters bills based on the payment due date. Use yyyy-mm-dd format. Supports variants: due_date_start, due_date_end, due_date_before and due_date_after. Useful for finding overdue bills or bills due within specific periods. Example: 2013-12-03
- `filter_by` (`string`, optional): Filter bills by status using predefined status constants. Options include Status.All, Status.PartiallyPaid, Status.Paid, Status.Overdue, Status.Void, and Status.Open. Example: Status.All. One of: `Status.All`, `Status.Paid`, `Status.Open`, `Status.Overdue`, `Status.Void`, `Status.PartiallyPaid`, `Status.Unpaid`, `Status.Draft`, `Status.Pending`, `Status.ApprovalOverdue`, `Status.CreditNotes`, `Status.MyApprovals`, `Status.Network`, `Status.NetworkPending`, `Status.EInvoicedBills`, `Status.EInvoicePendingBills`, `Status.MSMEDueBills`, `Status.TDSInvoices`, `Status.BBPSPendingApproval`, `Status.BBPSAccepted`, `Status.BBPSAcceptFailed`, `Status.BBPSRejected`, `Status.BBPSRejectFailed`, `Status.BBPSReturned`, `Status.BBPSReturnFailed`, `Status.PMSAppliedBills`, `Status.ViolatedBills`, `YetToBeReceived`, `Received`, `ExceptionList`, `WithAttachment`, `WithoutAttachment`, `Source.TallyConnector`, `MissingAdvancedTrackingDetails`, `TDSCalculationExceptionList`, `Type.All`, `Type.Bills`, `Type.SelfBilled`, `Type.MyRecentBills`.
- `item_description` (`string`, optional): Search bills by item description. Filters bills based on detailed descriptions of products or services in line items. Supports item_description_startswith and item_description_contains variants. Maximum length is 100 characters. Useful for finding bills with specific item descriptions or technical specifications. Example: 500GB, USB 2.0 interface
- `item_id` (`string`, optional): Filter bills by specific item ID. Retrieves all bills containing a particular product or service item based on its unique identifier. Example: 460000000054135
- `item_name` (`string`, optional): Search bills by item name. Filters bills based on product or service names in bill line items. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Useful for finding bills with specific products or services. Example: Desktop Units
- `last_modified_time` (`string`, optional): Search bills modified after a specific time. Filters bills based on their last modification timestamp. Use YYYY-MM-DDTHH:MM:SS-UTC format. Useful for finding recently updated bills or syncing data changes. Example : 2023-11-18T02:02:51-0800, 2025-19-19T02:02:51%2B0800
- `location_ids` (`string`, optional): List of location IDs to filter bills by their associated locations. Use this parameter to retrieve bills linked to specific business locations. Note: This value is a comma-separated list of numeric location IDs. Example: 460000000038080,460000000038081
- `page` (`integer`, optional): Specify the page number for pagination. Use this parameter to navigate through multiple pages of bills when the total number of bills exceeds the per_page limit. Example: 1
- `per_page` (`integer`, optional): Specify the number of bills to retrieve per page. Example: 10
- `project_id` (`string`, optional): Filter bills by specific project ID. Accepts the unique identifier for a project to retrieve all bills associated with that particular project. Example: 460000000038030
- `purchaseorder_id` (`string`, optional): Filter bills by purchase order ID. Retrieves all bills associated with a specific purchase order for tracking procurement workflows. Example: 460000000068231
- `recurring_bill_id` (`string`, optional): Filter bills by recurring bill ID. Retrieves all bills generated from a specific recurring bill template or schedule.
- `reference_number` (`string`, optional): Filter bills by reference number. Accepts exact matches or use reference_number_startswith for prefix matching and reference_number_contains for substring matching. Useful for finding bills by external references or vendor invoice numbers. Example: 4321133
- `search_text` (`string`, optional): Filter bills using general search text. Searches across bill number, reference number, and vendor name fields to find matching bills. Useful for quick searches when you know part of the bill information.
- `sort_column` (`string`, optional): Specify the column to sort bills by. Available options include vendor_name, bill_number, date, due_date, total, balance, and created_time. Example: created_time. One of: `vendor_name`, `bill_number`, `date`, `due_date`, `total`, `balance`, `created_time`, `last_modified_time`, `txn_value_date`, `total_retention_amount`.
- `sort_order` (`string`, optional): Specify the sorting order for bills. Use A for ascending order (A-Z, 0-9, earliest to latest) or D for descending order (Z-A, 9-0, latest to earliest). Example: D
- `status` (`string`, optional): Filter bills by status: paid, open, overdue, void, or partially_paid. Useful for payment status filtering, accounts payable management, and status-specific reporting. Example: open. One of: `paid`, `open`, `overdue`, `void`, `partially_paid`, `unpaid`, `draft`, `pending_approval`, `approval_overdue`, `my_approvals`, `rejected`, `approved`.
- `total` (`string`, optional): Search bills by total amount. Filters bills based on the final bill amount including taxes, discounts, and adjustments. Useful for finding bills within specific price ranges or identifying high-value transactions. Example: 40.6
- `vendor_id` (`string`, optional): Filter bills by specific vendor ID. Accepts the unique identifier for a vendor to retrieve all bills associated with that particular supplier or vendor account. Example: 460000000038029
- `vendor_name` (`string`, optional): Filter bills by vendor name. Use vendor_name_startswith for prefix matching or vendor_name_contains for substring matching. Useful for finding bills from specific suppliers.

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_chart_of_account_get`

Get Account · Read-only

Get one account from the chart of accounts by ID, including its type, code and balance. Returns account_id, account_name, account_code. Use this when you have an account_id. Use chart_of_accounts_list to find accounts. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, required): Unique identifier of the account. Example: 460000000038079
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"account_id":"<account_id>","organization_id":"<organization_id>"}`

### `zohobooks_chart_of_account_transactions_list`

List Account Transactions · Read-only

List the ledger transactions posted to an account, filtered by date range or transaction type. Returns a transactions array (each with categorized_transaction_id, transaction_type, transaction_status, transaction_source, transaction_id, transaction_date). Use this to audit activity on an account. Use journals_list for manual journal entries only. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, required): ID of the Account Example: 460000000038079
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `amount` (`number`, optional): Filter account transactions for an exact amount. Example: 25
- `amount_greater_equals` (`number`, optional): Filter account transactions with an amount greater than or equal to the specified value. Example: 25
- `amount_greater_than` (`number`, optional): Filter account transactions with an amount greater than the specified value. Example: 25
- `amount_less_equals` (`number`, optional): Filter account transactions with an amount less than or equal to the specified value. Example: 25
- `amount_less_than` (`number`, optional): Filter account transactions with an amount less than the specified value. Example: 25
- `date` (`string`, optional): Filter account transactions for an exact transaction date. Returns transactions on the specified date. Use yyyy-mm-dd format. Example: 2013-10-04
- `date_after` (`string`, optional): Filter account transactions with a transaction date strictly after the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-10-04
- `date_before` (`string`, optional): Filter account transactions with a transaction date strictly before the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-10-04
- `date_end` (`string`, optional): Filter account transactions with a transaction date on or before the specified date. Useful for defining the end of a date range. Use yyyy-mm-dd format. Example: 2013-10-31
- `date_start` (`string`, optional): Filter account transactions with a transaction date on or after the specified date. Useful for defining the start of a date range. Use yyyy-mm-dd format. Example: 2013-10-01
- `filter_by` (`string`, optional): Filter transactions. Allowed Values: TransactionType.All.
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `sort_column` (`string`, optional): Sort transactions. Allowed Values: transaction_date, payee, glname, transaction_type_formatted, reconcile_status, debit_amount and credit_amount. One of: `transaction_date`, `payee`, `glname`, `transaction_type_formatted`, `reconcile_status`, `debit_amount`, `credit_amount`.
- `transaction_type` (`string`, optional): Search transactions based on the given transaction type. Allowed Values: invoice, customer_payment, bills, vendor_payment, credit_notes, creditnote_refund, expense, card_payment, purchase_or_charges, journal, deposit, refund, transfer_fund, base_currency_adjustment, opening_balance, sales_without_invoices, expense_refund, tax_refund, receipt_from_initial_debtors, owner_contribution, interest_income, other_income, owner_drawings and payment_to_initial_creditors. Example: customer_payment. One of: `invoice`, `customer_payment`, `bills`, `vendor_payment`, `credit_notes`, `creditnote_refund`, `expense`, `card_payment`, `purchase_or_charges`, `journal`, `deposit`, `refund`, `transfer_fund`, `base_currency_adjustment`, `opening_balance`, `sales_without_invoices`, `expense_refund`, `tax_refund`, `receipt_from_initial_debtors`, `owner_contribution`, `interest_income`, `other_income`, `owner_drawings`, `payment_to_initial_creditors`.

Example input: `{"account_id":"<account_id>","organization_id":"<organization_id>"}`

### `zohobooks_chart_of_accounts_list`

List Chart of Accounts · Read-only

List the accounts in the organization's chart of accounts, filtered by status or account type. Returns a chartofaccounts array (each with account_id, account_name, account_code, account_type, is_user_created, is_system_account). Use this to find account IDs for expenses, items and journals. Use chart_of_account_get for one account. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `account_code` (`string`, optional): Search by account code. Variants: account_code_contains, account_code_starts_with, account_code_ends_with.
- `account_id` (`string`, optional): Search by account ID. Variants: account_id_equal, account_id_not_equal. Example: 460000000038079
- `account_name` (`string`, optional): Search by account name. Variants: account_name_contains, account_name_starts_with, account_name_ends_with.
- `customview_id` (`string`, optional): ID of the custom view. Example: 460000000080163
- `filter_by` (`string`, optional): Filter accounts based on its account type and status. Allowed Values: AccountType.All, AccountType.Active, AccountType.Inactive, AccountType.Asset, AccountType.Liability, AccountType.Equity, AccountType.Income and AccountType.Expense. One of: `AccountType.All`, `AccountType.Active`, `AccountType.Inactive`, `AccountType.Asset`, `AccountType.Liability`, `AccountType.Equity`, `AccountType.Income`, `AccountType.Expense`.
- `last_modified_time` (`string`, optional): List accounts modified after the given date and time. Example: 2013-01-17T15:27:23+0530
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `search_text` (`string`, optional): Search accounts by account name or code.
- `showbalance` (`boolean`, optional): Boolean to get current balance of accounts.
- `sort_column` (`string`, optional): Sort accounts. Allowed Values: account_name, account_type and account_code. One of: `account_name`, `account_type`, `account_code`.

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_contact_get`

Get Contact · Read-only

Get one customer or vendor by ID, with billing and shipping addresses, contact persons, payment terms and outstanding balances. Returns a contact object with contact_id, contact_name, company_name, has_transaction, contact_type, customer_sub_type. Use this when you already have a contact_id. Use contacts_list to find a contact by name or email. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): Unique identifier of the contact. Note: This value is a set of numeric characters. Example: 460000000026049
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"contact_id":"<contact_id>","organization_id":"<organization_id>"}`

### `zohobooks_contact_person_get`

Get Contact Person · Read-only

Get one contact person of a customer or vendor by ID. Returns a contact_person object with contact_id, contact_person_id, salutation, first_name, last_name, email. Use this when you have both the contact_id and contact_person_id. Use contact_persons_list to find them. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): Unique identifier of the contact. Example: 460000000026049
- `contact_person_id` (`string`, required): Unique identifier of the contact person. Example: 460000000026051
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"contact_id":"<contact_id>","contact_person_id":"<contact_person_id>","organization_id":"<organization_id>"}`

### `zohobooks_contact_persons_list`

List Contact Persons · Read-only

List the contact persons (individual people) attached to a customer or vendor. Returns a contact_persons array (each with contact_person_id, salutation, first_name, last_name, email, phone), page_context for pagination. Use this to see who to address at a contact. Use contact_person_get for one person's full record. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): Unique identifier of the contact. Example: 460000000026049
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10

Example input: `{"contact_id":"<contact_id>","organization_id":"<organization_id>"}`

### `zohobooks_contacts_list`

List Contacts · Read-only

List customers and vendors in a Zoho Books organization, with filters for type, name, email, status and free-text search. Returns a contacts array (each with contact_id, contact_name, company_name, contact_type, status, payment_terms), page_context for pagination. Use this to browse or search contacts. Use contact_get for one contact's full record, including addresses and contact persons. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `address` (`string`, optional): Search contacts by any of the address fields. Max-length [100] Variants: address_startswith and address_contains Example: 4900 Hopyard Rd
- `company_name` (`string`, optional): Search contacts by company name. Max-length [100] Variants: company_name_startswith and company_name_contains Example: Bowman and Co
- `contact_name` (`string`, optional): Search contacts by contact name. Max-length [100] Variants: contact_name_startswith and contact_name_contains. Max-length [100] Example: Bowman and Co
- `contact_type` (`string`, optional): Search contacts by contact type. Allowed Values: customer, vendor. Example: customer. One of: `customer`, `vendor`.
- `email` (`string`, optional): Search contacts by email of the primary contact person. Max-length [100] Variants: email_startswith and email_contains Example: willsmith@bowmanfurniture.com
- `filter_by` (`string`, optional): Filter contacts by status. Allowed Values: Status.All, Status.Active, Status.Inactive, Status.Duplicate, Status.PortalEnabled, Status.PortalDisabled, Invoice.OverDue, Invoice.Unpaid, Status.CreditLimitExceed and Status.Crm. One of: `Status.All`, `Status.Active`, `Status.Inactive`, `Status.Duplicate`, `Status.PortalEnabled`, `Status.PortalDisabled`, `Invoice.OverDue`, `Invoice.Unpaid`, `Status.CreditLimitExceed`, `Status.Crm`.
- `first_name` (`string`, optional): Search contacts by first name of the primary contact person. Max-length [100] Variants: first_name_startswith and first_name_contains Example: Will
- `last_name` (`string`, optional): Search contacts by last name of the primary contact person. Max-length [100] Variants: last_name_startswith and last_name_contains Example: Smith
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `phone` (`string`, optional): Search contacts by phone number of the primary contact person. Max-length [100] Variants: phone_startswith and phone_contains Example: +1-925-921-9201
- `search_text` (`string`, optional): Search contacts by contact name or notes. Max-length [100]
- `sort_column` (`string`, optional): Sort contacts. Allowed Values: contact_name, first_name, last_name, email, outstanding_receivable_amount, created_time and last_modified_time Example: contact_name. One of: `contact_name`, `first_name`, `last_name`, `email`, `outstanding_receivable_amount`, `created_time`, `last_modified_time`.
- `zcrm_account_id` (`string`, optional): CRM Account ID for the contact. Note: This value is a set of numeric characters. Example: 460000000026049
- `zcrm_contact_id` (`string`, optional): CRM Contact ID for the contact. Note: This value is a set of numeric characters. Example: 460000000026049
- `zcrm_vendor_id` (`string`, optional): CRM Vendor ID for the contact. Note: This value is a set of numeric characters. Example: 460000000026049

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_credit_note_get`

Get Credit Note · Read-only

Get one credit note by ID, including line items, totals and remaining credit balance. Returns a creditnote object with creditnote_id, creditnote_number, date, vat_reg_no, status, customer_id. Use this when you have a creditnote_id. Use credit_notes_list to find credit notes. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `creditnote_id` (`string`, required): Unique identifier of the credit note. Example: 90300000072369
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"creditnote_id":"<creditnote_id>","organization_id":"<organization_id>"}`

### `zohobooks_credit_notes_list`

List Credit Notes · Read-only

List customer credit notes, with filters for status, customer, dates and free-text search. Returns a creditnotes object with creditnote_id, creditnote_number, status, reference_number, date, total. Use this to browse credit notes. Use credit_note_get for one credit note's line items. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `creditnote_number` (`string`, optional): Filter credit notes by specific credit note number. Use this parameter to search for a particular credit note by its unique number. Max-Length [100] Example: CN-29
- `customer_id` (`string`, optional): Filter credit notes by customer ID. Use this parameter to search for credit notes associated with a specific customer. Retrieve customer IDs from the contacts API. Example: 903000000000099
- `customer_name` (`string`, optional): Filter credit notes by customer name. Use this parameter to search for credit notes associated with a specific customer. Max-Length [100] Example: Bowman Furniture
- `date` (`string`, optional): Search credit notes by credit note date. Use yyyy-mm-dd format. Supports variants: date_start, date_end, date_before and date_after. Useful for finding credit notes within date ranges or specific time periods. Example: 2016-06-05
- `filter_by` (`string`, optional): Filter credit notes by status using predefined status values. Allowed values: Status.All, Status.Open, Status.Draft, Status.Closed, and Status.Void. Example: Status.All. One of: `Status.All`, `Status.Open`, `Status.Closed`, `Status.Void`, `Status.Draft`, `Status.Pending`, `Status.Approved`, `Status.Locked`, `Status.AvalaraSyncFailed`, `Status.TaxAutomationFailed`, `Status.MyApprovals`, `Status.Pushed`, `Status.YetToBePushed`, `Status.Failed`, `Status.CancelInitiated`, `Status.Signed`, `Status.PendingSignature`, `Status.UnsignedAll`, `Status.UnsignedDraft`, `Status.UnsignedApproved`, `Status.UnsignedSent`, `Status.BBPSYetToBePushed`, `Status.BBPSPushed`, `Status.BBPSPushFailed`, `Status.BBPSPendingApproval`, `Status.BBPSAccepted`, `Status.BBPSAcceptFailed`, `Status.BBPSRejected`, `Status.BBPSRejectFailed`, `Status.BBPSReturned`, `Status.BBPSReturnFailed`, `Type.CancellationInvoice`, `Type.DirectReturns`, `WithOutInvoiceNumber`, `ExceptionList`, `MissingAdvancedTrackingDetails`, `InconsistentList`, `Type.All`, `Type.Invoice`.
- `item_description` (`string`, optional): Search credit notes by item description. Filters credit notes based on detailed descriptions of products or services in line items. Supports item_description_startswith and item_description_contains variants. Maximum length is 100 characters. Useful for finding credit notes with specific item descriptions or technical specifications. Example: 500GB, USB 2.0 interface
- `item_id` (`string`, optional): Filter credit notes by item ID. Use this parameter to search for credit notes containing a specific item. Retrieve item IDs from the items API. Example: 90300000081501
- `item_name` (`string`, optional): Search credit notes by item name. Filters credit notes based on product or service names in credit note line items. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Useful for finding credit notes with specific products or services. Example: Desktop Units
- `last_modified_time` (`string`, optional): Search credit notes modified after a specific time. Filters credit notes based on their last modification timestamp. Use YYYY-MM-DDTHH:MM:SS-UTC format. Useful for finding recently updated credit notes or syncing data changes. Example : 2023-11-18T02:02:51-0800, 2025-19-19T02:02:51%2B0800
- `line_item_id` (`string`, optional): Filter credit notes by line item ID. Use this parameter to search for credit notes containing a specific line item within the credit note. Example: 903000006245
- `location_ids` (`string`, optional): List of location IDs to filter credit notes by their associated locations. Use this parameter to retrieve credit notes linked to specific business locations. Note: This value is a comma-separated list of numeric location IDs. Example: 460000000038080,460000000038081
- `page` (`integer`, optional): Page number for pagination. Specify which page of results to retrieve. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records per page for pagination. Controls how many credit notes are returned in each page. Example: 10
- `reference_number` (`string`, optional): Filter credit notes by their reference number. Use this parameter to search for credit notes with a specific reference number. Max-Length [100] Example: INV-384
- `search_text` (`string`, optional): Search credit notes using text search across multiple fields. Searches credit note number, customer name, and reference number. Max-length [100]
- `sort_column` (`string`, optional): Sort credit notes by specified column. Allowed values: customer_name, creditnote_number, balance, total, date, and created_time. Example: created_time. One of: `customer_name`, `creditnote_number`, `balance`, `total`, `date`, `txn_posting_date`, `created_time`, `last_modified_time`, `cf_(\w+)`.
- `status` (`string`, optional): Filter credit notes by their current status. Allowed values: open, closed, void, or draft. Example: draft. One of: `draft`, `pending_approval`, `approved`, `open`, `closed`, `void`, `rejected`, `signed`, `pending_signature`, `unsigned_all`, `unsigned_draft`, `unsigned_sent`, `unsigned_approved`.
- `tax_id` (`string`, optional): Filter credit notes by tax ID. Use this parameter to search for credit notes with a specific tax applied. Retrieve tax IDs from the taxes API. Example: 903000000000356
- `total` (`string`, optional): Search credit notes by total amount. Filters credit notes based on the final credit note amount including taxes, discounts, and adjustments. Useful for finding credit notes within specific price ranges or identifying high-value transactions. Example: 40.6

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_currencies_list`

List Currencies · Read-only

List the currencies enabled in the organization, with codes, symbols and exchange rates. Returns a currencies array (each with currency_id, currency_code, currency_name, currency_symbol, price_precision, currency_format). Use this to find currency_id values for contacts and transactions. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `filter_by` (`string`, optional): Filter currencies excluding base currency. Allowed Values: Currencies.ExcludeBaseCurrency
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_customer_payment_get`

Get Customer Payment · Read-only

Get one customer payment by ID, including the invoices it was applied to. Returns a payment object with payment_id, payment_mode, amount, amount_refunded, bank_charges, date. Use this when you have a payment_id. Use customer_payments_list to find payments. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `payment_id` (`string`, required): Unique identifier of the payment. Note: This value is a set of numeric characters. Example: 9030000079467

Example input: `{"organization_id":"<organization_id>","payment_id":"<payment_id>"}`

### `zohobooks_customer_payments_list`

List Customer Payments · Read-only

List payments received from customers, with filters for customer, payment mode, dates and free-text search. Returns a customer_payments array (each with payment_id, payment_number, invoice_number, date, payment_mode, amount), page_context. Use this to browse payments received. Use invoice_payments_list for the payments on one invoice. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `amount` (`number`, optional): Search payments by payment amount. Variants: amount_less_than, amount_less_equals, amount_greater_than and amount_greater_equals Example: 450
- `customer_id` (`string`, optional): Customer ID of the customer involved in the payment. Note: This value is a set of numeric characters. Example: 903000000000099
- `customer_name` (`string`, optional): Search payments by customer name. Variants: customer_name_startswith and customer_name_contains. Max-len [100] Example: Bowman Furniture
- `date` (`string`, optional): Search payments by payment date. Example: 2016-06-05
- `filter_by` (`string`, optional): Filter payments by mode.Allowed Values: PaymentMode.All, PaymentMode.Check, PaymentMode.Cash, PaymentMode.BankTransfer, PaymentMode.Paypal, PaymentMode.CreditCard, PaymentMode.GoogleCheckout, PaymentMode.Credit, PaymentMode.Authorizenet, PaymentMode.BankRemittance, PaymentMode.Payflowpro, PaymentMode.Stripe, PaymentMode.TwoCheckout, PaymentMode.Braintree and PaymentMode.Others. One of: `PaymentMode.All`, `PaymentMode.Check`, `PaymentMode.Cash`, `PaymentMode.BankTransfer`, `PaymentMode.Paypal`, `PaymentMode.CreditCard`, `PaymentMode.GoogleCheckout`, `PaymentMode.Credit`, `PaymentMode.Authorizenet`, `PaymentMode.BankRemittance`, `PaymentMode.Payflowpro`, `PaymentMode.Stripe`, `PaymentMode.TwoCheckout`, `PaymentMode.Braintree`, `PaymentMode.Others`.
- `notes` (`string`, optional): Search payments by customer notes. Variants: notes_startswith and notes_contains
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `payment_mode` (`string`, optional): Search payments by payment mode. Variants: payment_mode_startswith and payment_mode_contains Example: cash
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `reference_number` (`string`, optional): Search payments by reference number. Variants: reference_number_startswith and reference_number_contains. Max-len [100] Example: INV-384
- `search_text` (`string`, optional): Search payments by reference number or customer name or payment description. Max-length [100]
- `sort_column` (`string`, optional): Sort the list of payments by the specified column. Example: created_time

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_estimate_get`

Get Estimate · Read-only

Get one estimate (quote) by ID, including line items, taxes, totals and status. Returns an estimate object with estimate_id, estimate_number, date, reference_number, status, customer_id. Use this when you have an estimate_id. Use estimates_list to find estimates. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `estimate_id` (`string`, required): Unique identifier of the estimate. Note: This value is a set of numeric characters. Example: 982000000567011
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"estimate_id":"<estimate_id>","organization_id":"<organization_id>"}`

### `zohobooks_estimates_list`

List Estimates · Read-only

List estimates (quotes) in a Zoho Books organization, with filters for status, customer, dates and free-text search. Returns an estimates array (each with estimate_id, customer_name, customer_id, status, estimate_number, reference_number), a page_context array (each with page, per_page, has_more_page, report_name, applied_filter, sort_column). Use this to browse or search quotes. Use estimate_get for one estimate's line items. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `custom_field` (`string`, optional): Search estimates by custom fields.Variants: custom_field_startswith and custom_field_contains Example: cf_department
- `customer_id` (`string`, optional): Filter or search estimates by the unique customer ID. Use the customer_id returned by the Contacts API for the same organization. This helps you retrieve all estimates linked to a specific customer. Note: This value is a set of numeric characters. Example: 982000000567001
- `customer_name` (`string`, optional): Search estimates by customer name. Filters estimates based on the business or individual name associated with the estimate. Maximum length is 100 characters. Useful for finding all estimates for a specific customer or generating customer reports. Example: Bowman & Co
- `date` (`string`, optional): Search estimates by estimate date. Filters estimates based on the date they were created. Use yyyy-mm-dd format. Supports variants: date_start, date_end, date_before and date_after. Useful for finding estimates within date ranges or specific time periods. Example: 2013-11-18
- `estimate_number` (`string`, optional): Filter or search estimates by their unique estimate number. Supports variants such as estimate_number_startswith and estimate_number_contains for partial matches. Useful for quickly locating a specific estimate or a group of estimates with similar numbering. Example: EST-00002
- `expiry_date` (`string`, optional): The date of expiration of the estimates Example: 2013-11-30
- `expiry_date_after` (`string`, optional): Filter estimates with an expiry date strictly after the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `expiry_date_before` (`string`, optional): Filter estimates with an expiry date strictly before the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `expiry_date_end` (`string`, optional): Filter estimates with an expiry date on or before the specified date. Useful for defining the end of a date range. Use yyyy-mm-dd format. Example: 2013-11-30
- `expiry_date_start` (`string`, optional): Filter estimates with an expiry date on or after the specified date. Useful for defining the start of a date range. Use yyyy-mm-dd format. Example: 2013-11-01
- `filter_by` (`string`, optional): Filter estimates by status.Allowed Values Status.All, Status.Sent, Status.Draft, Status.Invoiced, Status.Accepted, Status.Declined and Status.Expired Example: Status.All. One of: `Status.All`, `Status.Sent`, `Status.Pending`, `Status.Approved`, `Status.Draft`, `Status.Invoiced`, `Status.Accepted`, `Status.Declined`, `Status.Expired`, `Status.Viewed`, `Status.AvalaraSyncFailed`, `Status.TaxAutomationFailed`, `Status.MyApprovals`, `WithAttachment`, `WithoutAttachment`, `ExceptionList`, `EmailScheduled`, `Type.NewSubscription`, `Type.Invoice`.
- `item_description` (`string`, optional): Search estimates by item description. Filters estimates based on detailed descriptions of products or services in line items. Supports item_description_startswith and item_description_contains variants. Maximum length is 100 characters. Useful for finding estimates with specific item descriptions or technical specifications. Example: 500GB, USB 2.0 interface
- `item_id` (`string`, optional): Search estimates by item ID. Filters estimates based on the unique identifier of specific products or services in line items. Use the GET `/items` API to find available item IDs. Useful for finding all estimates containing a specific product or service. Note: This value is a set of numeric characters.
- `item_name` (`string`, optional): Search estimates by item name. Filters estimates based on product or service names in estimate line items. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Useful for finding estimates with specific products or services. Example: Desktop Units
- `last_modified_time` (`string`, optional): Search estimates modified after a specific time. Filters estimates based on their last modification timestamp. Use YYYY-MM-DDTHH:MM:SS-UTC format. Useful for finding recently updated estimates or syncing data changes. Example : 2023-11-18T02:02:51-0800, 2025-19-19T02:02:51%2B0800
- `location_ids` (`string`, optional): List of location IDs to filter estimates by their associated locations. Use this parameter to retrieve estimates linked to specific business locations. Note: This value is a comma-separated list of numeric location IDs. Example: 460000000038080,460000000038081
- `page` (`integer`, optional): Page number to be fetched from the paginated results. Default value is 1. Use this parameter along with per_page to navigate through large sets of estimate data. Useful for implementing pagination in your application. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `reference_number` (`string`, optional): Search estimates by reference number. Filters estimates based on external reference identifiers like purchase order numbers, contract numbers, or project codes. Useful for finding estimates associated with specific projects or business transactions. Example: PO-12345
- `search_text` (`string`, optional): Perform a keyword search across estimate number, reference number, or customer name. Use this parameter to quickly find estimates that match any of these fields, making it easier to locate relevant records with minimal input.
- `sort_column` (`string`, optional): Sort estimates. Allowed Values customer_name, estimate_number, date, total and created_time Example: created_time. One of: `customer_name`, `estimate_number`, `date`, `total`, `created_time`, `last_modified_time`, `cf_(\w+)`.
- `status` (`string`, optional): Search estimates by status.Allowed Valuesdraft, sent, invoiced , accepted, declined and expired Example: draft. One of: `draft`, `pending_approval`, `approved`, `sent`, `invoiced`, `accepted`, `declined`, `expired`, `viewed`, `signed`, `rejected`, `partially_invoiced`, `pending_signature`.
- `total` (`string`, optional): Search estimates by total amount. Filters estimates based on the final estimate amount including taxes, discounts, and adjustments. Useful for finding estimates within specific price ranges or identifying high-value transactions. Example: 40.6
- `zcrm_potential_id` (`string`, optional): Potential ID of a Deal in CRM. Note: This value is a set of numeric characters. Example: 460000000026049

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_expense_get`

Get Expense · Read-only

Get one expense by ID, including amount, account, tax, vendor and billable status. Returns an expense object with expense_id, transaction_id, transaction_type, paid_through_account_name, vat_reg_no, reverse_charge_tax_id. Use this when you have an expense_id. Use expenses_list to find expenses. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `expense_id` (`string`, required): Unique identifier of the expense. Note: This value is a set of numeric characters. Example: 982000000030049
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"expense_id":"<expense_id>","organization_id":"<organization_id>"}`

### `zohobooks_expenses_list`

List Expenses · Read-only

List expenses, with filters for status, account, customer, vendor, dates and free-text search. Returns an expenses array (each with expense_id, date, account_name, description, currency_id, currency_code), a page_context array (each with sort_column, filter_by, search_text, applied_filter, page, per_page). Use this to browse expenses. Use expense_get for one expense's full details. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `account_name` (`string`, optional): Search expenses by expense account name. Variants account_name_startswith and account_name_contains. Max-length [100] Example: Rent
- `amount` (`number`, optional): Search expenses by amount. Variants: amount_less_than, amount_less_equals, amount_greater_than and amount_greater_than Example: 112.5
- `customer_id` (`string`, optional): ID of the expense account. Note: This value is a set of numeric characters. Example: 982000000567001
- `customer_name` (`string`, optional): Search expenses by customer name. Variants: customer_name_startswith and customer_name_contains. Max-length [100] Example: Bowman & Co
- `date` (`string`, optional): Search expenses by expense date. Variants date_start, date_end, date_before and date_after. Format [yyyy-mm-dd] Example: 2013-11-18 00:00:00+00:00
- `description` (`string`, optional): Search expenses by description.Variants description_startswith and description_contains. Max-length [100] Example: Marketing
- `filter_by` (`string`, optional): Filter expenses by expense status. Allowed Values Status.All, Status.Billable, Status.Nonbillable, Status.Reimbursed, Status.Invoicedand Status.Unbilled Example: Status.Billable. One of: `Status.All`, `Status.Billable`, `Status.Nonbillable`, `Status.Reimbursed`, `Status.Invoiced`, `Status.Unbilled`.
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `paid_through_account_id` (`string`, optional): Search expenses by paid through account id. Note: This value is a set of numeric characters. Example: 982000000567250
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `project_id` (`string`, optional): Search expenses by specific project ID. Accepts the unique identifier for a project to retrieve all expenses associated with that particular project. Example: 460000000038030
- `recurring_expense_id` (`string`, optional): Search expenses by recurring expense id. Note: This value is a set of numeric characters. Example: 982000000000190
- `reference_number` (`string`, optional): Search expenses by reference number. Variants reference_number_startswith and reference_number_contains. Max-length [100]
- `search_text` (`string`, optional): Search expenses by account name or description or customer name or vendor name. Max-length [100] Example: Rent
- `sort_column` (`string`, optional): Sort expenses.Allowed Values date, account_name, total, bcy_total, reference_number, customer_name and created_time Example: total. One of: `date`, `account_name`, `total`, `bcy_total`, `reference_number`, `customer_name`, `created_time`.
- `status` (`string`, optional): Search expenses by expense status. Allowed Values unbilled, invoiced, reimbursed, non-billable and billable Example: unbilled. One of: `unbilled`, `invoiced`, `reimbursed`, `non-billable`, `billable`.
- `vendor_id` (`string`, optional): ID of the vendor the expense is made. Note: This value is a set of numeric characters.
- `vendor_name` (`string`, optional): Search expenses by vendor name. Variants: vendor_name_startswith and vendor_name_contains.

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_invoice_comments_list`

List Invoice Comments · Read-only

List the comments and history entries on an invoice. Returns a comments array (each with comment_id, invoice_id, description, commented_by_id, commented_by, comment_type). Use this to read an invoice's activity. Use invoice_comment_add to add a comment. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoice_get`

Get Invoice · Read-only

Get one invoice by ID, including line items, taxes, totals, balance due and payment status. Returns an invoice object with invoice_id, ach_payment_initiated, invoice_number, vat_reg_no, date, status. Use this when you have an invoice_id. Use invoices_list to find invoices by customer, status or number. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoice_payments_list`

List Invoice Payments · Read-only

List the customer payments recorded against one invoice. Returns a payments array (each with payment_id, payment_number, invoice_id, invoice_payment_id, payment_mode, description). Use this to see how an invoice was paid. Use customer_payments_list to browse all payments received. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoices_list`

List Invoices · Read-only

List invoices in a Zoho Books organization, with filters for status, customer, dates, invoice number and free-text search. Returns an invoices array (each with invoice_id, ach_payment_initiated, customer_name, customer_id, status, invoice_number), a page_context array (each with page, per_page, has_more_page, report_name, applied_filter, sort_column). Use this to browse or search invoices. Use invoice_get for one invoice's line items and totals. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `balance` (`string`, optional): Search invoices by outstanding balance. Filters invoices based on the remaining unpaid amount owed by the customer. Useful for finding overdue invoices, tracking receivables, or generating aging reports. Example: 40.6
- `created_date` (`string`, optional): Search invoices by creation date. Filters invoices based on the date they were created. Use yyyy-mm-dd format. Supports variants: created_date_start, created_date_end, created_date_before and created_date_after. Useful for finding invoices created within specific time periods or date ranges. Example: 2013-11-17
- `created_date_end` (`string`, optional): Filter invoices with invoice created date on or before the specified date. Useful for defining the end of a date range. Use yyyy-mm-dd format. Example: 2013-11-30
- `created_date_start` (`string`, optional): Filter invoices with invoice created date on or after the specified date. Useful for defining the start of a date range. Use yyyy-mm-dd format. Example: 2013-11-01
- `custom_field` (`string`, optional): Search invoices by custom fields.Variants: custom_field_startswith and custom_field_contains
- `customer_id` (`string`, optional): Search invoices by customer ID. Filters invoices based on the unique identifier of the customer for whom the invoice was created. Use the customer ID returned by the Contacts API to find all invoices for a specific customer. Note: This value is a set of numeric characters. Example: 982000000567001
- `customer_name` (`string`, optional): Search invoices by customer name. Filters invoices based on the business or individual name associated with the invoice. Maximum length is 100 characters. Useful for finding all invoices for a specific customer or generating customer reports. Example: Bowman & Co
- `date` (`string`, optional): Filter invoices for an exact invoice date. Returns invoices created on the specified date. Use yyyy-mm-dd format. Example: 2013-11-17
- `date_after` (`string`, optional): Filter invoices with an invoice date strictly after the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `date_before` (`string`, optional): Filter invoices with an invoice date strictly before the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `date_end` (`string`, optional): Filter invoices with an invoice date on or before the specified date. Useful for defining the end of a date range. Use yyyy-mm-dd format. Example: 2013-11-30
- `date_start` (`string`, optional): Filter invoices with an invoice date on or after the specified date. Useful for defining the start of a date range. Use yyyy-mm-dd format. Example: 2013-11-01
- `due_date` (`string`, optional): Search invoices by due date. Filters invoices based on the payment due date. Use yyyy-mm-dd format. Supports variants: due_date_start, due_date_end, due_date_before and due_date_after. Useful for finding overdue invoices or invoices due within specific periods. Example: 2013-12-03
- `due_date_after` (`string`, optional): Filter invoices with due date strictly after the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `due_date_before` (`string`, optional): Filter invoices with due date strictly before the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `due_date_end` (`string`, optional): Filter invoices with due date on or before the specified date. Useful for defining the end of a date range. Use yyyy-mm-dd format. Example: 2013-11-30
- `due_date_start` (`string`, optional): Filter invoices with due date on or after the specified date. Useful for defining the start of a date range. Use yyyy-mm-dd format. Example: 2013-11-01
- `email` (`string`, optional): Search invoices by customer email address. Filters invoices based on the email address of the customer or contact person. Maximum length is 100 characters. Useful for finding invoices for specific customers or generating customer segment reports.
- `filter_by` (`string`, optional): Filter invoices by status or payment expected date. Use Status.* for status-based filtering (e.g., Status.Sent, Status.Paid) or Date.PaymentExpectedDate for date-based filtering. Provides advanced filtering options beyond basic search parameters.
- `invoice_number` (`string`, optional): Search invoices by invoice number. Filters invoices based on their unique identifier. Supports invoice_number_startswith and invoice_number_contains variants. Maximum length is 100 characters. Useful for finding specific invoices or invoices with similar numbering patterns. Example: INV-00003
- `item_description` (`string`, optional): Search invoices by item description. Filters invoices based on detailed descriptions of products or services in line items. Supports item_description_startswith and item_description_contains variants. Maximum length is 100 characters. Useful for finding invoices with specific item descriptions or technical specifications.
- `item_id` (`string`, optional): Search invoices by item ID. Filters invoices based on the unique identifier of specific products or services in line items. Use the GET `/items` API to find available item IDs. Useful for finding all invoices containing a specific product or service. Note: This value is a set of numeric characters. Example: 982000000030049
- `item_name` (`string`, optional): Search invoices by item name. Filters invoices based on product or service names in invoice line items. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Useful for finding invoices with specific products or services. Example: Desktop Units
- `last_modified_time` (`string`, optional): Search invoices modified after a specific time. Filters invoices based on their last modification timestamp. Use YYYY-MM-DDTHH:MM:SS-UTC format. Useful for finding recently updated invoices or syncing data changes. Example : 2023-11-18T02:02:51-0800, 2025-19-19T02:02:51%2B0800
- `page` (`integer`, optional): Page number to be fetched from the paginated results. Default value is 1. Use this parameter along with per_page to navigate through large sets of invoice data. Useful for implementing pagination in your application. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Use this parameter to control the size of each page of results. Maximum value is 200. Useful for optimizing data transfer and improving application performance. Example: 10
- `recurring_invoice_id` (`string`, optional): ID of the recurring invoice from which the invoice is created. Note: This value is a set of numeric characters.
- `reference_number` (`string`, optional): Search invoices by reference number. Filters invoices based on external reference identifiers like purchase order numbers, contract numbers, or project codes. Useful for finding invoices associated with specific projects or business transactions.
- `response_option` (`integer`, optional): To get desired response format. There are 5 formats of responses: 0 (Includes all invoices), 1 (Includes all invoices, the number of invoices, and the sum of their total and balance amounts), 2 (Includes only the number of invoices), 3 (Includes the number of invoices and the sum of their total and balance amounts), and 4 (Includes all invoices and the sum of their total and balance amounts). Example: 2
- `search_text` (`string`, optional): Search invoices by invoice number, purchase order, or customer name. This parameter performs a general search across multiple invoice fields. Maximum length is 100 characters. Useful for quick searches when you know part of the invoice information but are unsure which specific field to search.
- `sort_column` (`string`, optional): Sort invoices by specific column. Allowed values: customer_name, invoice_number, date, due_date, total, balance and created_time. Use this parameter to organize invoice results in a specific order for better data analysis and reporting. Example: created_time. One of: `customer_name`, `invoice_number`, `date`, `due_date`, `total`, `balance`, `created_time`.
- `status` (`string`, optional): Search invoices by status. Filters invoices based on their current state in the billing workflow. Allowed values: sent, draft, overdue, paid, void, unpaid, partially_paid and viewed. Useful for finding invoices in specific stages of the billing process. Example: draft. One of: `sent`, `draft`, `overdue`, `paid`, `void`, `unpaid`, `partially_paid`, `viewed`.
- `total` (`string`, optional): Search invoices by total amount. Filters invoices based on the final invoice amount including taxes, discounts, and adjustments. Useful for finding invoices within specific price ranges or identifying high-value transactions. Example: 40.6
- `zcrm_potential_id` (`string`, optional): Search invoices by CRM potential ID. This parameter allows you to find invoices associated with a specific deal or opportunity in your Zoho CRM system. Use the potential ID from your CRM to link invoices to sales opportunities and track revenue from specific deals. Note: This value is a set of numeric characters. Example: 460000000026049

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_item_get`

Get Item · Read-only

Get one item (product or service) by ID, including its rate, description, tax and account settings. Returns an item object with item_id, name, status, description, rate, unit. Use this when you have an item_id. Use items_list to find items. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, required): Unique identifier of the item. Note: This value is a set of numeric characters. Example: 45667789900
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"item_id":"<item_id>","organization_id":"<organization_id>"}`

### `zohobooks_items_list`

List Items · Read-only

List products and services (items) in a Zoho Books organization, with filters for name, SKU, status and free-text search. Returns an items array (each with item_id, name, status, description, rate, unit), page_context for pagination. Use this to find item IDs for invoice or bill line items. Use item_get for one item's full details. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `account_id` (`string`, optional): ID of the account to which the item has to be associated with. Note: This value is a set of numeric characters.
- `description` (`string`, optional): Search items by description. Max-length [100]. Variants: description_startswith and description_contains Example: 500GB
- `description_contains` (`string`, optional): Search items whose description contains the specified value. Maximum length allowed is 100 characters. Example: 500GB
- `description_startswith` (`string`, optional): Search items whose description starts with the specified value. Maximum length allowed is 100 characters. Example: 500GB
- `filter_by` (`string`, optional): Filter items by status. Allowed Values: Status.All, Status.Active and Status.Inactive. One of: `Status.All`, `Status.Active`, `Status.Inactive`.
- `name` (`string`, optional): Search items by name. Max-length [100]. Variants: name_startswith and name_contains Example: Hard Drive
- `name_contains` (`string`, optional): Search items whose name contains the specified value. Maximum length allowed is 100 characters. Example: Hard Drive
- `name_startswith` (`string`, optional): Search items whose name starts with the specified value. Maximum length allowed is 100 characters. Example: Hard Drive
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `rate` (`string`, optional): Search items by rate. Variants: rate_less_than, rate_less_equals, rate_greater_than and rate_greater_equals Example: 120
- `rate_greater_equals` (`string`, optional): Search items whose rate is greater than or equal to the specified value. Example: 120
- `rate_greater_than` (`string`, optional): Search items whose rate is greater than the specified value. Example: 120
- `rate_less_equals` (`string`, optional): Search items whose rate is less than or equal to the specified value. Example: 120
- `rate_less_than` (`string`, optional): Search items whose rate is less than the specified value. Example: 120
- `search_text` (`string`, optional): Search items by name or description. Max-length [100]
- `sort_column` (`string`, optional): Sort items. Allowed Values: name, rate and tax_name. One of: `name`, `rate`, `tax_name`.
- `tax_id` (`string`, optional): Search items by tax id. Note: This value is a set of numeric characters. Example: 982000000037049
- `tax_name` (`string`, optional): Search items by tax name. Max-length [100] Example: Sales Tax

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_journal_get`

Get Journal · Read-only

Get one manual journal by ID, including its debit and credit line items. Returns a journal object with journal_id, entry_number, reference_number, notes, currency_id, currency_code. Use this when you have a journal_id. Use journals_list to find journals. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `journal_id` (`string`, required): Unique identifier of the journal. Example: 460000000038001
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"journal_id":"<journal_id>","organization_id":"<organization_id>"}`

### `zohobooks_journals_list`

List Journals · Read-only

List manual journal entries, with filters for entry number, reference, dates and free-text search. Returns a journals array (each with journal_id, journal_date, entry_number, reference_number, currency_id, notes). Use this to browse journals. Use journal_get for one journal's debit and credit lines. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `account_code` (`string`, optional): Search journals by account code.
- `account_id` (`string`, optional): Filter journals by account ID.
- `branch_ids` (`string`, optional): Comma separated branch IDs. Maximum of 200.
- `currency` (`string`, optional): Filter by currency ID.
- `customer_id` (`string`, optional): Search Journals using Customer ID
- `customview_id` (`string`, optional): ID of the custom view.
- `date` (`string`, optional): Search journals by journal date. Variants: date_start, date_end, date_before and date_after
- `entry_number` (`string`, optional): Search journals by journal entry number. Variants: entry_number_startswith and entry_number_contains Example: 1
- `filter_by` (`string`, optional): Filter journals by journal date. Allowed Values: JournalDate.All, JournalDate.Today, JournalDate.ThisWeek, JournalDate.ThisMonth, JournalDate.ThisQuarter and JournalDate.ThisYear. One of: `JournalDate.All`, `JournalDate.Today`, `JournalDate.ThisWeek`, `JournalDate.ThisMonth`, `JournalDate.ThisQuarter`, `JournalDate.ThisYear`.
- `journal_entity_type` (`string`, optional): Filter by journal entity type. Allowed Values: journal, period_end_journal, consolidation_journal, consolidation_adjustment_journal, elimination_journal and intercompany_journal. One of: `journal`, `period_end_journal`, `consolidation_journal`, `consolidation_adjustment_journal`, `elimination_journal`, `intercompany_journal`.
- `journal_ids` (`string`, optional): Comma separated journal IDs. Maximum of 200.
- `journal_type` (`string`, optional): Filter journals by journal type.
- `last_modified_time` (`string`, optional): Search the journals using Last Modified Time Example: 2013-09-05T17:13:31+0530
- `location_ids` (`string`, optional): Comma separated location IDs. Maximum of 200.
- `notes` (`string`, optional): Search journals by journal notes. Variants: notes_startswith and notes_contains Example: Loan repayment
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `period_closure_id` (`string`, optional): Filter by period closure ID.
- `project_id` (`string`, optional): Filter by project ID.
- `reference_number` (`string`, optional): Search journals by journal reference number. Variants: reference_number_startswith and reference_number_contains Example: 7355
- `search_text` (`string`, optional): Search journals by text.
- `sort_column` (`string`, optional): Sort journal list. Allowed Values: journal_date, entry_number, reference_number, total and last_modified_time. Example: journal_date. One of: `journal_date`, `entry_number`, `reference_number`, `total`, `last_modified_time`.
- `status` (`string`, optional): Filter journals by status. Allowed Values: draft, published, approved, submitted and rejected. One of: `draft`, `published`, `approved`, `submitted`, `rejected`.
- `tax_authority_id` (`string`, optional): Filter by tax authority ID.
- `tax_exemption_id` (`string`, optional): Filter by tax exemption ID.
- `tax_id` (`string`, optional): Filter by tax ID.
- `total` (`number`, optional): Search journals by journal total. Variants: total_less_than, total_less_equals, total_greater_than and total_greater_equals Example: 5000
- `vendor_id` (`string`, optional): Search the journals using Vendor ID

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_organization_get`

Get Organization · Read-only

Get the details of one Zoho Books organization, including its currency, time zone, fiscal year and address. Returns an organization object with organization_id, name, is_default_org, account_created_date, time_zone, language_code. Use this to read one organization's settings. Use organizations_list to discover organization IDs.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): Unique identifier of the organization. Note: This value is a set of numeric characters. Example: 10229182

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_organizations_list`

List Organizations · Read-only

List the Zoho Books organizations the connected user belongs to. Returns an organizations array (each with organization_id, name, contact_name, email, is_default_org, plan_type). Use this first to find the organization_id every other Zoho Books tool requires. Use organization_get for one organization's full settings.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `zohobooks_project_get`

Get Project · Read-only

Get one project by ID, including its customer, billing method, budget, tasks and users. Returns a project object with project_id, project_name, customer_id, customer_name, currency_code, description. Use this when you have a project_id. Use projects_list to find projects. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `project_id` (`string`, required): Unique identifier of the project. Example: 460000000044019

Example input: `{"organization_id":"<organization_id>","project_id":"<project_id>"}`

### `zohobooks_project_tasks_list`

List Project Tasks · Read-only

List the tasks in a project. Returns a tasks array (each with project_id, task_id, currency_id, customer_id, task_name, project_name), page_context for pagination. Use this to find task IDs for time entries. Use project_task_add to add a task. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `project_id` (`string`, required): Unique identifier of the project. Example: 90300000072369
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10

Example input: `{"organization_id":"<organization_id>","project_id":"<project_id>"}`

### `zohobooks_projects_list`

List Projects · Read-only

List projects, with filters for status, customer and free-text search. Returns a projects array (each with project_id, project_name, customer_id, customer_name, description, status), a page_context array (each with page, per_page, report_name, has_more_page, sort_order, sort_column). Use this to browse projects. Use project_get for one project's billing setup and budget. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `customer_id` (`string`, optional): Search projects by customer id. Example: 460000000044001
- `filter_by` (`string`, optional): Filter projects by any status. Allowed Values: Status.All, Status.Active and Status.Inactive Example: Status.All. One of: `Status.All`, `Status.Active`, `Status.Inactive`.
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `sort_column` (`string`, optional): Sort projects. Allowed Values: project_name, customer_name, rate and created_time Example: created_time. One of: `project_name`, `customer_name`, `rate`, `created_time`.

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_purchase_order_get`

Get Purchase Order · Read-only

Get one purchase order by ID, including line items, totals and billing status. Returns a purchaseorder object with purchaseorder_id, documents, pricebook_id, pricebook_name, purchaseorder_number, date. Use this when you have a purchaseorder_id. Use purchase_orders_list to find purchase orders. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `purchaseorder_id` (`string`, required): Unique identifier of the purchase order. Note: This value is a set of numeric characters. Example: 460000000062001

Example input: `{"organization_id":"<organization_id>","purchaseorder_id":"<purchaseorder_id>"}`

### `zohobooks_purchase_orders_list`

List Purchase Orders · Read-only

List purchase orders, with filters for status, vendor, dates and free-text search. Returns a purchaseorders array (each with purchaseorder_id, vendor_id, vendor_name, status, purchaseorder_number, reference_number). Use this to browse purchase orders. Use purchase_order_get for one order's line items. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `created_date` (`string`, optional): Search purchase orders by creation date. Filters purchase orders based on the date they were created. Use yyyy-mm-dd format. Supports variants: created_date_start, created_date_end. Useful for finding purchase orders created within specific time periods or date ranges. Example: 2013-11-17
- `custom_field` (`string`, optional): Search purchase order by purchase order's custom field. Variants: custom_field_startswith, custom_field_contains
- `date` (`string`, optional): Search purchase orders by creation date. Use YYYY-MM-DD format for exact date matching. Supports variants: date_start, date_end, date_before and date_after. Useful for finding purchase orders within date ranges or specific time periods. Example: 2014-02-10
- `filter_by` (`string`, optional): Filter purchase order by status. Allowed values: Status.All, Status.Draft, Status.Open, Status.Billed, Status.Cancelled. Example: Bulk status filtering for reporting. One of: `Status.All`, `Status.Draft`, `Status.Issued`, `Status.Billed`, `Status.PartiallyBilled`, `Status.BilledNotReceived`, `Status.Received`, `Status.ReceivedNotBilled`, `Status.PartiallyReceived`, `Status.Cancelled`, `Status.DropShipped`, `Status.BackOrdered`, `Status.ReplenishedOrder`, `Status.Closed`, `Status.UnbilledBackOrder`, `Status.ToBeReceived`, `Status.Pending`, `Status.Approved`, `Status.ApprovalOverdue`, `Status.MyApprovals`, `Status.Accepted`, `Status.CancelledByVendor`, `Status.CancelledByUser`, `ExceptionList`.
- `item_description` (`string`, optional): Search purchase orders by item description. Filters purchase orders based on detailed descriptions of products or services in line items. Supports item_description_startswith and item_description_contains variants. Maximum length is 100 characters. Useful for finding purchase orders with specific item descriptions or technical specifications. Example: 500GB, USB 2.0 interface
- `item_id` (`string`, optional): Search purchase orders by item ID. Use the unique identifier of the specific item. Example: Locate all POs containing particular item. Note: This value is a set of numeric characters.
- `item_name` (`string`, optional): Search purchase orders by item name. Filters purchase orders based on product or service names in purchase order line items. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Useful for finding purchase orders with specific products or services. Example: Desktop Units
- `last_modified_time` (`string`, optional): Search purchase orders modified after a specific time. Filters purchase orders based on their last modification timestamp. Use YYYY-MM-DDTHH:MM:SS-UTC format. Useful for finding recently updated purchase orders or syncing data changes. Example : 2023-11-18T02:02:51-0800, 2025-19-19T02:02:51%2B0800
- `location_ids` (`string`, optional): List of location IDs to filter purchase orders by their associated locations. Use this parameter to retrieve purchase orders linked to specific business locations. Note: This value is a comma-separated list of numeric location IDs. Example: 460000000038080,460000000038081
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `purchaseorder_number` (`string`, optional): Search purchase order by purchase order number. Variants: purchaseorder_number_startswith and purchaseorder_number_contains. Example: Locate specific PO by number or partial match.
- `reference_number` (`string`, optional): Search purchase order by reference number. Variants: reference_number_startswith and reference_number_contains. Example: Monitor external vendor order numbers.
- `search_text` (`string`, optional): Search purchase order by number, reference, or vendor name. General search across multiple fields. Example: Quick PO lookup without specific field.
- `sort_column` (`string`, optional): Sort purchase orders by column. Allowed values: vendor_name, purchaseorder_number, date, delivery_date, total, created_time. Example: Organize results for analysis. One of: `vendor_name`, `purchaseorder_number`, `date`, `delivery_date`, `expected_delivery_date`, `total`, `created_time`, `last_modified_time`.
- `status` (`string`, optional): Search purchase order by status. Allowed values: draft, open, billed, cancelled. Example: Filter POs by current workflow state. One of: `draft`, `pending_approval`, `approval_overdue`, `approved`, `rejected`, `open`, `billed`, `billed_not_received`, `cancelled`, `partially_billed`, `issued`, `partially_received`, `received`, `received_not_billed`, `manually_received`, `drop_shipped`, `closed`, `accepted`, `signed`, `pending_signature`, `to_be_received`, `to_be_billed`, `in_transit`.
- `total` (`string`, optional): Search purchase orders by total amount. Filters purchase orders based on the final purchase order amount including taxes, discounts, and adjustments. Useful for finding purchase orders within specific price ranges or identifying high-value transactions. Example: 40.6
- `vendor_id` (`string`, optional): Search purchase order by vendor ID. Use the unique identifier of the vendor to filter purchase orders. Example: Group POs by specific vendor. Note: This value is a set of numeric characters.
- `vendor_name` (`string`, optional): Search purchase order by vendor name. Variants: vendor_name_startswith and vendor_name_contains

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_recurring_invoice_get`

Get Recurring Invoice · Read-only

Get one recurring invoice profile by ID, including its schedule, line items and next invoice date. Returns a recurring_invoice object with recurring_invoice_id, recurrence_name, reference_number, customer_name, customer_id, company_name, page_context for pagination. Use this when you have a recurring_invoice_id. Use recurring_invoices_list to find profiles. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `recurring_invoice_id` (`string`, required): Unique identifier of the recurring invoice. Example: 90300000072369

Example input: `{"organization_id":"<organization_id>","recurring_invoice_id":"<recurring_invoice_id>"}`

### `zohobooks_recurring_invoices_list`

List Recurring Invoices · Read-only

List recurring invoice profiles, with filters for status, customer and free-text search. Returns a recurring_invoices array (each with recurring_invoice_id, recurrence_name, customer_name, customer_id, currency_id, currency_code), page_context for pagination. Use this to browse recurring billing. Use recurring_invoice_get for one profile. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `customer_id` (`string`, optional): Customer ID of the customer for whom the recurring invoice is raised. Example: 903000000000099
- `customer_name` (`string`, optional): Name of the customer to whom the recurring invoice is raised. Example: John Smith
- `end_date` (`string`, optional): The date on which the recurring invoice expires. Example: 2017-06-12
- `filter_by` (`string`, optional): Filter Recurring invoices by any status or payment expected date.Allowed Values: Status.All, Status.Active, Status.Stopped, Status.Expired. One of: `Status.All`, `Status.Active`, `Status.Stopped`, `Status.Expired`.
- `item_description` (`string`, optional): Search recurring invoices by item description. Variants: item_description_startswith and item_description_contains.
- `item_id` (`string`, optional): Unique string generated for the item for which invoice is to be sent. Example: 90300000081501
- `item_name` (`string`, optional): Search recurring invoices by item name. Variants: item_name_startswith and profileitemname_contains.
- `line_item_id` (`string`, optional): The line item id Example: 982000000567021
- `notes` (`string`, optional): A short note for the recurring invoice. Example: Offer for the referral
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `recurrence_name` (`string`, optional): Unique name for the recurring profile given by the user. Max-length [100] Example: MonthlyInvoice
- `search_text` (`string`, optional): Search invoices by invoice number or purchase order or customer name. Max-length [100]
- `sort_column` (`string`, optional): Column used to sort the recurring invoices list. Example: created_time
- `start_date` (`string`, optional): The date on which the recurring invoice starts. Example: 2016-06-12
- `status` (`string`, optional): Status of the recurring invoice. This can be active, stopped or expired. Example: active
- `tax_id` (`string`, optional): ID of the tax or tax group associated to the recurring invoice. Example: 903000000000356

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_retainer_invoice_get`

Get Retainer Invoice · Read-only

Get one retainer invoice by ID, including line items, totals and payment status. Returns a retainerinvoice object with retainerinvoice_id, retainerinvoice_number, date, status, is_pre_gst, project_id. Use this when you have a retainerinvoice_id. Use retainer_invoices_list to find them. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `retainerinvoice_id` (`string`, required): Unique identifier of the retainer invoice. Example: 982000000567114

Example input: `{"organization_id":"<organization_id>","retainerinvoice_id":"<retainerinvoice_id>"}`

### `zohobooks_retainer_invoices_list`

List Retainer Invoices · Read-only

List retainer invoices (advance payment requests), with filters for status, customer and dates. Returns a retainerinvoices array (each with retainerinvoice_id, customer_name, retainerinvoice_number, customer_id, status, reference_number), page_context for pagination. Use this to browse retainers. Use retainer_invoice_get for one retainer invoice. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `filter_by` (`string`, optional): Filter invoices by any status or payment expected date.Allowed Values: Status.All, Status.Sent, Status.Draft, Status.OverDue, Status.Paid, Status.Void, Status.Unpaid, Status.PartiallyPaid, Status.Viewed and Date.PaymentExpectedDate. One of: `Status.All`, `Status.Sent`, `Status.Draft`, `Status.OverDue`, `Status.Paid`, `Status.Void`, `Status.Unpaid`, `Status.PartiallyPaid`, `Status.Viewed`, `Date.PaymentExpectedDate`.
- `page` (`integer`, optional): Number of pages Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `sort_column` (`string`, optional): Sort retainer invoices.Allowed Values: customer_name, retainer invoice_number, date, due_date, total, balance and created_time Example: created_time
- `sort_order` (`string`, optional): The order for sorting Example: D

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_sales_order_get`

Get Sales Order · Read-only

Get one sales order by ID, including line items, totals, shipment and invoicing status. Returns a salesorder array (each with customer_id, billing_address_id, shipping_address_id, crm_owner_id, crm_custom_reference_id, zcrm_potential_id). Use this when you have a salesorder_id. Use sales_orders_list to find orders. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `salesorder_id` (`string`, required): Unique identifier of the sales order. Note: This value is a set of numeric characters. Example: 460000000039129

Example input: `{"organization_id":"<organization_id>","salesorder_id":"<salesorder_id>"}`

### `zohobooks_sales_orders_list`

List Sales Orders · Read-only

List sales orders in a Zoho Books organization, with filters for status, customer, dates and free-text search. Returns a salesorders array (each with salesorder_id, zcrm_potential_id, zcrm_potential_name, customer_name, customer_id, status). Use this to browse or search sales orders. Use sales_order_get for one order's line items. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `created_date` (`string`, optional): Search sales orders by creation date. Filters sales orders based on the date they were created. Use yyyy-mm-dd format. Supports variants: created_date_start, created_date_end. Useful for finding sales orders created within specific time periods or date ranges. Example: 2013-11-17
- `customer_id` (`string`, optional): Filter sales orders by specific customer identifier. Retrieves all sales orders associated with a particular customer account for customer relationship management, order history tracking, and customer-specific reporting and analysis purposes. Note: This value is a set of numeric characters. Example: 460000000017138
- `customer_name` (`string`, optional): Filter sales orders by customer name using various matching operators. Available variants include customer_name_startswith, customer_name_not_in, customer_name_in, and customer_name_contains. Maximum search length: 100 characters. Example: SAF Instruments Inc
- `customview_id` (`string`, optional): ID of the customview. Note: This value is a set of numeric characters. Example: 460000004000597
- `date` (`string`, optional): Search sales orders by sales order date. Filters sales orders based on the date they were created. Use yyyy-mm-dd format. Supports variants: date_start, date_end, date_before and date_after. Useful for finding sales orders within date ranges or specific time periods. Example: 2013-11-17
- `email` (`string`, optional): Search sales orders by customer email address. Filters sales orders based on the email address of the customer or contact person. Maximum length is 100 characters. Useful for finding sales orders for specific customers or generating customer segment reports. Example: john@bowmanfurniture.com
- `expiry_date_after` (`string`, optional): Filter sales orders by sales order shipment date strictly after the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `expiry_date_before` (`string`, optional): Filter sales orders by sales order shipment date strictly before the specified date (exclusive). Use yyyy-mm-dd format. Example: 2013-11-17
- `expiry_date_end` (`string`, optional): Filter sales orders by sales order shipment date on or before the specified date. Useful for defining the end of a date range. Use yyyy-mm-dd format. Example: 2013-11-30
- `expiry_date_start` (`string`, optional): Filter sales orders by sales order shipment date on or after the specified date. Useful for defining the start of a date range. Use yyyy-mm-dd format. Example: 2013-11-01
- `filter_by` (`string`, optional): Filter sales order by status. Allowed Values: Status.All, Status.Open, Status.Draft, Status.OverDue, Status.PartiallyInvoiced, Status.Invoiced, Status.Void and Status.Closed. One of: `Status.All`, `Status.Draft`, `Status.Open`, `Status.Invoiced`, `Status.InvoicedNotShipped`, `Status.Confirmed`, `Status.UnFulfilled`, `Status.MarketPlaceSalesOrder`, `Status.ThisCycle`, `Status.PreviousCycle`, `Status.PartiallyInvoiced`, `Status.Void`, `Status.Closed`, `Status.Pending`, `Status.Approved`, `Status.OverDue`, `Status.Shipped`, `Status.ShippedNotInvoiced`, `Status.ToBeShipped`, `Status.ToBeInvoiced`, `Status.Fulfilled`, `Status.ManuallyFulfilled`, `Status.BackOrdered`, `Status.OnHold`, `Status.DropShipped`, `Status.ToBePacked`, `Status.AvalaraSyncFailed`, `Status.TaxAutomationFailed`, `Status.Network`, `Status.NetworkPending`, `Status.MyApprovals`, `Status.Unconfirmed`, `Status.Portal`, `Status.Cancelled`, `Status.NotConfirmed`, `Status.PendingOrders`, `Status.ShippedNotCancelledOrFailed`, `Status.Delivered`, `Status.CancelledOrFailed`, `Status.Viewed`, `Status.BBPSPendingApproval`, `Status.BBPSAccepted`, `Status.BBPSAcceptFailed`, `Status.BBPSRejected`, `Status.BBPSRejectFailed`, `Status.BBPSReturned`, `Status.BBPSReturnFailed`, `WithAttachment`, `WithoutAttachment`, `ExceptionList`.
- `item_description` (`string`, optional): Search sales orders by item description. Filters sales orders based on detailed descriptions of products or services in line items. Supports item_description_startswith and item_description_contains variants. Maximum length is 100 characters. Useful for finding sales orders with specific item descriptions or technical specifications. Example: 500GB, USB 2.0 interface
- `item_id` (`string`, optional): Filter sales orders by specific line item identifier. Retrieves all sales orders containing a particular product or service item based on its unique identifier for inventory tracking and item-based reporting purposes. Note: This value is a set of numeric characters. Example: 460000000017088
- `item_name` (`string`, optional): Search sales orders by item name. Filters sales orders based on product or service names in sales order line items. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Useful for finding sales orders with specific products or services. Example: Desktop Units
- `last_modified_time` (`string`, optional): Last Modified time of the Sales Order Example: 2014-08-25T11:23:26+0530
- `location_ids` (`string`, optional): List of location IDs to filter sales orders by their associated locations. Use this parameter to retrieve sales orders linked to specific business locations. Note: This value is a comma-separated list of numeric location IDs. Example: 460000000038080,460000000038081
- `page` (`integer`, optional): Specify the page number for paginated results retrieval. Controls which subset of sales order records to return, enabling efficient data handling for large result sets. Default value is 1 for the first page. Example: 1
- `per_page` (`integer`, optional): Specify the maximum number of sales order records to return per page. Controls result set size for optimal performance, memory usage, and user experience. Example: 10
- `reference_number` (`string`, optional): Filter sales orders by external reference number using various matching operators. Available variants include reference_number_startswith, reference_number_not_in, reference_number_in, and reference_number_contains. Example: REF-001
- `salesorder_ids` (`string`, optional): ID's of the salesorder [Comma seperated values] . Maximum Length : 200. Note: This value is a set of numeric characters separated by comma. Example: 460108000000072000
- `salesorder_number` (`string`, optional): Filter sales orders by sales order number using various matching operators. Available variants include salesorder_number_startswith, salesorder_number_not_in, salesorder_number_in, and salesorder_number_contains. Maximum search length: 100 characters. Example: SO-001
- `salesperson_id` (`string`, optional): Filter sales orders by specific sales representative identifier. Retrieves all sales orders assigned to a particular salesperson for performance tracking, commission calculations, sales territory management, and individual sales reporting purposes. Note: This value is a set of numeric characters. Example: 460000000000097
- `search_text` (`string`, optional): General search parameter for cross-field text matching across sales order number, reference number, and customer name fields. Enables unified search functionality for quick order identification and customer order lookup operations.
- `shipment_date` (`string`, optional): Search sales order by sales order shipment date. Variants: shipment_date_start, shipment_date_end, shipment_date_before and shipment_date_after. Default date format : yyyy-mm-dd
- `sort_column` (`string`, optional): Specify the column field for sorting sales order results. Available options include customer_name, salesorder_number, shipment_date, last_modified_time, reference_number, total, date, and created_time. Example: created_time. One of: `customer_name`, `salesorder_number`, `reference_number`, `shipment_date`, `total`, `date`, `created_time`, `last_modified_time`, `subscription_number`, `first_name`, `company_name`, `cf_(\w+)`.
- `status` (`string`, optional): Search sales order by sales order status. Allowed Values: draft, open, invoiced, partially_invoiced, void and overdue. Example: open. One of: `draft`, `pending_approval`, `approved`, `open`, `invoiced`, `invoiced_not_shipped`, `shipped_not_invoiced`, `partially_invoiced`, `not_invoiced`, `to_be_invoiced`, `paid`, `partially_paid`, `unpaid`, `cancelled`, `void`, `pending`, `overdue`, `closed`, `confirmed`, `onhold`, `network_pending_approval`, `rejected`.
- `total` (`string`, optional): Search sales orders by total amount. Filters sales orders based on the final sales order amount including taxes, discounts, and adjustments. Useful for finding sales orders within specific price ranges or identifying high-value transactions. Example: 40.6
- `zcrm_potential_id` (`string`, optional): Unique identifier of the potential in CRM. Note: This value is a set of numeric characters. Example: 460000000033001

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_sales_receipt_get`

Get Sales Receipt · Read-only

Get one sales receipt by ID, including line items, payment mode and totals. Returns a salesreceipt object with sales_receipt_id, receipt_number, date, status, payment_mode, customer_id. Use this when you have a sales_receipt_id. Use sales_receipts_list to find receipts. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `sales_receipt_id` (`string`, required): Unique identifier of the sales receipt. Example: 460000000039129

Example input: `{"organization_id":"<organization_id>","sales_receipt_id":"<sales_receipt_id>"}`

### `zohobooks_sales_receipts_list`

List Sales Receipts · Read-only

List sales receipts (sales paid in full at the time of sale), with filters for customer, dates and status. Returns a salesreceipts array (each with sales_receipt_id, receipt_number, date, status, payment_mode, customer_id). Use this to browse cash sales. Use sales_receipt_get for one receipt. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `customer_id` (`string`, optional): Filter sales receipts by specific customer identifier. Example: 460000000017138
- `date` (`string`, optional): Filter sales receipts by date. Available variants include date_start, date_end, date_before, and date_after. Default date format: yyyy-mm-dd. Example: 2014-07-28
- `filter_by` (`string`, optional): Filter sales receipts by status. Allowed Values: ThisWeek, ThisMonth, ThisQuarter, ThisYear,PreviousDay, PreviousWeek, PreviousMonth, PreviousQuarter, PreviousYear, Status.All, Status.Draft, Status.Sent. One of: `ThisWeek`, `ThisMonth`, `ThisQuarter`, `ThisYear`, `PreviousDay`, `PreviousWeek`, `PreviousMonth`, `PreviousQuarter`, `PreviousYear`, `Status.All`, `Status.Draft`, `Status.Sent`.
- `item_name` (`string`, optional): Search receipt by item name. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Example: Hard Drive
- `page` (`integer`, optional): Specify the page number for paginated results retrieval. Default value is 1 for the first page. Example: 1
- `per_page` (`integer`, optional): Specify the maximum number of sales receipt records to return per page. Example: 10
- `receipt_number` (`string`, optional): Search receipt by receipt number. Filters receipts based on their unique identifier. Supports receipt_number_startswith and receipt_number_contains variants. Maximum length is 100 characters. Useful for finding specific receipts or receipts with similar numbering patterns. Example: INV-00003
- `sort_column` (`string`, optional): Specify the column field for sorting sales receipt results. Available options include customer_name, receipt_number, date, total, and created_time. Example: created_time
- `total` (`number`, optional): Filter sales receipts by total amount using various range operators. Available variants include total_start, total_end, total_less_than, total_greater_than. Example: 1000

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_tax_get`

Get Tax · Read-only

Get one tax by ID, including its name, rate and type. Returns a tax array (each with tax_id, tax_name, tax_percentage, tax_type, tax_authority_name, is_value_added). Use this when you have a tax_id. Use taxes_list to find taxes. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `tax_id` (`string`, required): Unique identifier of the tax. Note: This value is a set of numeric characters. Example: 982000000566009

Example input: `{"organization_id":"<organization_id>","tax_id":"<tax_id>"}`

### `zohobooks_taxes_list`

List Taxes · Read-only

List the taxes and tax groups configured in the organization, with their rates. Returns a taxes array (each with tax_id, tax_name, tax_percentage, tax_type, tax_authority_name, is_value_added), page_context for pagination. Use this to find tax_id values for line items. Use tax_get for one tax. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_time_entries_list`

List Time Entries · Read-only

List logged time entries, with filters for date range, project, user and billing status. Returns a time_entries array (each with time_entry_id, project_id, project_name, customer_id, customer_name, task_id), a page_context array (each with page, per_page, report_name, has_more_page, sort_order, sort_column). Use this to review logged hours. Use time_entry_get for one entry. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `filter_by` (`string`, optional): Filter time entries by date and status. Allowed Values: Date.All, Date.Today, Date.ThisWeek, Date.ThisMonth, Date.ThisQuarter, Date.ThisYear, Date.PreviousDay, Date.PreviousWeek, Date.PreviousMonth, Date.PreviousQuarter, Date.PreviousYear, Date.CustomDate, Status.Unbilled and Status.Invoiced Example: Status.Unbilled. One of: `Date.All`, `Date.Today`, `Date.ThisWeek`, `Date.ThisMonth`, `Date.ThisQuarter`, `Date.ThisYear`, `Date.PreviousDay`, `Date.PreviousWeek`, `Date.PreviousMonth`, `Date.PreviousQuarter`, `Date.PreviousYear`, `Date.CustomDate`, `Status.Unbilled`, `Status.Invoiced`.
- `from_date` (`string`, optional): Date from which the time entries logged to be fetched Example: 2013-09-17
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `project_id` (`string`, optional): Search time entries by project_id. Example: 460000000044019
- `sort_column` (`string`, optional): Sort time entries. Allowed Values: project_name, task_name, user_name, log_date, timer_started_at and customer_name Example: customer_name. One of: `project_name`, `task_name`, `user_name`, `log_date`, `timer_started_at`, `customer_name`.
- `to_date` (`string`, optional): Date up to which the time entries logged to be fetched Example: 2013-09-17
- `user_id` (`string`, optional): Search time entries by user_id. Example: 460000000024003

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_time_entry_get`

Get Time Entry · Read-only

Get one time entry by ID, including its project, task, user, date and hours. Returns a time_entry object with time_entry_id, project_id, project_name, customer_id, customer_name, task_id. Use this when you have a time_entry_id. Use time_entries_list to find entries. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `time_entry_id` (`string`, required): Unique identifier of the time entry. Example: 460000000044021

Example input: `{"organization_id":"<organization_id>","time_entry_id":"<time_entry_id>"}`

### `zohobooks_user_current_get`

Get Current User · Read-only

Get the Zoho Books user that the connection is authorized as. Returns an user object with user_id, name, email_ids, status, user_role, user_type. Use this to identify the connected user. Use users_list to see every user in the organization. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_user_get`

Get User · Read-only

Get one user by ID, including name, email, role and status. Returns an user object with user_id, name, email_ids, status, user_role, user_type. Use this when you have a user_id. Use users_list to find users. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `user_id` (`string`, required): Unique identifier of the user. Note: This value is a set of numeric characters. Example: 982000000554041

Example input: `{"organization_id":"<organization_id>","user_id":"<user_id>"}`

### `zohobooks_users_list`

List Users · Read-only

List the users in the organization, with their roles and status. Returns an users array (each with user_id, role_id, name, email, user_role, status), page_context for pagination. Use this to find user IDs for time entries and project assignments. Use user_current_get for the connected user. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `filter_by` (`string`, optional): Allowed Values: Status.All, Status.Active, Status.Inactive, Status.Invited and Status.Deleted. One of: `Status.All`, `Status.Active`, `Status.Inactive`, `Status.Invited`, `Status.Deleted`.
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `sort_column` (`string`, optional): Sort users. Allowed Values: name, email, user_role and status Example: name. One of: `name`, `email`, `user_role`, `status`.

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_vendor_credit_get`

Get Vendor Credit · Read-only

Get one vendor credit by ID, including line items and remaining balance. Returns a vendor_credit object with vendor_credit_id, vendor_credit_number, date, status, reference_number, pricebook_id. Use this when you have a vendor_credit_id. Use vendor_credits_list to find vendor credits. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `vendor_credit_id` (`string`, required): Unique identifier of the vendor credit. Example: 3000000002075

Example input: `{"organization_id":"<organization_id>","vendor_credit_id":"<vendor_credit_id>"}`

### `zohobooks_vendor_credits_list`

List Vendor Credits · Read-only

List vendor credits (credits a vendor owes you), with filters for status, vendor and dates. Returns a vendorcredits array (each with vendor_credit_id, vendor_credit_number, status, reference_number, date, total). Use this to browse vendor credits. Use vendor_credit_get for one credit's line items. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `custom_field` (`string`, optional): Filter vendor credits by custom field values. Supports variants: custom_field_startswith and custom_field_contains for partial matching.
- `customer_id` (`string`, optional): Search vendor credits by customer ID. Filters vendor credits based on the unique identifier of the customer for whom the vendor credit was created. Use the customer ID returned by the Contacts API to find all vendor credits for a specific customer. Note: This value is a set of numeric characters.
- `customer_name` (`string`, optional): Search vendor credits by customer name. Filters vendor credits based on the business or individual name associated with the vendor credit. Maximum length is 100 characters. Useful for finding all vendor credits for a specific contact or generating contact reports. Example: Bowman & Co
- `date` (`string`, optional): Filter vendor credits by creation date. Use yyyy-mm-dd format. Supports variants: date_start, date_end, date_before and date_after for range-based filtering. Example: 2014-08-28
- `filter_by` (`string`, optional): Filter vendor credits by status using predefined status values. Allowed values: Status.All, Status.Open, Status.Draft, Status.Closed, and Status.Void. Example: Status.All. One of: `Status.All`, `Status.Open`, `Status.Closed`, `Status.Void`, `Status.Draft`, `Status.Pending`, `Status.ApprovalOverdue`, `Status.MyApprovals`, `Status.EInvoicedDebitnotes`, `Status.EInvoicePendingDebitnotes`, `Status.BBPSYetToBePushed`, `Status.BBPSPushed`, `Status.BBPSPushFailed`, `Status.BBPSPendingApproval`, `Status.BBPSAccepted`, `Status.BBPSAcceptFailed`, `Status.BBPSRejected`, `Status.BBPSRejectFailed`, `Status.BBPSReturned`, `Status.BBPSReturnFailed`, `ExceptionList`, `MissingAdvancedTrackingDetails`.
- `item_description` (`string`, optional): Search vendor credits by item description. Filters vendor credits based on detailed descriptions of products or services in line items. Supports item_description_startswith and item_description_contains variants. Maximum length is 100 characters. Useful for finding vendor credits with specific item descriptions or technical specifications. Example: 500GB, USB 2.0 interface
- `item_id` (`string`, optional): Filter vendor credits by item ID. Use this parameter to search for vendor credits containing a specific item. Retrieve item IDs from the items API. Example: 460000000020071
- `item_name` (`string`, optional): Search vendor credits by item name. Filters vendor credits based on product or service names in vendor credit line items. Supports item_name_startswith and item_name_contains variants. Maximum length is 100 characters. Useful for finding vendor credits with specific products or services. Example: Desktop Units
- `last_modified_time` (`string`, optional): Search vendor credits modified after a specific time. Filters vendor credits based on their last modification timestamp. Use YYYY-MM-DDTHH:MM:SS-UTC format. Useful for finding recently updated vendor credits or syncing data changes. Example : 2023-11-18T02:02:51-0800, 2025-19-19T02:02:51%2B0800
- `line_item_id` (`string`, optional): Filter vendor credits by line item ID. Use this parameter to search for vendor credits containing a specific line item within the vendor credit. Example: 460000000020077
- `location_ids` (`string`, optional): List of location IDs to filter vendor credits by their associated locations. Use this parameter to retrieve vendor credits linked to specific business locations. Note: This value is a comma-separated list of numeric location IDs. Example: 460000000038080,460000000038081
- `notes` (`string`, optional): Filter vendor credits by notes content. Supports variants: notes_startswith and notes_contains for partial matching.
- `page` (`integer`, optional): Page number for pagination. Specify which page of results to retrieve. Default value is 1. Example: 1
- `per_page` (`integer`, optional): Number of records per page for pagination. Controls how many vendor credits are returned in each page. Example: 10
- `reference_number` (`string`, optional): Search vendor credits by reference number. Filters vendor credits based on external reference identifiers like purchase order numbers, contract numbers, or project codes. Useful for finding vendor credits associated with specific projects or business transactions. Example: PO-12345
- `search_text` (`string`, optional): Search vendor credits using text search across multiple fields. Searches vendor credit number, vendor name, and reference number.
- `sort_column` (`string`, optional): Sort vendor credits by specified column. Allowed values: vendor_name, vendor_credit_number, balance, total, date, created_time, last_modified_time, and reference_number. Example: created_time. One of: `vendor_name`, `vendor_credit_number`, `balance`, `total`, `date`, `created_time`, `last_modified_time`, `reference_number`, `txn_posting_date`.
- `status` (`string`, optional): Filter vendor credits by their current status. Allowed values: open, closed, void, or draft. Example: open. One of: `open`, `draft`, `void`, `closed`, `pending_approval`, `approval_overdue`, `rejected`, `approved`.
- `tax_id` (`string`, optional): Filter vendor credits by tax ID. Use this parameter to search for vendor credits with a specific tax applied. Retrieve tax IDs from the taxes API.
- `total` (`string`, optional): Search vendor credits by total amount. Filters vendor credits based on the final vendor credit amount including taxes, discounts, and adjustments. Useful for finding vendor credits within specific price ranges or identifying high-value transactions. Example: 40.6
- `vendor_credit_number` (`string`, optional): Filter vendor credits by specific vendor credit number. Supports variants vendor_credit_number_startswith and vendor_credit_number_contains for partial matching. Example: DN-00002

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_vendor_payment_get`

Get Vendor Payment · Read-only

Get one vendor payment by ID, including the bills it was applied to. Returns a vendorpayment object with payment_id, vendor_id, vendor_name, payment_mode, payment_number, description. Use this when you have a payment_id. Use vendor_payments_list to find payments. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `payment_id` (`string`, required): Unique identifier of the payment. Example: 460000000053219
- `fetchstatementlineinfo` (`boolean`, optional): Check is Statement Line Information for Vendor Payment be fetched Example: True
- `fetchTaxInfo` (`boolean`, optional): Check if tax information should be fetched Example: False
- `is_bill_payment_id` (`boolean`, optional): Check if the ID is Bill Payment or Vendor Payment Example: True

Example input: `{"organization_id":"<organization_id>","payment_id":"<payment_id>"}`

### `zohobooks_vendor_payments_list`

List Vendor Payments · Read-only

List payments made to vendors, with filters for vendor, payment mode, dates and free-text search. Returns a vendorpayments array (each with payment_id, vendor_id, vendor_name, bill_numbers, payment_mode, payment_number). Use this to browse payments made. Use bill_payments_list for the payments on one bill. Requires an organization_id from zohobooks_organizations_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `amount` (`number`, optional): Payment amount made to the vendor. Search payments by payment amount. Variants: amount_less_than, amount_less_equals, amount_greater_than and amount_greater_equals. In refunds, Amount refunded from the vendor payment. Example: 500
- `bill_id` (`string`, optional): Search payments by Bill ID. Example: B-01
- `date` (`string`, optional): Date the payment is made. Search payments by payment made date. Variants: date_start, date_end, date_before and date_after. Example: 2013-10-07
- `description` (`string`, optional): Search payments by description. Variants: description_startswith and description_contains. Example: Payment
- `filter_by` (`string`, optional): Filter payments by mode. Allowed Values: PaymentMode.All, PaymentMode.Check, PaymentMode.Cash, PaymentMode.BankTransfer, PaymentMode.Paypal, PaymentMode.CreditCard, PaymentMode.GoogleCheckout, PaymentMode.Credit, PaymentMode.Authorizenet, PaymentMode.BankRemittance, PaymentMode.Payflowpro and PaymentMode.Others. Example: PaymentMode.All. One of: `PaymentMode.All`, `PaymentMode.Check`, `PaymentMode.Cash`, `PaymentMode.BankTransfer`, `PaymentMode.Paypal`, `PaymentMode.CreditCard`, `PaymentMode.GoogleCheckout`, `PaymentMode.Credit`, `PaymentMode.Authorizenet`, `PaymentMode.BankRemittance`, `PaymentMode.Payflowpro`, `PaymentMode.Others`.
- `last_modified_time` (`string`, optional): Search with the Last Modified Time of the Vendor Payment
- `notes` (`string`, optional): Search with Payment Notes. Variant: notes_startswith, notes_contains Example: Payment
- `page` (`integer`, optional): Page number to be fetched. Default value is 1. Example: 1
- `payment_mode` (`string`, optional): Search payments by payment mode. Variants: payment_mode_startswith and payment_mode_contains. Example: Stripe
- `payment_number` (`string`, optional): Search with Payment Number. Variant: payment_number_startswith, payment_number_contains Example: 1
- `per_page` (`integer`, optional): Number of records to be fetched per page. Example: 10
- `reference_number` (`string`, optional): Search payments by reference number. Variants: reference_number_startswith and reference_number_contains. In refunds, reference number for the refund recorded. Example: REF#912300
- `search_text` (`string`, optional): Search payments by reference number or vendor name or payment description.
- `sort_column` (`string`, optional): Sort the payment list. Allowed Values: vendor_name, date, reference_number, amount and balance. Example: vendor_name. One of: `vendor_name`, `date`, `reference_number`, `amount`, `balance`.
- `vendor_id` (`string`, optional): ID of the vendor. Search payments by vendor id. Example: 460000000026049
- `vendor_name` (`string`, optional): Search payments by vendor name. Variants: vendor_name_startswith and vendor_name_contains. Example: Bowman and Co

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_bank_transaction_create`

Create Bank Transaction · Write

Record a bank transaction such as a deposit, transfer, owner contribution or card payment. Returns a banktransaction object with transaction_id, from_account_id, from_account_name, to_account_id, to_account_name, transaction_type. Use this to record money moving through a bank account. Use expense_create or customer_payment_create for those specific transaction types. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `transaction_type` (`string`, required): Type of the transaction. Allowed transaction types : deposit, refund(*Supported only in Credit Card accounts), transfer_fund, card_payment, sales_without_invoices, expense_refund, owner_contribution, interest_income, other_income, owner_drawings, sales_return Note: You will not be able to create the following module-specific transaction types under Bank Transaction endpoints : Expense, Vendor Advance/Vendor Payment/Bill Payment, Vendor Credit Refund, Vendor Payment Refund, Customer Advance/Customer Payment, Credit Note Refund, Payment Refund. Hence, refer them in their repective modules. Example: deposit
- `amount` (`number`, optional): Amount of the transaction Example: 2000
- `bank_charges` (`number`, optional): Bank Charges applied to the transaction Example: 0
- `currency_id` (`string`, optional): The currency ID involved in the transaction. Example: 460000000000097
- `custom_fields` (`array`, optional): List of custom fields associated with the transaction.
- `customer_id` (`string`, optional): ID of the customer or vendor. Example: 460000000000111
- `date` (`string`, optional): Transaction date. Example: 2013-10-01
- `description` (`string`, optional): A brief description about the transaction.
- `documents` (`array`, optional): List of files to be attached to a particular transaction.
- `exchange_rate` (`integer`, optional): The foreign currency exchange rate value. Example: 1
- `from_account_id` (`string`, optional): The account ID from which money will be transferred(Mandatory for specific type of transactions). These accounts differ with respect to transaction_type. Ex: To a bank account, from-account can be: bank , card, income, refund. To a card account, from account can be: bank, card, refund. Example: 460000000070003
- `from_account_tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `is_inclusive_tax` (`boolean`, optional): Check if transaction is tax Inclusive Example: False
- `payment_mode` (`string`, optional): Mode of payment for the transaction. (not applicable for transfer_fund, card_payment, owner_drawings). Ex:cash, cheque, etc., Example: Cash
- `reference_number` (`string`, optional): Reference Number of the transaction Example: Ref-121
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): ID of the tax or tax group applied
- `to_account_id` (`string`, optional): ID of the account to which the money gets transferred(Mandatory for specific type of transactions). Ex: From a bank account, to-account can be: bank, card, drawings, expense,credit notes. From a card account, to-account can be: card, bank, expense. Example: 460000000048001
- `to_account_tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `user_id` (`string`, optional): ID of the User involved in the Transaction

Example input: `{"organization_id":"<organization_id>","transaction_type":"<transaction_type>"}`

### `zohobooks_bill_create`

Create Bill · Write

Record a bill received from a vendor with line items, bill number, dates and terms. Returns a bill object with bill_id, entity_type, purchaseorder_ids, vendor_id, vendor_name, pricebook_id. Use this to record money you owe a vendor. Use purchase_order_create to order goods first, or expense_create for a one-off expense. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `bill_number` (`string`, required): Unique sequential identifier for the bill. Used for tracking and reference purposes. Format varies by organization settings. Can be auto-generated or manually entered. Must be unique within the organization. Example: 00454
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `vendor_id` (`string`, required): Unique identifier for the vendor who supplied the goods/services. Can be fetched from the Get Contacts API. Example: 460000000038029
- `adjustment` (`number`, optional): Additional amount added to or subtracted from bill total. Positive values increase total, negative values decrease total. Used for discounts, surcharges, rounding adjustments, or other modifications. Affects final bill amount, tax calculations, and payment processing. Example: 0
- `adjustment_description` (`string`, optional): Text description explaining the reason for bill adjustment. Examples: "Early payment discount", "Volume discount", "Rounding adjustment", "Handling fee". Helps in audit trails and reporting. Required when adjustment amount is non-zero. Used in financial reports, tax returns, and vendor communications. Should be clear and specific for compliance purposes.
- `approvers` (`array`, optional): List of approvers for the bill.
- `attachment` (`string`, optional): File to attach. Allowed Extensions: gif, png, jpeg, jpg, bmp and pdf.
- `currency_id` (`string`, optional): Unique identifier for the currency used in the bill transaction. Can be fetched from the Currencies API if multi-currency is enabled. Example: 460000000000099
- `custom_fields` (`array`, optional): List of custom fields for the bill.
- `date` (`string`, optional): Date when the bill was issued by the vendor. Format: yyyy-mm-dd. Used for payment terms and aging calculations. This date determines when payment terms begin and affects aging reports, late payment calculations, and financial reporting. Example: 2013-09-11
- `documents` (`array`, optional): List of documents attached to the bill.
- `due_date` (`string`, optional): Date when payment is due for the bill. Used for payment tracking, aging reports, and overdue calculations. Calculated based on bill date and payment terms. Bills become overdue after this date, affecting vendor relationships and cash flow planning. Example: 2013-09-26
- `entity_type` (`string`, optional): Type of the bill entity. Allowed values: bill, self_billed_invoice. Example: bill. One of: `bill`, `self_billed_invoice`.
- `exchange_rate` (`number`, optional): Exchange rate from bill currency to organization base currency. Used for multi-currency transactions. 1.0 indicates same as base currency. Required when currency differs from organization default. Affects financial reporting, profit/loss calculations, and tax computations. Can be manually set or auto-fetched from currency exchange services. Example: 1.23
- `is_inclusive_tax` (`boolean`, optional): Flag indicating whether line item rates include tax amounts. When true, tax is calculated on top of displayed rates. When false, tax is added separately. Affects total calculations and tax reporting. Common in countries where tax-inclusive pricing is standard. Impacts customer-facing documents and tax return preparation. Example: False
- `is_item_level_tax_calc` (`boolean`, optional): Flag indicating whether taxes are calculated at individual line item level rather than bill total. Enables different tax rates for different items. Provides more accurate tax calculations for mixed tax scenarios. When enabled, each line item can have different tax rates based on item type, location, or tax rules. Improves tax compliance and reporting accuracy. Example: False
- `is_update_customer` (`boolean`, optional): Flag to determine if customer information should be updated when creating the bill. Example: False
- `line_items` (`array`, optional): Line items of a bill. Example: [{"item_id":"460000000054135","account_id":"460000000000403","rate":10,"quantity":1}]
- `location_id` (`string`, optional): Unique identifier for the business location where the bill transaction occurs. Used for multi-location organizations to track expenses by location. Affects reporting and tax calculations based on location-specific rules. Can be fetched from the Locations API. Required for organizations with multiple locations. Influences tax rates, reporting structures, and approval workflows based on location-specific configurations. Example: 460000000038080
- `notes` (`string`, optional): Additional information or comments about the bill. Used for internal communication, vendor instructions, or special handling requirements. Visible to vendors and included in bill communications. Useful for tracking special arrangements or payment instructions. Example: Thanks for your business.
- `payment_terms` (`integer`, optional): Numeric identifier for payment terms configuration. Defines when payment is due relative to bill date. 0 = Due on Receipt, positive numbers = days after bill date, negative numbers = days before bill date. Common values: 0 (Due on Receipt), 15 (Net 15), 30 (Net 30), 45 (Net 45). Affects due date calculation and aging reports. Example: 0
- `payment_terms_label` (`string`, optional): Label of the Payment Terms Example: Due on Receipt
- `pricebook_id` (`string`, optional): Identifier for the price book containing item rates and pricing rules. Used to apply standardized pricing across bills. If not specified, default pricing from items will be used. Helps maintain consistent pricing across multiple transactions. Example: 460000000038090
- `purchaseorder_ids` (`array`, optional): Array of purchase order identifiers linked to this bill for tracking purposes. Example: [460000000068231,460000000068233]
- `recurring_bill_id` (`string`, optional): Identifier linking this bill to a recurring bill template. Used for bills that are automatically generated on a schedule (weekly, monthly, quarterly, etc.). Enables automated bill generation, consistent billing cycles, and reduces manual data entry. Can be modified to change recurring schedule.
- `reference_number` (`string`, optional): External reference number from vendor invoice or purchase order. Used for cross-referencing with vendor documents. Helps in reconciliation and tracking payments. Can include invoice numbers, PO references, or any vendor-specific identifiers. Example: 4321133
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `taxes` (`array`, optional): List of taxes applied to the bill. Example: [{"tax_id":"460000000027005","tax_name":"VAT (12.5%)","tax_amount":1.25}]
- `terms` (`string`, optional): Terms and conditions that apply to the bill transaction. Includes payment terms, delivery conditions, warranty information, or other contractual obligations. Displayed on bill documents and vendor communications. Important for legal compliance and vendor relationship management. Example: Terms and conditions apply.

Example input: `{"bill_number":"<bill_number>","organization_id":"<organization_id>","vendor_id":"<vendor_id>"}`

### `zohobooks_bill_mark_open`

Mark Bill Open · Write

Mark a void bill as open again. Returns a success code and message. Use this to restore a voided bill. Use bill_mark_void to void one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `bill_id` (`string`, required): Unique identifier of the bill. Example: 460000000098765
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"bill_id":"<bill_id>","organization_id":"<organization_id>"}`

### `zohobooks_bill_mark_void`

Void Bill · Write

Mark a bill as void, cancelling it while keeping it on record. Returns a success code and message. Use this to cancel a bill. Use bill_mark_open to restore it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `bill_id` (`string`, required): Unique identifier of the bill. Example: 460000000098765
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"bill_id":"<bill_id>","organization_id":"<organization_id>"}`

### `zohobooks_bill_update`

Update Bill · Write

Update an existing bill's vendor, line items, dates or terms. Returns a bill object with bill_id, entity_type, purchaseorder_ids, vendor_id, vendor_name, pricebook_id. Use this to change a bill you have the bill_id for. Use bill_create for a new bill. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `bill_id` (`string`, required): Unique identifier of the bill. Example: 460000000098765
- `bill_number` (`string`, required): Unique sequential identifier for the bill. Used for tracking and reference purposes. Format varies by organization settings. Can be auto-generated or manually entered. Must be unique within the organization. Example: 00454
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `vendor_id` (`string`, required): Unique identifier for the vendor who supplied the goods/services. Can be fetched from the Get Contacts API. Example: 460000000038029
- `adjustment` (`number`, optional): Additional amount added to or subtracted from bill total. Positive values increase total, negative values decrease total. Used for discounts, surcharges, rounding adjustments, or other modifications. Affects final bill amount, tax calculations, and payment processing. Example: 0
- `adjustment_description` (`string`, optional): Text description explaining the reason for bill adjustment. Examples: "Early payment discount", "Volume discount", "Rounding adjustment", "Handling fee". Helps in audit trails and reporting. Required when adjustment amount is non-zero. Used in financial reports, tax returns, and vendor communications. Should be clear and specific for compliance purposes.
- `approvers` (`array`, optional): List of approvers for the bill.
- `attachment` (`string`, optional): File to attach. Allowed Extensions: gif, png, jpeg, jpg, bmp and pdf.
- `currency_id` (`string`, optional): Unique identifier for the currency used in the bill transaction. Can be fetched from the Currencies API if multi-currency is enabled. Example: 460000000000099
- `custom_fields` (`array`, optional): List of custom fields for the bill.
- `date` (`string`, optional): Date when the bill was issued by the vendor. Format: yyyy-mm-dd. Used for payment terms and aging calculations. This date determines when payment terms begin and affects aging reports, late payment calculations, and financial reporting. Example: 2013-09-11
- `documents` (`array`, optional): List of documents attached to the bill.
- `due_date` (`string`, optional): Date when payment is due for the bill. Used for payment tracking, aging reports, and overdue calculations. Calculated based on bill date and payment terms. Bills become overdue after this date, affecting vendor relationships and cash flow planning. Example: 2013-09-26
- `entity_type` (`string`, optional): Type of the bill entity. Allowed values: bill, self_billed_invoice. Example: bill. One of: `bill`, `self_billed_invoice`.
- `exchange_rate` (`number`, optional): Exchange rate from bill currency to organization base currency. Used for multi-currency transactions. 1.0 indicates same as base currency. Required when currency differs from organization default. Affects financial reporting, profit/loss calculations, and tax computations. Can be manually set or auto-fetched from currency exchange services. Example: 1.23
- `is_inclusive_tax` (`boolean`, optional): Flag indicating whether line item rates include tax amounts. When true, tax is calculated on top of displayed rates. When false, tax is added separately. Affects total calculations and tax reporting. Common in countries where tax-inclusive pricing is standard. Impacts customer-facing documents and tax return preparation. Example: False
- `is_item_level_tax_calc` (`boolean`, optional): Flag indicating whether taxes are calculated at individual line item level rather than bill total. Enables different tax rates for different items. Provides more accurate tax calculations for mixed tax scenarios. When enabled, each line item can have different tax rates based on item type, location, or tax rules. Improves tax compliance and reporting accuracy. Example: False
- `is_update_customer` (`boolean`, optional): Flag to determine if customer information should be updated when creating the bill. Example: False
- `line_items` (`array`, optional): Line items of a bill. Example: [{"item_id":"460000000054135","account_id":"460000000000403","rate":10,"quantity":1}]
- `location_id` (`string`, optional): Unique identifier for the business location where the bill transaction occurs. Used for multi-location organizations to track expenses by location. Affects reporting and tax calculations based on location-specific rules. Can be fetched from the Locations API. Required for organizations with multiple locations. Influences tax rates, reporting structures, and approval workflows based on location-specific configurations. Example: 460000000038080
- `notes` (`string`, optional): Additional information or comments about the bill. Used for internal communication, vendor instructions, or special handling requirements. Visible to vendors and included in bill communications. Useful for tracking special arrangements or payment instructions. Example: Thanks for your business.
- `payment_terms` (`integer`, optional): Numeric identifier for payment terms configuration. Defines when payment is due relative to bill date. 0 = Due on Receipt, positive numbers = days after bill date, negative numbers = days before bill date. Common values: 0 (Due on Receipt), 15 (Net 15), 30 (Net 30), 45 (Net 45). Affects due date calculation and aging reports. Example: 0
- `payment_terms_label` (`string`, optional): Label of the Payment Terms Example: Due on Receipt
- `pricebook_id` (`string`, optional): Identifier for the price book containing item rates and pricing rules. Used to apply standardized pricing across bills. If not specified, default pricing from items will be used. Helps maintain consistent pricing across multiple transactions. Example: 460000000038090
- `purchaseorder_ids` (`array`, optional): Array of purchase order identifiers linked to this bill for tracking purposes. Example: [460000000068231,460000000068233]
- `recurring_bill_id` (`string`, optional): Identifier linking this bill to a recurring bill template. Used for bills that are automatically generated on a schedule (weekly, monthly, quarterly, etc.). Enables automated bill generation, consistent billing cycles, and reduces manual data entry. Can be modified to change recurring schedule.
- `reference_number` (`string`, optional): External reference number from vendor invoice or purchase order. Used for cross-referencing with vendor documents. Helps in reconciliation and tracking payments. Can include invoice numbers, PO references, or any vendor-specific identifiers. Example: 4321133
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `taxes` (`array`, optional): List of taxes applied to the bill. Example: [{"tax_id":"460000000027005","tax_name":"VAT (12.5%)","tax_amount":1.25}]
- `terms` (`string`, optional): Terms and conditions that apply to the bill transaction. Includes payment terms, delivery conditions, warranty information, or other contractual obligations. Displayed on bill documents and vendor communications. Important for legal compliance and vendor relationship management. Example: Terms and conditions apply.

Example input: `{"bill_id":"<bill_id>","bill_number":"<bill_number>","organization_id":"<organization_id>","vendor_id":"<vendor_id>"}`

### `zohobooks_chart_of_account_create`

Create Account · Write

Create an account in the chart of accounts with a name, type and optional code. Returns a chart_of_account object with account_id, account_name, account_code, is_active, account_type, currency_id. Use this to add a ledger account. Use chart_of_accounts_list to check whether it already exists. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `account_code` (`string`, optional): Code Associated with the Account
- `account_name` (`string`, optional): Name of the account Example: Notes Payable
- `account_type` (`string`, optional): Type of the account. Allowed Values: other_asset, other_current_asset, cash, bank, fixed_asset, other_current_liability, credit_card, long_term_liability, equity, income, other_income, expense, cost_of_goods_sold, other_expense, accounts_receivable, accounts_payable and more. Example: long_term_liability. One of: `other_asset`, `other_current_asset`, `cash`, `bank`, `fixed_asset`, `other_current_liability`, `credit_card`, `long_term_liability`, `equity`, `income`, `other_income`, `expense`, `cost_of_goods_sold`, `other_expense`, `accounts_receivable`, `accounts_payable`.
- `can_show_in_ze` (`boolean`, optional): Whether the account can be shown in Zoho Expense. Example: False
- `currency_id` (`string`, optional): ID of the account currency. Example: 460000000000097
- `custom_fields` (`array`, optional): List of custom fields for the account. Example: [{"customfield_id":"460000000080163","value":"Normal"}]
- `description` (`string`, optional): Description of the account Example: A Liability account which can be paid off in a time period longer than one year.
- `parent_account_id` (`string`, optional): ID of the Parent Account Example: 460000000009097
- `show_on_dashboard` (`boolean`, optional): Whether to show the account balance on the dashboard. Example: False

Example input: `{"organization_id":"<organization_id>"}`

### `zohobooks_contact_create`

Create Contact · Write

Create a customer or vendor in Zoho Books, optionally with addresses, contact persons, payment terms and currency. Returns a contact object with contact_id, contact_name, company_name, has_transaction, contact_type, customer_sub_type. Use this to add a new customer or vendor. Use contact_update to change an existing contact. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contact_name` (`string`, required): Display name for the contact. It is used for searching and displaying contacts. Example: Bowman and Co
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `billing_address` (`object`, optional): Billing address information for the contact. Example: {"address":"4900 Hopyard Rd","city":"Pleasanton","state":"CA","zip":94588}
- `company_name` (`string`, optional): Legal or registered contact's company name. Used for legal documents and formal communications. Max-length [200]. Example: Bowman and Co
- `contact_number` (`string`, optional): Contact number associated with the contact for internal tracking and identification purposes. Max-length [50]. Example: CNT-001234
- `contact_persons` (`array`, optional): The list of contact persons associated with the contact. Example: [{"first_name":"Will","email":"willsmith@bowmanfurniture.com","salutation":"Mr","last_name":"Smith"}]
- `contact_type` (`string`, optional): Determines how the contact is treated in the system. Allowed values: customer, vendor. Example: customer. One of: `customer`, `vendor`.
- `credit_limit` (`number`, optional): For Customer Only : The maximum credit amount that can be allowed for the customer. Once the customer's outstanding receivables reach this limit, the system will restrict the customer from creating any further transactions. Example: 1000
- `currency_id` (`string`, optional): Unique identifier for the currency assigned to this contact. The currency_id must correspond to a valid currency configuration in the system. Note: This value is a set of numeric characters. Example: 460000000000097
- `custom_fields` (`array`, optional): Custom fields of the contact. Example: [{"value":"GBGD078","index":1}]
- `customer_sub_type` (`string`, optional): For Customer Only : Additional classification for customers. Allowed values: individual, business. Example: business. One of: `individual`, `business`.
- `default_templates` (`object`, optional): Default Templates value. Example: {"invoice_template_id":460000000052069,"estimate_template_id":460000000000179,"creditnote_template_id":460000000000211,"purchaseorder_template_id":460000000000213}
- `facebook` (`string`, optional): Facebook profile URL for the contact. Max-length [100]. Example: zoho
- `ignore_auto_number_generation` (`boolean`, optional): Indicates whether the auto generation contact_number is ignored or not for the contact. Allowed values: true, false. Example: False
- `is_portal_enabled` (`boolean`, optional): Indicates whether portal access is enabled for the primary contact person. Allowed value: true and false. Example: True
- `language_code` (`string`, optional): Preferred language for the contact. Determines portal language. Allowed values: de,en,es,fr,it,ja,nl,pt,pt_br,sv,zh,en_gb Example: en. One of: `de`, `en`, `es`, `fr`, `it`, `ja`, `nl`, `pt`, `pt_br`, `sv`, `zh`, `en_gb`.
- `notes` (`string`, optional): Additional comments or notes about the contact. Example: Payment option : Through check
- `opening_balances` (`array`, optional): List of opening balances for the contact. Example: [{"location_id":"460000000038080","exchange_rate":1,"opening_balance_amount":1200}]
- `owner_id` (`string`, optional): For Customer Only : Unique identifier for the user assigned as the owner of the contact. This field specifies which user in the organization is responsible for managing the business relationship with this contact. Note: This value is a set of numeric characters. Example: 460000000016051
- `payment_terms` (`integer`, optional): Number of days allowed for payment after the invoice date. Example: 15
- `payment_terms_label` (`string`, optional): Human-readable label of payment terms displayed on invoices and other transactions. Max-length [200]. Example: Net 15
- `pricebook_id` (`string`, optional): Pricebook id which is associated with the contact. Note: This value is a set of numeric characters. Example: 460000000000123
- `shipping_address` (`object`, optional): Shipping address information for the contact. Example: {"address":"4900 Hopyard Rd","city":"Pleasanton","state":"CA","zip":94588}
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_authority_name` (`string`, optional): Display name of the tax authority responsible for the customer's tax jurisdiction. Example: California Tax Authority
- `twitter` (`string`, optional): X profile URL for the contact. Max-length [100]. Example: zoho
- `website` (`string`, optional): Official website URL of the contact. Example: www.bowmanfurniture.com

Example input: `{"contact_name":"<contact_name>","organization_id":"<organization_id>"}`

### `zohobooks_contact_mark_active`

Mark Contact Active · Write

Mark an inactive customer or vendor as active so it can be used on new transactions. Returns a success code and message. Use this to reactivate a contact. Use contact_mark_inactive to deactivate one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contact_id` (`string`, required): Unique identifier of the contact. Note: This value is a set of numeric characters. Example: 460000000026049
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"contact_id":"<contact_id>","organization_id":"<organization_id>"}`

### `zohobooks_contact_mark_inactive`

Mark Contact Inactive · Write

Mark a customer or vendor as inactive so it no longer appears on new transactions. Returns a success code and message. Use this to retire a contact without deleting it. Use contact_mark_active to reverse it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contact_id` (`string`, required): Unique identifier of the contact. Note: This value is a set of numeric characters. Example: 460000000026049
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"contact_id":"<contact_id>","organization_id":"<organization_id>"}`

### `zohobooks_contact_person_create`

Create Contact Person · Write

Add a contact person (name, email, phone) to an existing customer or vendor. Returns a contact_person array (each with contact_id, contact_person_id, salutation, first_name, last_name, email). Use this to add a person to a contact. Use contact_person_update to change an existing person. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `first_name` (`string`, required): First name of the contact person. Max-length [100] Example: Will
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `communication_preference` (`object`, optional): Preferred modes of communication for the contact person.
- `contact_id` (`string`, optional): Contact id of the contact Example: 460000000026049
- `department` (`string`, optional): department on which a person belongs. Max-length [50] Example: Sales
- `designation` (`string`, optional): designation of a person. Max-length [50] Example: Sales Engineer
- `email` (`string`, optional): Email address of the contact person. Max-length [100] Example: willsmith@bowmanfurniture.com
- `enable_portal` (`boolean`, optional): option to enable the portal access. allowed values true,false Example: True
- `last_name` (`string`, optional): Last name of the contact person. Max-length [100] Example: Smith
- `mobile` (`string`, optional): Max-length [50] Example: +1-4054439562
- `phone` (`string`, optional): Max-length [50] Example: +1-925-921-9201
- `salutation` (`string`, optional): Salutation for the contact. Max-length [25] Example: Mr
- `skype` (`string`, optional): skype address. Max-length [50] Example: zoho

Example input: `{"first_name":"<first_name>","organization_id":"<organization_id>"}`

### `zohobooks_contact_person_update`

Update Contact Person · Write

Update a contact person's name, email, phone or other details. Returns a contact_person array (each with contact_id, contact_person_id, salutation, first_name, last_name, email). Use this to change an existing contact person. Use contact_person_create to add a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): Contact id of the contact Example: 460000000026049
- `contact_person_id` (`string`, required): Unique identifier of the contact person. Example: 460000000026051
- `first_name` (`string`, required): First name of the contact person. Max-length [100] Example: Will
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `communication_preference` (`object`, optional): Preferred modes of communication for the contact person.
- `department` (`string`, optional): department on which a person belongs. Max-length [50] Example: Sales
- `designation` (`string`, optional): designation of a person. Max-length [50] Example: Sales Engineer
- `email` (`string`, optional): Email address of the contact person. Max-length [100] Example: willsmith@bowmanfurniture.com
- `enable_portal` (`boolean`, optional): option to enable the portal access. allowed values true,false Example: True
- `is_primary_contact` (`boolean`, optional): To mark contact person as primary for contact Example: True
- `last_name` (`string`, optional): Last name of the contact person. Max-length [100] Example: Smith
- `mobile` (`string`, optional): Max-length [50] Example: +1-4054439562
- `phone` (`string`, optional): Max-length [50] Example: +1-925-921-9201
- `salutation` (`string`, optional): Salutation for the contact. Max-length [25] Example: Mr
- `skype` (`string`, optional): skype address. Max-length [50] Example: zoho

Example input: `{"contact_id":"<contact_id>","contact_person_id":"<contact_person_id>","first_name":"<first_name>","organization_id":"<organization_id>"}`

### `zohobooks_contact_statement_email`

Email Contact Statement · Write

Email a statement of account to a customer for a date range. Returns a success code and message. Use this to send a customer their account statement. Use invoice_email to send a single invoice. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Body of an email has to be sent. Max-length [5000] Example: Dear Customer,     <br/>We have attached with this email a list of all your transactions with us for the period 01 Sep 2013 to 30 Sep 2013. You can write to us or call us if you need any assistance or clarifications.     <br/>Thanks for your business.<br/>Regards<br/>Zillium Inc
- `contact_id` (`string`, required): Unique identifier of the contact. Note: This value is a set of numeric characters. Example: 460000000026049
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `subject` (`string`, required): Subject of an email has to be sent. Max-length [1000] Example: Statement of transactions with Zillium Inc
- `to_mail_ids` (`array`, required): Array of email address of the recipients. Example: ["willsmith@bowmanfurniture.com"]
- `cc_mail_ids` (`array`, optional): Array of email address of the recipients to be cced. Example: ["peterparker@bowmanfurniture.com"]
- `end_date` (`string`, optional): End date for the statement. Date format [yyyy-mm-dd]
- `multipart_or_formdata` (`string`, optional): Files to be attached along with the statement. Example: file
- `send_from_org_email_id` (`boolean`, optional): Boolean to trigger the email from the organization's email address Example: True
- `start_date` (`string`, optional): If start_date and end_date are not given, current month's statement will be sent to contact. Date format [yyyy-mm-dd]

Example input: `{"body":"<body>","contact_id":"<contact_id>","organization_id":"<organization_id>","subject":"<subject>","to_mail_ids":["willsmith@bowmanfurniture.com"]}`

### `zohobooks_contact_update`

Update Contact · Write

Update an existing customer or vendor's details, addresses, contact persons or payment terms. Returns a contact object with contact_id, contact_name, company_name, has_transaction, contact_type, customer_sub_type. Use this to change a contact you have the contact_id for. Use contact_create for a new contact. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): Unique identifier of the contact. Note: This value is a set of numeric characters. Example: 460000000026049
- `contact_name` (`string`, required): Display name for the contact. It is used for searching and displaying contacts. Example: Bowman and Co
- `contact_type` (`string`, required): Determines how the contact is treated in the system. Allowed values: customer, vendor. Example: customer. One of: `customer`, `vendor`.
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `billing_address` (`object`, optional): Billing address information for the contact. Example: {"address":"4900 Hopyard Rd","city":"Pleasanton","state":"CA","zip":94588}
- `company_name` (`string`, optional): Legal or registered contact's company name. Used for legal documents and formal communications. Max-length [200]. Example: Bowman and Co
- `contact_number` (`string`, optional): Contact number associated with the contact for internal tracking and identification purposes. Max-length [50]. Example: CNT-001234
- `contact_persons` (`array`, optional): The list of contact persons associated with the contact. Example: [{"contact_person_id":460000000026051,"first_name":"Will","email":"willsmith@bowmanfurniture.com","salutation":"Mr"}]
- `credit_limit` (`number`, optional): For Customer Only : The maximum credit amount that can be allowed for the customer. Once the customer's outstanding receivables reach this limit, the system will restrict the customer from creating any further transactions. Example: 1000
- `currency_id` (`string`, optional): Unique identifier for the currency assigned to this contact. The currency_id must correspond to a valid currency configuration in the system. Note: This value is a set of numeric characters. Example: 460000000000097
- `custom_fields` (`array`, optional): List of custom fields for the contact. Example: [{"value":"GBGD078","index":1,"label":"VAT ID"}]
- `customer_sub_type` (`string`, optional): For Customer Only : Additional classification for customers. Allowed values: individual, business. Example: business. One of: `individual`, `business`.
- `default_templates` (`object`, optional): Default Templates value. Example: {"invoice_template_id":460000000052069,"estimate_template_id":460000000000179,"creditnote_template_id":460000000000211,"purchaseorder_template_id":460000000000213}
- `facebook` (`string`, optional): Facebook profile URL for the contact. Max-length [100]. Example: zoho
- `ignore_auto_number_generation` (`boolean`, optional): Indicates whether the auto generation contact_number is ignored or not for the contact. Allowed values: true, false. Example: False
- `notes` (`string`, optional): Additional comments or notes about the contact. Example: Payment option : Through check
- `opening_balances` (`array`, optional): List of opening balances for the contact. Example: [{"location_id":"460000000038080","exchange_rate":1,"opening_balance_amount":1200}]
- `owner_id` (`string`, optional): For Customer Only : Unique identifier for the user assigned as the owner of the contact. This field specifies which user in the organization is responsible for managing the business relationship with this contact. Note: This value is a set of numeric characters. Example: 460000000016051
- `payment_terms` (`integer`, optional): Number of days allowed for payment after the invoice date. Example: 15
- `payment_terms_label` (`string`, optional): Human-readable label of payment terms displayed on invoices and other transactions. Max-length [200]. Example: Net 15
- `pricebook_id` (`string`, optional): Pricebook id which is associated with the contact. Note: This value is a set of numeric characters. Example: 460000000000123
- `shipping_address` (`object`, optional): Shipping address information for the contact. Example: {"address":"4900 Hopyard Rd","city":"Pleasanton","state":"CA","zip":94588}
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_authority_name` (`string`, optional): Display name of the tax authority responsible for the customer's tax jurisdiction. Example: California Tax Authority
- `twitter` (`string`, optional): X profile URL for the contact. Max-length [100]. Example: zoho
- `website` (`string`, optional): Official website URL of the contact. Example: www.bowmanfurniture.com

Example input: `{"contact_id":"<contact_id>","contact_name":"<contact_name>","contact_type":"customer","organization_id":"<organization_id>"}`

### `zohobooks_credit_note_apply_to_invoices`

Apply Credit Note to Invoices · Write

Apply a credit note's balance to one or more open invoices of the same customer. Returns a success code and message. Use this to settle invoices with an existing credit note. Use invoice_credits_apply to apply credits starting from the invoice. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount_applied` (`number`, required): The total amount applied form the credit note on an invoice. Example: 41.82
- `creditnote_id` (`string`, required): Unique identifier of the credit note. Example: 90300000072369
- `invoice_id` (`string`, required): Invoice ID of the required invoice. Example: 90300000079426
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `invoices` (`array`, optional): List of invoices for which the credit note has been raised. Each entry contains invoice_id and amount. Example: [{"invoice_id":"90300000079426","amount_applied":41.82}]

Example input: `{"amount_applied":41.82,"creditnote_id":"<creditnote_id>","invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_credit_note_create`

Create Credit Note · Write

Create a credit note for a customer, for example to record a return or a billing correction. Returns a creditnote object with creditnote_id, creditnote_number, date, vat_reg_no, status, customer_id. Use this to give a customer credit. Use credit_note_apply_to_invoices to use the credit against invoices. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `creditnote_number` (`string`, required): Unique credit note number displayed in the interface. Auto-generated with CN prefix unless ignore_auto_number_generation is true. Max-Length [100] Example: CN-29
- `customer_id` (`string`, required): Unique identifier for the customer contact. Retrieve customer IDs from the Get Customers API endpoint in the contacts section. This ID links the credit note to the specific customer record. Example: 903000000000099
- `date` (`string`, required): The date on which the credit note is raised. Must be in yyyy-mm-dd format. This date determines the accounting period and affects tax calculations. Example: 2016-06-05
- `line_items` (`array`, required): Array of line items for the credit note. Each line item represents a product or service being credited to the customer. Example: [{"item_id":"90300000081501","account_id":"903000000000388","name":"Basic Monthly","description":"prorated amount for items"}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `reason_for_credit_debit_note` (`string`, required): Reason for issuing the credit note. For UAE Edition, this field is required. Allowed values: tax_treatment_error, supply_cancellation, change_of_tax_treatment, consideration_adjustment, return_of_goods_or_services, volume_discount, others. Max-length [200]. Example: change_of_tax_treatment. One of: `tax_treatment_error`, `supply_cancellation`, `change_of_tax_treatment`, `consideration_adjustment`, `return_of_goods_or_services`, `volume_discount`, `others`.
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":982000000567003}]
- `currency_id` (`string`, optional): Unique identifier for the currency used in the credit note. Can differ from customer currency if multi-currency is enabled. Retrieve currency IDs from the List Currencies API endpoint in the currency section. Example: 982000000567240
- `custom_fields` (`array`, optional): Additional fields for the Credit-Notes.
- `exchange_rate` (`string`, optional): Exchange rate for converting the credit note currency to base currency. Required when currency differs from base currency. Retrieve rates from currency exchange rate APIs. Example: 5.5
- `ignore_auto_number_generation` (`boolean`, optional): Set to true if you need to provide your own credit note number. Example: False
- `invoice_id` (`string`, optional): Invoice ID of the required invoice. Example: 90300000079426
- `is_draft` (`boolean`, optional): Set to true to create the credit note in draft status. Draft credit notes are not finalized and can be modified before sending to customers. Example: True
- `is_inclusive_tax` (`boolean`, optional): Used to specify whether the line item rates are inclusive or exclusive of tax. Example: False
- `location_id` (`string`, optional): Unique identifier for the business location associated with the line item. Retrieve location IDs from the List Locations API endpoint in the locations section. Determines tax settings and business rules for this line item. Example: 460000000038080
- `notes` (`string`, optional): Additional notes or comments for the credit note. Displayed on the credit note document for customer reference. Max-length [5000] Example: Offer for the referral
- `reference_number` (`string`, optional): Optional reference number for tracking purposes. Can be any custom string or auto-generated. Useful for linking to external systems or internal tracking. Max-Length [100] Example: INV-384
- `shipping_address` (`object`, optional): Address of the party the goods are shipped to. Use this field to provide a one-time shipping address that is not saved under the customer. When using this field, do not provide shipping_address_id in the same request. Example: {"address":"4900 Hopyard Rd, Suite 310","city":"Pleasanton","state":"CA","zip":94588}
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier for the tax applied to the line item. Retrieve tax IDs from the List Taxes API endpoint in the taxes section. Determines tax calculations for this specific line item. Example: 903000000000356
- `template_id` (`string`, optional): Unique identifier for the credit note PDF template. Retrieve template IDs from the List Credit Note Templates API endpoint. Determines the visual layout and branding of the credit note document. Example: 90300000001336
- `terms` (`string`, optional): Terms and conditions displayed on the credit note document. Include payment terms, return policies, or other business conditions. Max-length [10000]

Example input: `{"creditnote_number":"<creditnote_number>","customer_id":"<customer_id>","date":"<date>","line_items":[{"item_id":"90300000081501","account_id":"903000000000388","name":"Basic Monthly","description":"prorated amount for items"}],"organization_id":"<organization_id>","reason_for_credit_debit_note":"tax_treatment_error"}`

### `zohobooks_credit_note_update`

Update Credit Note · Write

Update an existing credit note's customer, line items, dates or notes. Returns a creditnote object with creditnote_id, creditnote_number, date, vat_reg_no, status, customer_id. Use this to change a credit note you have the creditnote_id for. Use credit_note_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `creditnote_id` (`string`, required): Unique identifier of the credit note. Example: 90300000072369
- `creditnote_number` (`string`, required): Unique credit note number displayed in the interface. Auto-generated with CN prefix unless ignore_auto_number_generation is true. Max-Length [100] Example: CN-29
- `customer_id` (`string`, required): Unique identifier for the customer contact. Retrieve customer IDs from the Get Customers API endpoint in the contacts section. This ID links the credit note to the specific customer record. Example: 903000000000099
- `date` (`string`, required): The date on which the credit note is raised. Must be in yyyy-mm-dd format. This date determines the accounting period and affects tax calculations. Example: 2016-06-05
- `line_items` (`array`, required): Line items of a credit note. Example: [{"item_id":"90300000081501","account_id":"903000000000388","name":"Basic Monthly","description":"prorated amount for items"}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `reason_for_credit_debit_note` (`string`, required): Reason for issuing the credit note. For UAE Edition, this field is required. Allowed values: tax_treatment_error, supply_cancellation, change_of_tax_treatment, consideration_adjustment, return_of_goods_or_services, volume_discount, others. Max-length [200]. Example: change_of_tax_treatment. One of: `tax_treatment_error`, `supply_cancellation`, `change_of_tax_treatment`, `consideration_adjustment`, `return_of_goods_or_services`, `volume_discount`, `others`.
- `account_id` (`string`, optional): Unique identifier for the chart of accounts entry. Retrieve account IDs from the List Chart of Accounts API endpoint. Determines which account the line item affects for accounting purposes. Example: 903000000000388
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":982000000567003}]
- `currency_id` (`string`, optional): Unique identifier for the currency used in the credit note. Can differ from customer currency if multi-currency is enabled. Retrieve currency IDs from the List Currencies API endpoint in the currency section. Example: 982000000567240
- `custom_fields` (`array`, optional): Additional fields for the Credit-Notes.
- `description` (`string`, optional): Detailed description of the line item. Provides additional information about the product or service being credited. Displayed on the credit note document. Example: prorated amount for items
- `exchange_rate` (`string`, optional): Exchange rate for converting the credit note currency to base currency. Required when currency differs from base currency. Retrieve rates from currency exchange rate APIs. Example: 5.5
- `ignore_auto_number_generation` (`boolean`, optional): Set to true if you need to provide your own credit note number. Example: False
- `is_draft` (`boolean`, optional): Set to true to create the credit note in draft status. Draft credit notes are not finalized and can be modified before sending to customers. Example: True
- `is_inclusive_tax` (`boolean`, optional): Used to specify whether the line item rates are inclusive or exclusive of tax. Example: False
- `item_id` (`string`, optional): Unique identifier for the item in the line item. Retrieve item IDs from the List Items API endpoint in the items section. Links the line item to a specific product or service. Example: 90300000081501
- `location_id` (`string`, optional): Unique identifier for the business location associated with the line item. Retrieve location IDs from the List Locations API endpoint in the locations section. Determines tax settings and business rules for this line item. Example: 460000000038080
- `name` (`string`, optional): Name or title of the line item. Describes the product or service being credited. This name is displayed on the credit note document. Example: Basic Monthly
- `notes` (`string`, optional): Additional notes or comments for the credit note. Displayed on the credit note document for customer reference. Max-length [5000] Example: Offer for the referral
- `quantity` (`integer`, optional): Number of units being credited for this line item. Must be a positive number. Used to calculate the total amount for the line item. Example: 1
- `rate` (`number`, optional): Rate of the line item. Example: 0
- `reference_number` (`string`, optional): Optional reference number for tracking purposes. Can be any custom string or auto-generated. Useful for linking to external systems or internal tracking. Max-Length [100] Example: INV-384
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier for the tax applied to the line item. Retrieve tax IDs from the List Taxes API endpoint in the taxes section. Determines tax calculations for this specific line item. Example: 903000000000356
- `template_id` (`string`, optional): Unique identifier for the credit note PDF template. Retrieve template IDs from the List Credit Note Templates API endpoint. Determines the visual layout and branding of the credit note document. Example: 90300000001336
- `terms` (`string`, optional): Terms and conditions displayed on the credit note document. Include payment terms, return policies, or other business conditions. Max-length [10000]
- `unit` (`string`, optional): Unit of the line item. E.g: kgs, Nos. Example: kgs

Example input: `{"creditnote_id":"<creditnote_id>","creditnote_number":"<creditnote_number>","customer_id":"<customer_id>","date":"<date>","line_items":[{"item_id":"90300000081501","account_id":"903000000000388","name":"Basic Monthly","description":"prorated amount for items"}],"organization_id":"<organization_id>","reason_for_credit_debit_note":"tax_treatment_error"}`

### `zohobooks_customer_payment_create`

Record Customer Payment · Write

Record a payment received from a customer and apply it to one or more invoices. Returns a payment object with payment_id, payment_mode, amount, amount_refunded, bank_charges, date. Use this when money is received. Use invoice_credits_apply to apply credits the customer already has. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`number`, required): Amount paid in the respective payment. Example: 450
- `amount_applied` (`number`, required): Amount paid for the invoice. Example: 450
- `customer_id` (`string`, required): Customer ID of the customer involved in the payment. Note: This value is a set of numeric characters. Example: 903000000000099
- `date` (`string`, required): Date on which payment is made. Format [yyyy-mm-dd] Example: 2016-06-05
- `invoice_id` (`string`, required): Invoice ID of the required invoice. Note: This value is a set of numeric characters. Example: 90300000079426
- `invoices` (`array`, required): List of invoices associated with the payment. Each invoice object contains invoice_id, invoice_number, date, invoice_amount, amount_applied and balance_amount. Example: [{"invoice_id":"90300000079426","amount_applied":450,"tax_amount_withheld":0}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `payment_mode` (`string`, required): Mode through which payment is made. This can be check, cash, creditcard, banktransfer, bankremittance, autotransaction or others. Max-length [100] Example: cash
- `account_id` (`string`, optional): ID of the cash/bank account the payment has to be deposited. Note: This value is a set of numeric characters.
- `bank_charges` (`number`, optional): Denotes any additional bank charges. Example: 10
- `contact_persons` (`array`, optional): IDs of the contact personsthe thank you mail has to be triggered. Example: ["982000000870911","982000000870915"]
- `custom_fields` (`array`, optional): Additional fields for the payments. Example: [{"value":129890,"label":"label"}]
- `description` (`string`, optional): Description about the payment. Example: Payment has been added to INV-384
- `exchange_rate` (`number`, optional): Exchange rate for the currency used in the invoices and customer's currency. The payment amount would be the multiplicative product of the original amount and the exchange rate. Example: 1
- `location_id` (`string`, optional): Location ID. Note: This value is a set of numeric characters. Example: 460000000038080
- `reference_number` (`string`, optional): Reference number generated for the payment. A string of your choice can also be used as the reference number. Max-length [100] Example: INV-384
- `retainerinvoice_id` (`string`, optional): ID of the retainer invoice associated with the payment. Note: This value is a set of numeric characters. Example: 982000000567114
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]

Example input: `{"amount":450,"amount_applied":450,"customer_id":"<customer_id>","date":"<date>","invoice_id":"<invoice_id>","invoices":[{"invoice_id":"90300000079426","amount_applied":450,"tax_amount_withheld":0}],"organization_id":"<organization_id>","payment_mode":"<payment_mode>"}`

### `zohobooks_customer_payment_update`

Update Customer Payment · Write

Update a recorded customer payment's amount, date, mode or invoice allocation. Returns a payment object with payment_id, payment_mode, amount, amount_refunded, bank_charges, date. Use this to correct a payment you have the payment_id for. Use customer_payment_create for a new payment. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `amount` (`number`, required): Amount paid in the respective payment. Example: 450
- `amount_applied` (`number`, required): Amount paid for the invoice. Example: 450
- `customer_id` (`string`, required): Customer ID of the customer involved in the payment. Note: This value is a set of numeric characters. Example: 903000000000099
- `invoice_id` (`string`, required): Invoice ID of the required invoice. Note: This value is a set of numeric characters. Example: 90300000079426
- `invoices` (`array`, required): List of invoices associated with the payment. Each invoice object contains invoice_id, invoice_number, date, invoice_amount, amount_applied and balance_amount. Example: [{"invoice_id":"90300000079426","amount_applied":450,"tax_amount_withheld":0}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `payment_id` (`string`, required): Unique identifier of the payment. Note: This value is a set of numeric characters. Example: 9030000079467
- `payment_mode` (`string`, required): Mode through which payment is made. This can be check, cash, creditcard, banktransfer, bankremittance, autotransaction or others. Max-length [100] Example: cash
- `account_id` (`string`, optional): ID of the cash/bank account the payment has to be deposited. Note: This value is a set of numeric characters.
- `bank_charges` (`number`, optional): Denotes any additional bank charges. Example: 10
- `custom_fields` (`array`, optional): Additional fields for the payments. Example: [{"value":129890,"label":"label"}]
- `date` (`string`, optional): Date on which payment is made. Format [yyyy-mm-dd] Example: 2016-06-05
- `description` (`string`, optional): Description about the payment. Example: Payment has been added to INV-384
- `exchange_rate` (`number`, optional): Exchange rate for the currency used in the invoices and customer's currency. The payment amount would be the multiplicative product of the original amount and the exchange rate. Example: 1
- `location_id` (`string`, optional): Location ID. Note: This value is a set of numeric characters. Example: 460000000038080
- `reference_number` (`string`, optional): Reference number generated for the payment. A string of your choice can also be used as the reference number. Max-length [100] Example: INV-384
- `retainerinvoice_id` (`string`, optional): ID of the retainer invoice associated with the payment. Note: This value is a set of numeric characters. Example: 982000000567114
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_amount_withheld` (`number`, optional): Amount withheld for tax. Example: 0

Example input: `{"amount":450,"amount_applied":450,"customer_id":"<customer_id>","invoice_id":"<invoice_id>","invoices":[{"invoice_id":"90300000079426","amount_applied":450,"tax_amount_withheld":0}],"organization_id":"<organization_id>","payment_id":"<payment_id>","payment_mode":"<payment_mode>"}`

### `zohobooks_estimate_create`

Create Estimate · Write

Create an estimate (quote) for a customer with line items, dates, terms and notes. Returns an estimate object with estimate_id, estimate_number, date, reference_number, status, customer_id. Use this to quote a customer. Use invoice_create to bill them directly. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`string`, required): The ID of the customer (contact) for whom the estimate is created. This must be a valid contact ID from your organization; obtain it using the Contacts API (GET /contacts) or the Create Contact response. Note: This value is a set of numeric characters. Example: 982000000567001
- `line_items` (`array`, required): Line items of an estimate. Example: [{"name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120,"quantity":1}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `accept_retainer` (`boolean`, optional): Boolean flag indicating whether a retainer invoice should be automatically created if the customer accepts this estimate. When set to true, a retainer invoice is generated upon acceptance, streamlining the process for upfront payments or deposits. Allowed values: true and false. Example: True
- `adjustment` (`number`, optional): Additional charge or credit amount applied to the estimate total. This can be used for rounding adjustments, handling fees, or any other one-time charges/credits. Positive values add to the total, negative values reduce the total. This amount is applied after tax calculation and affects the final estimate total. Example: 0
- `adjustment_description` (`string`, optional): Text description explaining the reason for the adjustment amount. This description appears on the estimate document to explain why the adjustment was applied. Common examples include "Rounding adjustment", "Handling fee", "Early payment discount", or "Late payment fee". This helps customers understand the purpose of the adjustment.
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the estimate. Example: [{"contact_person_id":982000000567003}]
- `currency_id` (`string`, optional): The ID of the currency in which the estimate will be created. Use this to specify the customer's preferred currency for transactions. Fetch valid currency IDs using the Currency API (GET /currencies). Note: This value is a set of numeric characters. Example: 982000000000190
- `custom_body` (`string`, optional): Custom body for the email to be sent.
- `custom_fields` (`array`, optional): Custom fields for an estimate. Example: [{"value":"15 Dec 2013","index":1}]
- `custom_subject` (`string`, optional): Custom subject for the email to be sent.
- `date` (`string`, optional): Date the estimate is created. This date appears on the estimate document and is used for record-keeping, reporting, and determining the validity period. Format: YYYY-MM-DD. Example: 2013-11-18
- `description` (`string`, optional): Detailed description of the product or service in this line item. Use this field to provide specifications, features, or any other relevant information that helps the customer understand about the line item. Example: 500GB, USB 2.0 interface 1400 rpm, protective hard case.
- `discount` (`number`, optional): Discount applied to the estimate, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_type` (`string`, optional): Specifies how the discount is applied: at the entity (entire estimate) level or item (line item) level. Allowed values: "entity_level", "item_level". This setting determines whether the discount is distributed across all items or applied to specific items only. Example: item_level
- `estimate_number` (`string`, optional): Unique identifier for the estimate. If not provided, the system auto-generates one. This number is used for tracking, referencing, and communicating the estimate to customers. It appears on the estimate PDF and in all customer communications. Example: EST-00002
- `exchange_rate` (`number`, optional): Exchange rate used to convert the estimate amount to the base currency of your organization. Required for multi-currency transactions. The exchange rate affects the total amount and reporting in the base currency. Example: 1
- `expiry_date` (`string`, optional): Date when the estimate expires. After this date, the estimate is no longer valid for acceptance. Used to set deadlines for customer response and manage time-sensitive offers. Format: YYYY-MM-DD. Example: 2013-11-30
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto estimate number generation for this estimate. This mandates the estimate number. Example: False
- `is_discount_before_tax` (`boolean`, optional): Indicates whether the discount is applied before or after tax calculation. When true, the discount is applied to the subtotal before tax. When false, the discount is applied after tax is calculated. Example: True
- `is_inclusive_tax` (`boolean`, optional): Used to specify whether the line item rates are inclusive or exclusive of tax. Example: False
- `item_id` (`string`, optional): Unique identifier of the item (product or service) being quoted in this line item. Use the `item_id` returned by the Items API for the same organization. This links the line item to a specific product or service in your catalog. Note: This value is a set of numeric characters.
- `line_item_id` (`string`, optional): Unique identifier of the line item within the estimate. Required when updating or referencing a specific line item. If omitted during creation, a new line item will be added. Note: This value is a set of numeric characters. Example: 982000000567021
- `location_id` (`string`, optional): Unique identifier of the business location associated with the estimate. Use the `location_id` returned by the Locations API for the same organization. This links the estimate to a specific business location, which may affect tax calculations, reporting, and business operations. Required if your organization has multiple locations configured. Note: This value is a set of numeric characters. Example: 460000000038080
- `name` (`string`, optional): Name of the product or service for this line item. This is displayed on the estimate document and helps the customer identify what is being quoted. Example: Hard Drive
- `notes` (`string`, optional): Additional information or comments to be displayed on the estimate document. This field is typically used for thank you messages, special instructions, or any other information you want to communicate to the customer. The notes appear on the estimate PDF and are visible to customers. Example: Looking forward for your business.
- `project_id` (`string`, optional): Unique identifier of the project associated with this estimate. Use the project_id returned by the Projects API for the same organization. Linking an estimate to a project helps with project-based billing, tracking, and reporting. Note: This value is a set of numeric characters. Example: 90300000087378
- `quantity` (`number`, optional): Number of units of the product or service being quoted in this line item. This value is multiplied by the rate to calculate the line item total. Example: 1
- `rate` (`number`, optional): Unit price or rate for the product or service in this line item. This value is multiplied by the quantity to determine the line item total before taxes and discounts. Example: 120
- `reference_number` (`string`, optional): External reference associated with the estimate. Use this field to link the estimate to external systems, customer requests, or internal workflows. The reference number appears on the estimate document for customer and internal tracking. Example: QRT-12346
- `retainer_percentage` (`integer`, optional): Percentage of the estimate amount to be collected as a retainer (upfront payment) when the estimate is accepted. Specify a value between 0 and 100. This determines the portion of the total estimate that will be invoiced as a retainer. Example: 10
- `salesperson_name` (`string`, optional): Name of the sales person. Example: Will smith
- `send` (`boolean`, optional): Send the estimate to the contact person(s) associated with the estimate.Allowed Values: true and false
- `shipping_address` (`object`, optional): Address of the party the goods are shipped to. Use this field to provide a one-time shipping address that is not saved under the customer. When using this field, do not provide shipping_address_id in the same request. Example: {"address":"4900 Hopyard Rd, Suite 310","city":"Pleasanton","state":"CA","zip":94588}
- `shipping_charge` (`string`, optional): Additional shipping or delivery charges applied to the estimate. Must be specified as a fixed amount (e.g., "25.00"). This amount is added to the estimate total and is subject to tax calculation. Example: 0
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier of the tax to be applied to this line item. Use the `tax_id` returned by the Taxes API for the same organization. This determines which tax rate and rules are applied to the line item, affecting the final tax calculation and compliance reporting. Note: This value is a set of numeric characters. Example: 982000000557028
- `template_id` (`string`, optional): The ID of the template used for generating the estimate PDF. Use this to apply custom branding or formats. Fetch template IDs using the Templates API (GET /estimates/templates). Note: This value is a set of numeric characters. Example: 982000000000143
- `terms` (`string`, optional): Defines the terms and conditions to be included in the estimate document. This field can be used to specify payment terms, delivery schedules, return policies, or other transactional details. The terms appear on the estimate PDF and helps communicate key conditions related to the estimate. Example: Terms & Conditions apply
- `unit` (`string`, optional): Unit of measurement for the product or service in this line item (e.g., kgs, Nos., hours). Helps clarify the quantity being quoted.

Example input: `{"customer_id":"<customer_id>","line_items":[{"name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120,"quantity":1}],"organization_id":"<organization_id>"}`

### `zohobooks_estimate_email`

Email Estimate · Write

Email an estimate to the customer's contact persons, with an optional custom subject and body. Returns a success code and message. Use this to send a quote. Use estimate_mark_sent if it was delivered another way. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `estimate_id` (`string`, required): Unique identifier of the estimate. Note: This value is a set of numeric characters. Example: 982000000567011
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `to_mail_ids` (`array`, required): Array of email address of the recipients. Example: ["willsmith@bowmanfurniture.com"]
- `attachments` (`string`, optional): Files to be attached to the email
- `body` (`string`, optional): Body of an email has to be sent.
- `cc_mail_ids` (`array`, optional): Array of email address of the recipients to be cced. Example: ["peterparker@bowmanfurniture.com"]
- `mail_documents` (`array`, optional): Array of Documents ids, which is attached into email Example: ["982000000000121"]
- `send_from_org_email_id` (`boolean`, optional): Boolean to trigger the email from the organization's email address Example: False
- `subject` (`string`, optional): Subject of an email has to be sent. Example: Statement of transactions with Zillium Inc

Example input: `{"estimate_id":"<estimate_id>","organization_id":"<organization_id>","to_mail_ids":["willsmith@bowmanfurniture.com"]}`

### `zohobooks_estimate_mark_accepted`

Mark Estimate Accepted · Write

Mark a sent estimate as accepted by the customer. Returns a success code and message. Use this when the customer approves the quote. Use estimate_mark_declined when they reject it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `estimate_id` (`string`, required): Unique identifier of the estimate. Note: This value is a set of numeric characters. Example: 982000000567011
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"estimate_id":"<estimate_id>","organization_id":"<organization_id>"}`

### `zohobooks_estimate_mark_declined`

Mark Estimate Declined · Write

Mark a sent estimate as declined by the customer. Returns a success code and message. Use this when the customer rejects the quote. Use estimate_mark_accepted when they approve it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `estimate_id` (`string`, required): Unique identifier of the estimate. Note: This value is a set of numeric characters. Example: 982000000567011
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"estimate_id":"<estimate_id>","organization_id":"<organization_id>"}`

### `zohobooks_estimate_mark_sent`

Mark Estimate Sent · Write

Mark a draft estimate as sent without emailing it. Returns a success code and message. Use this when the quote was delivered outside Zoho Books. Use estimate_email to email it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `estimate_id` (`string`, required): Unique identifier of the estimate. Note: This value is a set of numeric characters. Example: 982000000567011
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"estimate_id":"<estimate_id>","organization_id":"<organization_id>"}`

### `zohobooks_estimate_update`

Update Estimate · Write

Update an existing estimate's customer, line items, dates or terms. Returns an estimate object with estimate_id, estimate_number, date, reference_number, status, customer_id. Use this to change an estimate you have the estimate_id for. Use estimate_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `custom_fields` (`array`, required): Custom fields for an estimate. Example: [{"value":"15 Dec 2013","index":1}]
- `customer_id` (`string`, required): The ID of the customer (contact) for whom the estimate is created. This must be a valid contact ID from your organization; obtain it using the Contacts API (GET /contacts) or the Create Contact response. Note: This value is a set of numeric characters. Example: 982000000567001
- `estimate_id` (`string`, required): Unique identifier of the estimate. Note: This value is a set of numeric characters. Example: 982000000567011
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `accept_retainer` (`boolean`, optional): Boolean flag indicating whether a retainer invoice should be automatically created if the customer accepts this estimate. When set to true, a retainer invoice is generated upon acceptance, streamlining the process for upfront payments or deposits. Allowed values: true and false. Example: True
- `adjustment` (`number`, optional): Additional charge or credit amount applied to the estimate total. This can be used for rounding adjustments, handling fees, or any other one-time charges/credits. Positive values add to the total, negative values reduce the total. This amount is applied after tax calculation and affects the final estimate total. Example: 0
- `adjustment_description` (`string`, optional): Text description explaining the reason for the adjustment amount. This description appears on the estimate document to explain why the adjustment was applied. Common examples include "Rounding adjustment", "Handling fee", "Early payment discount", or "Late payment fee". This helps customers understand the purpose of the adjustment.
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the estimate. Example: [{"contact_person_id":982000000567003}]
- `currency_id` (`string`, optional): The ID of the currency in which the estimate will be created. Use this to specify the customer's preferred currency for transactions. Fetch valid currency IDs using the Currency API (GET /currencies). Note: This value is a set of numeric characters. Example: 982000000000190
- `custom_body` (`string`, optional): Custom body for the email to be sent.
- `custom_subject` (`string`, optional): Custom subject for the email to be sent.
- `date` (`string`, optional): Date the estimate is created. This date appears on the estimate document and is used for record-keeping, reporting, and determining the validity period. Format: YYYY-MM-DD. Example: 2013-11-18
- `description` (`string`, optional): Detailed description of the product or service in this line item. Use this field to provide specifications, features, or any other relevant information that helps the customer understand about the line item. Example: 500GB, USB 2.0 interface 1400 rpm, protective hard case.
- `discount` (`number`, optional): Discount applied to the estimate, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_type` (`string`, optional): How the discount is specified. Allowed values are entity_level or item_level.Allowed Values: entity_level and item_level Example: item_level
- `estimate_number` (`string`, optional): Unique identifier for the estimate. If not provided, the system auto-generates one. This number is used for tracking, referencing, and communicating the estimate to customers. It appears on the estimate PDF and in all customer communications. Example: EST-00002
- `exchange_rate` (`number`, optional): Exchange rate used to convert the estimate amount to the base currency of your organization. Required for multi-currency transactions. The exchange rate affects the total amount and reporting in the base currency. Example: 1
- `expiry_date` (`string`, optional): Date when the estimate expires. After this date, the estimate is no longer valid for acceptance. Used to set deadlines for customer response and manage time-sensitive offers. Format: YYYY-MM-DD. Example: 2013-11-30
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto estimate number generation for this estimate. This mandates the estimate number. Example: False
- `is_discount_before_tax` (`boolean`, optional): Used to specify how the discount has to applied. Either before or after the calculation of tax. Example: True
- `is_inclusive_tax` (`boolean`, optional): Used to specify whether the line item rates are inclusive or exclusive of tax. Example: False
- `item_id` (`string`, optional): Unique identifier of the item (product or service) being quoted in this line item. Use the `item_id` returned by the Items API for the same organization. This links the line item to a specific product or service in your catalog. Note: This value is a set of numeric characters.
- `line_item_id` (`string`, optional): Unique identifier of the line item within the estimate. Required when updating or referencing a specific line item. If omitted during creation, a new line item will be added. Note: This value is a set of numeric characters. Example: 982000000567021
- `line_items` (`array`, optional): Line items of an estimate. Example: [{"name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120,"quantity":1}]
- `location_id` (`string`, optional): Unique identifier of the business location associated with the estimate. Use the `location_id` returned by the Locations API for the same organization. This links the estimate to a specific business location, which may affect tax calculations, reporting, and business operations. Required if your organization has multiple locations configured. Note: This value is a set of numeric characters. Example: 460000000038080
- `name` (`string`, optional): Name of the product or service for this line item. This is displayed on the estimate document and helps the customer identify what is being quoted. Example: Hard Drive
- `notes` (`string`, optional): Additional information or comments to be displayed on the estimate document. This field is typically used for thank you messages, special instructions, or any other information you want to communicate to the customer. The notes appear on the estimate PDF and are visible to customers. Example: Looking forward for your business.
- `project_id` (`string`, optional): Unique identifier of the project associated with this estimate. Use the project_id returned by the Projects API for the same organization. Linking an estimate to a project helps with project-based billing, tracking, and reporting. Note: This value is a set of numeric characters. Example: 90300000087378
- `quantity` (`number`, optional): Number of units of the product or service being quoted in this line item. This value is multiplied by the rate to calculate the line item total. Example: 1
- `rate` (`number`, optional): Unit price or rate for the product or service in this line item. This value is multiplied by the quantity to determine the line item total before taxes and discounts. Example: 120
- `reference_number` (`string`, optional): External reference associated with the estimate. Use this field to link the estimate to external systems, customer requests, or internal workflows. The reference number appears on the estimate document for customer and internal tracking. Example: QRT-12346
- `retainer_percentage` (`integer`, optional): Percentage of the estimate amount to be collected as a retainer (upfront payment) when the estimate is accepted. Specify a value between 0 and 100. This determines the portion of the total estimate that will be invoiced as a retainer. Example: 10
- `salesperson_name` (`string`, optional): Name of the sales person. Example: Will smith
- `shipping_charge` (`string`, optional): Additional shipping or delivery charges applied to the estimate. Must be specified as a fixed amount (e.g., "25.00"). This amount is added to the estimate total and is subject to tax calculation. Example: 0
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier of the tax to be applied to this line item. Use the `tax_id` returned by the Taxes API for the same organization. This determines which tax rate and rules are applied to the line item, affecting the final tax calculation and compliance reporting. Note: This value is a set of numeric characters. Example: 982000000557028
- `template_id` (`string`, optional): The ID of the template used for generating the estimate PDF. Use this to apply custom branding or formats. Fetch template IDs using the Templates API (GET /estimates/templates). Note: This value is a set of numeric characters. Example: 982000000000143
- `terms` (`string`, optional): Defines the terms and conditions to be included in the estimate document. This field can be used to specify payment terms, delivery schedules, return policies, or other transactional details. The terms appear on the estimate PDF and helps communicate key conditions related to the estimate. Example: Terms & Conditions apply
- `unit` (`string`, optional): Unit of measurement for the product or service in this line item (e.g., kgs, Nos., hours). Helps clarify the quantity being quoted.

Example input: `{"custom_fields":[{"value":"15 Dec 2013","index":1}],"customer_id":"<customer_id>","estimate_id":"<estimate_id>","organization_id":"<organization_id>"}`

### `zohobooks_expense_create`

Create Expense · Write

Record an expense against an expense account and a paid-through account, optionally billable to a customer. Returns an expense object with expense_id, transaction_id, transaction_type, paid_through_account_name, vat_reg_no, reverse_charge_tax_id. Use this for a one-off cost. Use bill_create when a vendor bills you for later payment. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `account_id` (`string`, required): ID of the expense account. Note: This value is a set of numeric characters. Example: 982000000561057
- `amount` (`number`, required): Amount of the Expense. Example: 112.5
- `date` (`string`, required): Date of the expense Example: 2013-11-18
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `paid_through_account_id` (`string`, required): Search expenses by paid through account id. Note: This value is a set of numeric characters. Example: 982000000567250
- `currency_id` (`string`, optional): Unique identifier of the currency. Note: This value is a set of numeric characters. Example: 982000000567001
- `custom_fields` (`array`, optional): Custom fields for an expense.
- `customer_id` (`string`, optional): ID of the expense account. Note: This value is a set of numeric characters. Example: 982000000567001
- `description` (`string`, optional): Description of the expense. Max-length [100] Example: Marketing
- `distance` (`string`, optional): Distance travelled for a particular mileage expense where mileage_type is manual
- `end_reading` (`number`, optional): End reading of odometer when creating a mileage expense where mileage_type is odometer.
- `exchange_rate` (`number`, optional): Exchange rate of the currency with respect to the base currency of the organization. Example: 1
- `is_billable` (`boolean`, optional): To specify whether the expense is billable to the customer or not. Example: True
- `is_inclusive_tax` (`boolean`, optional): To specify whether the tax is inclusive in the amount or not. Example: False
- `line_items` (`array`, optional): Line items for the expense. Example: [{"account_id":982000000561057,"description":"Marketing","amount":112.5,"line_item_id":10763000000140068}]
- `location_id` (`string`, optional): Location ID. Note: This value is a set of numeric characters. Example: 460000000038080
- `mileage_rate` (`number`, optional): Mileage rate for a particular mileage expense.
- `mileage_type` (`string`, optional): Type of the mileage. Example: non_mileage
- `mileage_unit` (`string`, optional): Unit of the distance travelled. Allowed Values: km and mile. One of: `km`, `mile`.
- `project_id` (`string`, optional): ID of the project associated with the customer. Note: This value is a set of numeric characters. Example: 982000000567226
- `receipt` (`string`, optional): Expense receipt file to attach. Allowed Extensions: gif, png, jpeg, jpg, bmp, pdf, xls, xlsx, doc and docx.
- `reference_number` (`string`, optional): Reference number of the expense. Max-length [100]
- `reverse_charge_tax_id` (`string`, optional): ID of the reverse charge tax. Note: This value is a set of numeric characters. Example: 982000000561063
- `start_reading` (`number`, optional): Start reading of odometer when creating a mileage expense where mileage_type is odometer.
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier of the tax. Note: This value is a set of numeric characters. Example: 982000000566007
- `vendor_id` (`string`, optional): ID of the vendor the expense is made. Note: This value is a set of numeric characters.

Example input: `{"account_id":"<account_id>","amount":112.5,"date":"<date>","organization_id":"<organization_id>","paid_through_account_id":"<paid_through_account_id>"}`

### `zohobooks_expense_update`

Update Expense · Write

Update an existing expense's amount, date, accounts, vendor or billable status. Returns an expense object with expense_id, transaction_id, transaction_type, paid_through_account_name, vat_reg_no, reverse_charge_tax_id. Use this to change an expense you have the expense_id for. Use expense_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, required): ID of the expense account. Note: This value is a set of numeric characters. Example: 982000000561057
- `amount` (`number`, required): Amount of the Expense. Example: 120.5
- `date` (`string`, required): Date of the expense Example: 2013-11-18
- `expense_id` (`string`, required): Unique identifier of the expense. Note: This value is a set of numeric characters. Example: 982000000030049
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `paid_through_account_id` (`string`, required): Search expenses by paid through account id. Note: This value is a set of numeric characters. Example: 982000000567250
- `currency_id` (`string`, optional): Unique identifier of the currency. Note: This value is a set of numeric characters. Example: 982000000567001
- `custom_fields` (`array`, optional): Custom fields for an expense.
- `customer_id` (`string`, optional): ID of the expense account. Note: This value is a set of numeric characters. Example: 982000000567001
- `delete_receipt` (`boolean`, optional): Delete the existing receipt. If this parameter is set to true, the existing receipt will be deleted and the receipt provided in the request will be attached to the expense. If this parameter is not sent in the request, then the existing receipt will be retained and the new receipt provided in the request will be ignored. Example: False
- `description` (`string`, optional): Description of the expense. Max-length [100] Example: Marketing
- `distance` (`string`, optional): Distance travelled for a particular mileage expense where mileage_type is manual
- `end_reading` (`number`, optional): End reading of odometer when creating a mileage expense where mileage_type is odometer.
- `exchange_rate` (`number`, optional): Exchange rate of the currency with respect to the base currency of the organization. Example: 1
- `is_billable` (`boolean`, optional): To specify whether the expense is billable to the customer or not. Example: True
- `is_inclusive_tax` (`boolean`, optional): To specify whether the tax is inclusive in the amount or not. Example: False
- `line_items` (`array`, optional): Line items for the expense. Example: [{"account_id":982000000561057,"description":"Marketing","amount":112.5,"line_item_id":10763000000140068}]
- `location_id` (`string`, optional): Location ID. Note: This value is a set of numeric characters. Example: 460000000038080
- `mileage_rate` (`number`, optional): Mileage rate for a particular mileage expense.
- `mileage_type` (`string`, optional): Type of the mileage. Example: non_mileage
- `mileage_unit` (`string`, optional): Unit of the distance travelled. Allowed Values: km and mile. One of: `km`, `mile`.
- `project_id` (`string`, optional): ID of the project associated with the customer. Note: This value is a set of numeric characters. Example: 982000000567226
- `receipt` (`string`, optional): Expense receipt file to attach. Allowed Extensions: gif, png, jpeg, jpg, bmp, pdf, xls, xlsx, doc and docx.
- `reference_number` (`string`, optional): Reference number of the expense. Max-length [100]
- `reverse_charge_tax_id` (`string`, optional): ID of the reverse charge tax. Note: This value is a set of numeric characters. Example: 982000000561063
- `start_reading` (`number`, optional): Start reading of odometer when creating a mileage expense where mileage_type is odometer.
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier of the tax. Note: This value is a set of numeric characters. Example: 982000000566007
- `vendor_id` (`string`, optional): ID of the vendor the expense is made. Note: This value is a set of numeric characters.

Example input: `{"account_id":"<account_id>","amount":120.5,"date":"<date>","expense_id":"<expense_id>","organization_id":"<organization_id>","paid_through_account_id":"<paid_through_account_id>"}`

### `zohobooks_invoice_comment_add`

Add Invoice Comment · Write

Add an internal comment to an invoice. Returns a success code and message. Use this to note something on an invoice. Use invoice_comments_list to read existing comments. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `description` (`string`, optional): The description of the comment. Example: This is a comment.
- `payment_expected_date` (`string`, optional): The expected date of payment
- `show_comment_to_clients` (`boolean`, optional): Boolean to check if the comment to be shown to the clients Example: True

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoice_create`

Create Invoice · Write

Create an invoice for a customer with line items, dates, terms and notes; optionally email it on creation. Returns an invoice object with invoice_id, ach_payment_initiated, invoice_number, vat_reg_no, date, status. Use this to bill a customer. Use estimate_create for a quote, or invoice_update to change an existing invoice. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`string`, required): Unique identifier of the customer in the current organization for whom this invoice is created. Required when creating an invoice. Use the `customer_id` returned by the get Customers API. Must belong to the organization specified by the `organization_id` parameter. Note: This value is a set of numeric characters. Example: 982000000567001
- `line_items` (`array`, required): List of line items in the invoice. Example: [{"item_id":982000000030049,"name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `adjustment` (`number`, optional): Additional charge or credit amount applied to the invoice total. This can be used for rounding adjustments, handling fees, or any other one-time charges/credits. Positive values add to the total, negative values reduce the total. This amount is applied after tax calculation and affects the final invoice total. Example: 0
- `adjustment_description` (`string`, optional): Text description explaining the reason for the adjustment amount. This description appears on the invoice document to explain why the adjustment was applied. Common examples include "Rounding adjustment", "Handling fee", "Early payment discount", or "Late payment fee". This helps customers understand the purpose of the adjustment.
- `allow_partial_payments` (`boolean`, optional): Boolean flag that determines whether customers can make partial payments against this invoice. When true, customers can pay less than the full invoice amount, and the invoice will remain open with a remaining balance. When false, customers must pay the full amount to complete the invoice. This setting affects payment processing and invoice status tracking. Example: True
- `batch_payments` (`boolean`, optional): Enable batch payment processing for the invoice. When true, the invoice can be included in batch payment operations. Allowed values true and false Note : is_quick_create needs to be true for batch payments to be processed and batch_payments vales need to pass in request body
- `billing_address_id` (`string`, optional): Unique identifier of the billing address to be used for this invoice. Use the `billing_address_id` returned by the Addresses API for the same customer and organization. This address appears on the invoice document and is used for billing purposes. If omitted, the customer's default billing address will be used. Note: This value is a set of numeric characters. Example: 218500000000142012
- `contact_persons` (`array`, optional): Array of contact person IDs associated with the specified customer. Provide the IDs of contact persons (from the Contacts/Contact Persons API) who should receive invoice communications (e.g., emails) for this invoice. Each ID must belong to the same customer and organization as the invoice. If omitted, the customer's primary contact may be used. Example: ["982000000870911","982000000870915"]
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":982000000567003}]
- `currency_id` (`string`, optional): Unique identifier of the currency in which the invoice will be created for the customer. Use the `currency_id` returned by the Currencies API for the same organization. This sets the currency for all monetary amounts on the invoice; if it differs from the organization's base currency, an appropriate `exchange_rate` may be required. Note: This value is a set of numeric characters. Example: 982000000000190
- `custom_body` (`string`, optional): The custom body of the email.
- `custom_fields` (`array`, optional): Custom fields for an invoice. Example: [{"customfield_id":"46000000012845","value":"Normal"}]
- `custom_subject` (`string`, optional): The custom subject of the email.
- `date` (`string`, optional): The date on which the invoice is created. Use the format yyyy-mm-dd (e.g., 2013-11-17). This date appears on the invoice document and is used for accounting purposes. When searching invoices, supports variants: date_start, date_end, date_before and date_after. Example: 2013-11-17
- `discount` (`number`, optional): Discount applied to the invoice, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_type` (`string`, optional): Specifies the scope of discount application. entity_level applies the discount to the entire invoice total. item_level applies the discount to individual line items. This determines how the discount amount is distributed across the invoice items. Example: item_level
- `due_date` (`string`, optional): The date by which payment is due for the invoice. Use the format yyyy-mm-dd (e.g., 2013-12-03). This date is typically calculated as invoice date + payment_terms days, but can be overridden with a custom date. When searching invoices, supports variants: due_date_start, due_date_end, due_date_before and due_date_after. Example: 2013-12-03
- `exchange_rate` (`number`, optional): Exchange rate used to convert amounts from the invoice currency to the organization's base currency. Required when the invoice currency differs from the organization's base currency. For example, if base currency is USD and invoice currency is EUR, set the EUR to USD exchange rate (e.g., 1.18). Default value is 1.0 when invoice currency matches base currency.
- `expense_id` (`string`, optional): Unique identifier of the billable expense to be converted to an invoice line item. This converts a previously recorded expense into a billable line item on the invoice, enabling expense-to-invoice conversion. Note: This value is a set of numeric characters. Example: 460000000028080
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto invoice number generation for this invoice. This mandates the invoice number. Allowed values true and false
- `invoice_number` (`string`, optional): Unique identifier or reference number for the invoice. When creating an invoice, this can be a custom number (requires `ignore_auto_number_generation=true` query parameter) or left empty for auto-generation. When searching invoices, supports variants: invoice_number_startswith and invoice_number_contains. Maximum length is 100 characters. Must be unique within the organization. Example: INV-00003
- `invoiced_estimate_id` (`string`, optional): Unique identifier of the estimate that was converted to create this invoice. Use this field when creating an invoice from an existing estimate. The `invoiced_estimate_id` links this invoice back to its source estimate, enabling tracking of the conversion process and maintaining the relationship between estimates and invoices. Note: This value is a set of numeric characters.
- `is_discount_before_tax` (`boolean`, optional): Boolean flag that determines when the discount is applied in relation to tax calculation. When true, discount is applied before tax calculation (discount reduces the taxable amount). When false, discount is applied after tax calculation (discount reduces the final total including tax). This affects the final invoice total and tax amounts. Example: True
- `is_inclusive_tax` (`boolean`, optional): Boolean flag that indicates whether line item rates include tax. When true, the specified rates are inclusive of tax (tax is already included in the rate). When false, the rates are exclusive of tax (tax will be added to the rate). This affects how tax calculations are performed on line items. Example: False
- `is_quick_create` (`boolean`, optional): Enable quick create mode for simplified invoice creation. When true, the invoice creation process is streamlined with minimal required fields. Allowed values true and false
- `location_id` (`string`, optional): Unique identifier of the business location associated with the invoice. Use the `location_id` returned by the Locations API for the same organization. This links the invoice to a specific business location, which may affect tax calculations, reporting, and business operations. Required if your organization has multiple locations configured. Note: This value is a set of numeric characters. Example: 460000000038080
- `notes` (`string`, optional): Additional information or comments to be displayed on the invoice document. This field is typically used for thank you messages, special instructions, or any other information you want to communicate to the customer. The notes appear on the invoice PDF and are visible to customers Example: Looking forward for your business.
- `payment_options` (`object`, optional): Payment options for the invoice, online payment gateways and bank accounts. Will be displayed in the pdf.
- `payment_terms` (`integer`, optional): Number of days allowed for payment (e.g., 15, 30, 60). This value determines the invoice due date by adding the specified number of days to the invoice date. For example, if invoice date is 2023-11-17 and payment_terms is 15, the due_date will be 2023-12-02. Maximum value is 100 days.
- `payment_terms_label` (`string`, optional): Custom label for payment terms that appears on the invoice document. Used to override the default system-generated label. For example, instead of the default "Net 15 Days", you can set this to "Net 15", "Due in 15 days", or any custom text. This label is displayed to customers on the invoice. Maximum length is 100 characters.
- `reason` (`string`, optional): The reason for generating the invoice.
- `recurring_invoice_id` (`string`, optional): Unique identifier of the recurring invoice template that generated this invoice. Use this field when creating an invoice from a recurring invoice template. The `recurring_invoice_id` links this invoice back to its source recurring invoice, enabling tracking of which template generated it and maintaining the recurring invoice relationship. Note: This value is a set of numeric characters.
- `reference_number` (`string`, optional): External reference number or identifier for the invoice, such as a purchase order number, contract number, or any other business reference. When converting from an estimate or sales order, this field can be used to reference the original document number.
- `salesorder_item_id` (`string`, optional): Unique identifier of the sales order line item that is being converted to this invoice line item. Use this field when creating an invoice from an existing sales order. The `salesorder_item_id` links this invoice line item back to its source sales order line item, enabling tracking of the conversion process and maintaining the relationship between sales orders and invoices. Note: This value is a set of numeric characters.
- `salesperson_name` (`string`, optional): Name of the salesperson. Max-length [200]
- `send` (`boolean`, optional): Send the invoice to the contact person(s) associated with the invoice. Allowed values true and false.
- `shipping_address` (`object`, optional): Address of the party the goods are shipped to. Use this field to provide a one-time shipping address that is not saved under the customer. When using this field, do not provide shipping_address_id in the same request. Example: {"address":"4900 Hopyard Rd, Suite 310","city":"Pleasanton","state":"CA","zip":94588}
- `shipping_address_id` (`string`, optional): Unique identifier of the shipping address to be used for this invoice. Use the `shipping_address_id` returned by the Addresses API for the same customer and organization. This address appears on the invoice document and is used for delivery purposes. If omitted, the customer's default shipping address will be used. Note: This value is a set of numeric characters. Example: 218500000000142014
- `shipping_charge` (`string`, optional): Additional shipping or delivery charges applied to the invoice. Must be specified as a fixed amount (e.g., "25.00"). This amount is added to the invoice total and is subject to tax calculation. Example: 0
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier of the tax to be applied to this line item. Use the `tax_id` returned by the Taxes API for the same organization. This determines which tax rate and rules are applied to the line item, affecting the final tax calculation and compliance reporting. Note: This value is a set of numeric characters. Example: 982000000557028
- `template_id` (`string`, optional): Unique identifier of the PDF template linked to the invoice. Obtain this value from the `template_id` field in the response of the GET `/invoices/templates` API for your organization. Determines which template is used for the invoice PDF. Note: This value is a set of numeric characters. Example: 982000000000143
- `terms` (`string`, optional): Terms and conditions text to be displayed on the invoice document. This field is used to specify payment terms, delivery conditions, return policies, or any other legal or business terms that apply to this transaction. The terms appear on the invoice PDF and are legally binding. Example: Terms & Conditions apply
- `time_entry_ids` (`array`, optional): Array of time entry IDs to be billed on this line item. This allows you to bill specific time entries against this line item, enabling detailed time-based invoicing and project cost tracking. Note: This value is a set of numeric characters separated by comma.

Example input: `{"customer_id":"<customer_id>","line_items":[{"item_id":982000000030049,"name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120}],"organization_id":"<organization_id>"}`

### `zohobooks_invoice_credits_apply`

Apply Credits to Invoice · Write

Apply existing customer payments or credit notes to an invoice to reduce its balance. Returns a success code and message. Use this to settle an invoice with credits the customer already has. Use customer_payment_create to record a new payment. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `apply_creditnotes` (`array`, required): List of credit notes to be applied to the invoice. Example: [{"amount_applied":12.2,"creditnote_id":982000000567134}]
- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `invoice_payments` (`array`, required): List of payments to be applied to the invoice. Example: [{"amount_applied":12.2,"payment_id":982000000567190}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"apply_creditnotes":[{"amount_applied":12.2,"creditnote_id":982000000567134}],"invoice_id":"<invoice_id>","invoice_payments":[{"amount_applied":12.2,"payment_id":982000000567190}],"organization_id":"<organization_id>"}`

### `zohobooks_invoice_email`

Email Invoice · Write

Email an invoice to the customer's contact persons, with an optional custom subject and body. Returns a success code and message. Use this to send one invoice. Use invoice_payment_reminder_send to chase payment on an overdue invoice. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `to_mail_ids` (`array`, required): Array of email address of the recipients. Example: ["willsmith@bowmanfurniture.com"]
- `attachments` (`string`, optional): Files to be attached to the email
- `body` (`string`, optional): The body of the mail
- `cc_mail_ids` (`array`, optional): Array of email address of the recipients to be cced. Example: ["peterparker@bowmanfurniture.com"]
- `from_address_id` (`string`, optional): From email address id. Note: This value is a set of numeric characters. Example: 2000000011993
- `send_attachment` (`boolean`, optional): Send the invoice attachment a with the email.
- `send_customer_statement` (`boolean`, optional): Send customer statement pdf a with email.
- `send_from_org_email_id` (`boolean`, optional): Boolean to trigger the email from the organization's email address Example: False
- `subject` (`string`, optional): The subject of the mail Example: Invoice from Zillium Inc (Invoice#: INV-00001)

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>","to_mail_ids":["willsmith@bowmanfurniture.com"]}`

### `zohobooks_invoice_mark_draft`

Mark Invoice Draft · Write

Move a voided invoice back to draft status. Returns a success code and message. Use this to restore a voided invoice for editing. Use invoice_mark_void to void one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoice_mark_sent`

Mark Invoice Sent · Write

Mark a draft invoice as sent without emailing it. Returns a success code and message. Use this when the invoice was delivered outside Zoho Books. Use invoice_email to email it to the customer. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoice_mark_void`

Void Invoice · Write

Mark an invoice as void, cancelling it while keeping it on record. Returns a success code and message. Use this to cancel an invoice. Use invoice_mark_draft to move a voided invoice back to draft. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoice_payment_reminder_send`

Send Invoice Payment Reminder · Write

Email a payment reminder for an unpaid or overdue invoice to the customer. Returns a success code and message. Use this to chase payment. Use invoice_email to send the invoice itself. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `cc_mail_ids` (`array`, required): Array of email address of the recipients to be cced. Example: ["peterparker@bowmanfurniture.com"]
- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `attachments` (`string`, optional): Files to be attached to the email
- `body` (`string`, optional): The body of the mail
- `send_customer_statement` (`boolean`, optional): Send customer statement pdf a with email.
- `send_from_org_email_id` (`boolean`, optional): Boolean to trigger the email from the organization's email address Example: False
- `subject` (`string`, optional): The subject of the mail Example: Invoice from Zillium Inc (Invoice#: INV-00001)
- `to_mail_ids` (`array`, optional): Array of email address of the recipients. Example: ["willsmith@bowmanfurniture.com"]

Example input: `{"cc_mail_ids":["peterparker@bowmanfurniture.com"],"invoice_id":"<invoice_id>","organization_id":"<organization_id>"}`

### `zohobooks_invoice_update`

Update Invoice · Write

Update an existing invoice's customer, line items, dates, terms or notes. Returns an invoice object with invoice_id, ach_payment_initiated, invoice_number, vat_reg_no, date, status. Use this to change an invoice you have the invoice_id for. Use invoice_create for a new invoice. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`string`, required): Unique identifier of the customer in the current organization for whom this invoice is created. Required when creating an invoice. Use the `customer_id` returned by the get Customers API. Must belong to the organization specified by the `organization_id` parameter. Note: This value is a set of numeric characters. Example: 982000000567001
- `invoice_id` (`string`, required): Unique identifier of the invoice. Note: This value is a set of numeric characters. Example: 982000000567114
- `line_items` (`array`, required): List of line items in the invoice. Example: [{"item_id":982000000030049,"name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `adjustment` (`number`, optional): Additional charge or credit amount applied to the invoice total. This can be used for rounding adjustments, handling fees, or any other one-time charges/credits. Positive values add to the total, negative values reduce the total. This amount is applied after tax calculation and affects the final invoice total. Example: 0
- `adjustment_description` (`string`, optional): Text description explaining the reason for the adjustment amount. This description appears on the invoice document to explain why the adjustment was applied. Common examples include "Rounding adjustment", "Handling fee", "Early payment discount", or "Late payment fee". This helps customers understand the purpose of the adjustment.
- `allow_partial_payments` (`boolean`, optional): Boolean flag that determines whether customers can make partial payments against this invoice. When true, customers can pay less than the full invoice amount, and the invoice will remain open with a remaining balance. When false, customers must pay the full amount to complete the invoice. This setting affects payment processing and invoice status tracking. Example: True
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":982000000567003}]
- `currency_id` (`string`, optional): Unique identifier of the currency in which the invoice will be created for the customer. Use the `currency_id` returned by the Currencies API for the same organization. This sets the currency for all monetary amounts on the invoice; if it differs from the organization's base currency, an appropriate `exchange_rate` may be required. Note: This value is a set of numeric characters. Example: 982000000000190
- `custom_body` (`string`, optional): The custom body of the email.
- `custom_fields` (`array`, optional): Custom fields for an invoice. Example: [{"customfield_id":"46000000012845","value":"Normal"}]
- `custom_subject` (`string`, optional): The custom subject of the email.
- `date` (`string`, optional): The date on which the invoice is created. Use the format yyyy-mm-dd (e.g., 2013-11-17). This date appears on the invoice document and is used for accounting purposes. When searching invoices, supports variants: date_start, date_end, date_before and date_after. Example: 2013-11-17
- `discount` (`number`, optional): Discount applied to the invoice, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_type` (`string`, optional): Specifies the scope of discount application. entity_level applies the discount to the entire invoice total. item_level applies the discount to individual line items. This determines how the discount amount is distributed across the invoice items. Example: item_level
- `due_date` (`string`, optional): The date by which payment is due for the invoice. Use the format yyyy-mm-dd (e.g., 2013-12-03). This date is typically calculated as invoice date + payment_terms days, but can be overridden with a custom date. When searching invoices, supports variants: due_date_start, due_date_end, due_date_before and due_date_after. Example: 2013-12-03
- `exchange_rate` (`number`, optional): Exchange rate used to convert amounts from the invoice currency to the organization's base currency. Required when the invoice currency differs from the organization's base currency. For example, if base currency is USD and invoice currency is EUR, set the EUR to USD exchange rate (e.g., 1.18). Default value is 1.0 when invoice currency matches base currency.
- `expense_id` (`string`, optional): Unique identifier of the billable expense to be converted to an invoice line item. This converts a previously recorded expense into a billable line item on the invoice, enabling expense-to-invoice conversion. Note: This value is a set of numeric characters. Example: 460000000028080
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto invoice number generation for this invoice. This mandates the invoice number. Allowed values true and false
- `invoice_number` (`string`, optional): Unique identifier or reference number for the invoice. When creating an invoice, this can be a custom number (requires `ignore_auto_number_generation=true` query parameter) or left empty for auto-generation. When searching invoices, supports variants: invoice_number_startswith and invoice_number_contains. Maximum length is 100 characters. Must be unique within the organization. Example: INV-00003
- `invoiced_estimate_id` (`string`, optional): Unique identifier of the estimate that was converted to create this invoice. Use this field when creating an invoice from an existing estimate. The `invoiced_estimate_id` links this invoice back to its source estimate, enabling tracking of the conversion process and maintaining the relationship between estimates and invoices. Note: This value is a set of numeric characters.
- `is_discount_before_tax` (`boolean`, optional): Boolean flag that determines when the discount is applied in relation to tax calculation. When true, discount is applied before tax calculation (discount reduces the taxable amount). When false, discount is applied after tax calculation (discount reduces the final total including tax). This affects the final invoice total and tax amounts. Example: True
- `is_inclusive_tax` (`boolean`, optional): Boolean flag that indicates whether line item rates include tax. When true, the specified rates are inclusive of tax (tax is already included in the rate). When false, the rates are exclusive of tax (tax will be added to the rate). This affects how tax calculations are performed on line items. Example: False
- `line_item_id` (`string`, optional): The line item id. Note: This value is a set of numeric characters. Example: 982000000567021
- `location_id` (`string`, optional): Unique identifier of the business location associated with the invoice. Use the `location_id` returned by the Locations API for the same organization. This links the invoice to a specific business location, which may affect tax calculations, reporting, and business operations. Required if your organization has multiple locations configured. Note: This value is a set of numeric characters. Example: 460000000038080
- `notes` (`string`, optional): Additional information or comments to be displayed on the invoice document. This field is typically used for thank you messages, special instructions, or any other information you want to communicate to the customer. The notes appear on the invoice PDF and are visible to customers Example: Looking forward for your business.
- `payment_options` (`object`, optional): Payment options for the invoice, online payment gateways and bank accounts. Will be displayed in the pdf.
- `payment_terms` (`integer`, optional): Number of days allowed for payment (e.g., 15, 30, 60). This value determines the invoice due date by adding the specified number of days to the invoice date. For example, if invoice date is 2023-11-17 and payment_terms is 15, the due_date will be 2023-12-02. Maximum value is 100 days.
- `payment_terms_label` (`string`, optional): Custom label for payment terms that appears on the invoice document. Used to override the default system-generated label. For example, instead of the default "Net 15 Days", you can set this to "Net 15", "Due in 15 days", or any custom text. This label is displayed to customers on the invoice. Maximum length is 100 characters.
- `reason` (`string`, optional): The reason for generating the invoice.
- `recurring_invoice_id` (`string`, optional): Unique identifier of the recurring invoice template that generated this invoice. Use this field when creating an invoice from a recurring invoice template. The `recurring_invoice_id` links this invoice back to its source recurring invoice, enabling tracking of which template generated it and maintaining the recurring invoice relationship. Note: This value is a set of numeric characters.
- `reference_number` (`string`, optional): External reference number or identifier for the invoice, such as a purchase order number, contract number, or any other business reference. When converting from an estimate or sales order, this field can be used to reference the original document number.
- `salesorder_item_id` (`string`, optional): Unique identifier of the sales order line item that is being converted to this invoice line item. Use this field when creating an invoice from an existing sales order. The `salesorder_item_id` links this invoice line item back to its source sales order line item, enabling tracking of the conversion process and maintaining the relationship between sales orders and invoices. Note: This value is a set of numeric characters.
- `salesperson_name` (`string`, optional): Name of the salesperson. Max-length [200]
- `shipping_charge` (`string`, optional): Additional shipping or delivery charges applied to the invoice. Must be specified as a fixed amount (e.g., "25.00"). This amount is added to the invoice total and is subject to tax calculation. Example: 0
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Unique identifier of the tax to be applied to this line item. Use the `tax_id` returned by the Taxes API for the same organization. This determines which tax rate and rules are applied to the line item, affecting the final tax calculation and compliance reporting. Note: This value is a set of numeric characters. Example: 982000000557028
- `template_id` (`string`, optional): Unique identifier of the PDF template linked to the invoice. Obtain this value from the `template_id` field in the response of the GET `/invoices/templates` API for your organization. Determines which template is used for the invoice PDF. Note: This value is a set of numeric characters. Example: 982000000000143
- `terms` (`string`, optional): Terms and conditions text to be displayed on the invoice document. This field is used to specify payment terms, delivery conditions, return policies, or any other legal or business terms that apply to this transaction. The terms appear on the invoice PDF and are legally binding. Example: Terms & Conditions apply

Example input: `{"customer_id":"<customer_id>","invoice_id":"<invoice_id>","line_items":[{"item_id":982000000030049,"name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120}],"organization_id":"<organization_id>"}`

### `zohobooks_item_create`

Create Item · Write

Create a product or service item with a name, rate, description and optional tax and account settings. Returns an item object with item_id, name, status, description, rate, unit. Use this to add something you sell or buy. Use item_update to change an existing item. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the item. Max-length [100] Example: Hard Drive
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `rate` (`number`, required): Price of the item. Example: 120
- `account_id` (`string`, optional): ID of the account to which the item has to be associated with. Note: This value is a set of numeric characters.
- `custom_fields` (`array`, optional): Custom fields for an item. Example: [{"customfield_id":"46000000012845","value":"Normal"}]
- `description` (`string`, optional): Description for the item. Max-length [2000] Example: 500GB
- `inventory_account_id` (`string`, optional): ID of the stock account to which the item has to be associated with. Mandatory, if item_type is inventory. Note: This value is a set of numeric characters.
- `item_type` (`string`, optional): Type of the item. Allowed values: sales,purchases,sales_and_purchases and inventory. Default value will be sales. One of: `sales`, `purchases`, `sales_and_purchases`, `inventory`.
- `locations` (`array`, optional): Locations for the item. Example: [{"location_id":"460000000038080"}]
- `product_type` (`string`, optional): Specify the type of an item. Allowed values: goods or service or digital_service. For SouthAfrica Edition: service, goods, capital_service and capital_goods Example: goods
- `purchase_account_id` (`string`, optional): ID of the COGS account to which the item has to be associated with. Mandatory, if item_type is purchase / sales and purchase / inventory. Note: This value is a set of numeric characters.
- `purchase_description` (`string`, optional): Purchase description for the item.
- `purchase_rate` (`string`, optional): Purchase price of the item.
- `reorder_level` (`string`, optional): Reorder level of the item.
- `sku` (`string`, optional): SKU value of item,should be unique throughout the product Example: s12345
- `tax_id` (`string`, optional): ID of the tax to be associated to the item. Note: This value is a set of numeric characters. Example: 982000000037049
- `tax_percentage` (`string`, optional): Percent of the tax. Example: 70%
- `vendor_id` (`string`, optional): Preferred vendor ID. Note: This value is a set of numeric characters.

Example input: `{"name":"<name>","organization_id":"<organization_id>","rate":120}`

### `zohobooks_item_mark_active`

Mark Item Active · Write

Mark an inactive item as active so it can be used on new transactions. Returns a success code and message. Use this to reactivate an item. Use item_mark_inactive to deactivate one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `item_id` (`string`, required): Unique identifier of the item. Note: This value is a set of numeric characters. Example: 45667789900
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"item_id":"<item_id>","organization_id":"<organization_id>"}`

### `zohobooks_item_mark_inactive`

Mark Item Inactive · Write

Mark an item as inactive so it no longer appears on new transactions. Returns a success code and message. Use this to retire an item without deleting it. Use item_mark_active to reverse it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `item_id` (`string`, required): Unique identifier of the item. Note: This value is a set of numeric characters. Example: 45667789900
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"item_id":"<item_id>","organization_id":"<organization_id>"}`

### `zohobooks_item_update`

Update Item · Write

Update an existing item's name, rate, description, tax or account settings. Returns an item object with item_id, name, status, description, rate, unit. Use this to change an item you have the item_id for. Use item_create for a new item. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, required): Unique identifier of the item. Note: This value is a set of numeric characters. Example: 45667789900
- `name` (`string`, required): Name of the item. Max-length [100] Example: Hard Drive
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `rate` (`number`, required): Price of the item. Example: 120
- `account_id` (`string`, optional): ID of the account to which the item has to be associated with. Note: This value is a set of numeric characters.
- `custom_fields` (`array`, optional): Custom fields for an item. Example: [{"customfield_id":"46000000012845","value":"Normal"}]
- `description` (`string`, optional): Description for the item. Max-length [2000] Example: 500GB
- `inventory_account_id` (`string`, optional): ID of the stock account to which the item has to be associated with. Mandatory, if item_type is inventory. Note: This value is a set of numeric characters.
- `item_type` (`string`, optional): Type of the item. Allowed values: sales,purchases,sales_and_purchases and inventory. Default value will be sales. One of: `sales`, `purchases`, `sales_and_purchases`, `inventory`.
- `locations` (`array`, optional): Locations for the item. Example: [{"location_id":"460000000038080"}]
- `product_type` (`string`, optional): Specify the type of an item. Allowed values: goods or service or digital_service. For SouthAfrica Edition: service, goods, capital_service and capital_goods Example: goods
- `purchase_account_id` (`string`, optional): ID of the COGS account to which the item has to be associated with. Mandatory, if item_type is purchase / sales and purchase / inventory. Note: This value is a set of numeric characters.
- `purchase_description` (`string`, optional): Purchase description for the item.
- `purchase_rate` (`string`, optional): Purchase price of the item.
- `reorder_level` (`string`, optional): Reorder level of the item.
- `sku` (`string`, optional): SKU value of item,should be unique throughout the product Example: s12345
- `tax_id` (`string`, optional): ID of the tax to be associated to the item. Note: This value is a set of numeric characters. Example: 982000000037049
- `tax_percentage` (`string`, optional): Percent of the tax. Example: 70%
- `vendor_id` (`string`, optional): Preferred vendor ID. Note: This value is a set of numeric characters.

Example input: `{"item_id":"<item_id>","name":"<name>","organization_id":"<organization_id>","rate":120}`

### `zohobooks_journal_create`

Create Journal · Write

Create a manual journal entry with balanced debit and credit lines against chart-of-accounts accounts. Returns a journal object with journal_id, entry_number, reference_number, notes, currency_id, currency_code. Use this for adjustments that no invoice, bill or expense covers. Use chart_of_accounts_list to find account IDs. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `journal_date` (`string`, required): Date on which the journal to be recorded. Example: 2013-09-04
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `currency_id` (`string`, optional): ID of the Currency Associated with the Journal Example: 460000000000097
- `custom_fields` (`array`, optional): Custom fields for the journal. Example: [{"customfield_id":"460000000098001","value":"Normal"}]
- `exchange_rate` (`number`, optional): Exchange Rate between the Currencies Example: 1
- `journal_type` (`string`, optional): Type of the Journal. Allowed values: Cash and Both . Example: both. One of: `Cash`, `Both`.
- `line_items` (`array`, optional): Line items for the journal. Example: [{"account_id":"460000000000361","amount":5000,"debit_or_credit":"credit","line_id":"460000000038005"}]
- `location_id` (`string`, optional): Location ID Example: 460000000038080
- `notes` (`string`, optional): Notes for the journal. Example: Loan repayment
- `reference_number` (`string`, optional): Reference number for the journal. Example: 7355
- `status` (`string`, optional): Search Journal by journal status. Allowed Values: draft and published. Example: draft. One of: `draft`, `published`.
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]

Example input: `{"journal_date":"<journal_date>","organization_id":"<organization_id>"}`

### `zohobooks_journal_publish`

Publish Journal · Write

Publish a draft manual journal so it posts to the ledger. Returns a success code and message. Use this after creating a journal as a draft. Use journal_create to create one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `journal_id` (`string`, required): Unique identifier of the journal. Example: 460000000038001
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695

Example input: `{"journal_id":"<journal_id>","organization_id":"<organization_id>"}`

### `zohobooks_journal_update`

Update Journal · Write

Update an existing manual journal's date, reference, notes or line items. Returns a journal object with journal_id, entry_number, reference_number, notes, currency_id, currency_code. Use this to change a journal you have the journal_id for. Use journal_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `journal_date` (`string`, required): Date on which the journal to be recorded. Example: 2013-09-04
- `journal_id` (`string`, required): Unique identifier of the journal. Example: 460000000038001
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `currency_id` (`string`, optional): ID of the Currency Associated with the Journal Example: 460000000000097
- `custom_fields` (`array`, optional): Custom fields for the journal. Example: [{"customfield_id":"460000000098001","value":"Normal"}]
- `exchange_rate` (`number`, optional): Exchange Rate between the Currencies Example: 1
- `journal_type` (`string`, optional): Type of the Journal. Allowed values: Cash and Both . Example: both. One of: `Cash`, `Both`.
- `line_items` (`array`, optional): Line items for the journal. Example: [{"account_id":"460000000000361","amount":5000,"debit_or_credit":"credit","line_id":"460000000038005"}]
- `location_id` (`string`, optional): Location ID Example: 460000000038080
- `notes` (`string`, optional): Notes for the journal. Example: Loan repayment
- `reference_number` (`string`, optional): Reference number for the journal. Example: 7355
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]

Example input: `{"journal_date":"<journal_date>","journal_id":"<journal_id>","organization_id":"<organization_id>"}`

### `zohobooks_project_create`

Create Project · Write

Create a project for a customer with a billing method, rate and optional budget, tasks and users. Returns a project object with project_id, project_name, customer_id, customer_name, currency_code, description. Use this to start tracking work for a customer. Use project_update to change an existing project. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `billing_type` (`string`, required): The way you bill your customer. Allowed Values: fixed_cost_for_project, based_on_project_hours, based_on_staff_hours and based_on_task_hours Example: based_on_task_hours. One of: `fixed_cost_for_project`, `based_on_project_hours`, `based_on_staff_hours`, `based_on_task_hours`.
- `customer_id` (`string`, required): ID of the customer. Example: 460000000044001
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `project_name` (`string`, required): Name of the project. Max-length [100] Example: Network Distribution
- `user_id` (`string`, required): ID of the user to be added to the project. Example: INV-00003
- `budget_amount` (`string`, optional): Give value, if you are estimating total project revenue budget.
- `budget_hours` (`string`, optional): Task budget hours
- `budget_type` (`string`, optional): The way you budget. Allowed Values: total_project_cost, total_project_hours, hours_per_task and hours_per_staff. One of: `total_project_cost`, `total_project_hours`, `hours_per_task`, `hours_per_staff`.
- `cost_budget_amount` (`number`, optional): Budgeted Cost to complete this project Example: 1000.00
- `currency_id` (`string`, optional): The currency id of the currency Example: 460000000098001
- `description` (`string`, optional): Project description. Max-length [500] Example: Distribution for the system of intermediaries between the producer of goods and/or services and the final user
- `rate` (`string`, optional): Hourly rate for a task.
- `tasks` (`array`, optional): List of tasks associated with the project Example: [{"description":"INV-00003","rate":"INV-00003","task_name":"INV-00003","budget_hours":"INV-00003"}]
- `users` (`array`, optional): List of users associated with the project Example: [{"email":"johndavid@zilliuminc.com","user_id":"INV-00003","is_current_user":true,"user_name":"John David"}]

Example input: `{"billing_type":"fixed_cost_for_project","customer_id":"<customer_id>","organization_id":"<organization_id>","project_name":"<project_name>","user_id":"<user_id>"}`

### `zohobooks_project_task_add`

Add Project Task · Write

Add a task to a project with a name, description and optional rate and budget hours. Returns a task object with project_id, task_id, currency_id, customer_id, task_name, project_name. Use this to break a project into billable tasks. Use project_tasks_list to see existing tasks. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `project_id` (`string`, required): Unique identifier of the project. Example: 90300000072369
- `task_name` (`string`, required): Name of the task. Example: Distribution Analysis
- `budget_hours` (`string`, optional): Task budget hours. Example: 0
- `description` (`string`, optional): Description of the project or task. Example: A simple algorithm is to be tested with vehicle detection application.
- `rate` (`integer`, optional): Hourly rate for a task. Example: 3

Example input: `{"organization_id":"<organization_id>","project_id":"<project_id>","task_name":"<task_name>"}`

### `zohobooks_project_update`

Update Project · Write

Update an existing project's name, billing method, rate, budget or description. Returns a project object with project_id, project_name, customer_id, customer_name, currency_code, description. Use this to change a project you have the project_id for. Use project_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `billing_type` (`string`, required): The way you bill your customer. Allowed Values: fixed_cost_for_project, based_on_project_hours, based_on_staff_hours and based_on_task_hours Example: based_on_task_hours. One of: `fixed_cost_for_project`, `based_on_project_hours`, `based_on_staff_hours`, `based_on_task_hours`.
- `customer_id` (`string`, required): ID of the customer. Example: 460000000044001
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `project_id` (`string`, required): Unique identifier of the project. Example: 460000000044019
- `project_name` (`string`, required): Name of the project. Max-length [100] Example: Network Distribution
- `user_id` (`string`, required): ID of the user to be added to the project. Example: INV-00003
- `budget_amount` (`string`, optional): Give value, if you are estimating total project revenue.
- `budget_hours` (`string`, optional): Task budget hours
- `budget_type` (`string`, optional): The way you budget. Allowed Values: total_project_cost, total_project_hours, hours_per_task and hours_per_staff. One of: `total_project_cost`, `total_project_hours`, `hours_per_task`, `hours_per_staff`.
- `cost_budget_amount` (`number`, optional): Budgeted Cost to complete this project Example: 1000.00
- `currency_id` (`string`, optional): The currency id of the currency Example: 460000000098001
- `description` (`string`, optional): Project description. Max-length [500] Example: Distribution for the system of intermediaries between the producer of goods and/or services and the final user
- `rate` (`string`, optional): Hourly rate for a task.
- `tasks` (`array`, optional): List of tasks associated with the project Example: [{"description":"INV-00003","rate":"INV-00003","task_name":"INV-00003","budget_hours":"INV-00003"}]
- `users` (`array`, optional): List of users associated with the project Example: [{"email":"johndavid@zilliuminc.com","user_id":"INV-00003","is_current_user":true,"user_name":"John David"}]

Example input: `{"billing_type":"fixed_cost_for_project","customer_id":"<customer_id>","organization_id":"<organization_id>","project_id":"<project_id>","project_name":"<project_name>","user_id":"<user_id>"}`

### `zohobooks_purchase_order_create`

Create Purchase Order · Write

Create a purchase order to a vendor with line items, delivery date and terms. Returns a purchaseorder object with purchaseorder_id, documents, pricebook_id, pricebook_name, purchaseorder_number, date. Use this to order goods or services from a vendor. Use bill_create once the vendor bills you. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `line_items` (`array`, required): Line items of purchase order. Example: [{"item_id":"460000000027009","account_id":"460000000074003","name":"Hard Drive","rate":112}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `vendor_id` (`string`, required): Unique identifier of the vendor for whom the purchase order is being created. This value is mandatory to associate the purchase order with a specific vendor in your organization. You can obtain the vendor ID by listing all vendors using the contacts API. Ensure the vendor exists before referencing their ID here. Note: This value is a set of numeric characters. Example: 460000000026049
- `attachment` (`string`, optional): Allowed Extensions: gif, png, jpeg, jpg, bmp, pdf, xls, xlsx, doc and docx.
- `attention` (`string`, optional): The name or designation of the specific person who should be contacted or notified regarding the delivery of goods or services from this purchase order. This field is typically used to specify the primary contact person at the delivery location, such as a warehouse manager, office administrator, or project coordinator who will receive and process the delivered items.
- `billing_address_id` (`string`, optional): Unique identifier of the billing address to be used for this purchase order. The billing address determines where invoices and related documents will be sent. This field is optional and if not specified, the default billing address from your organization settings will be used. You can obtain the billing address ID by listing all available addresses in your organization. Ensure the address exists and contains the correct billing information before referencing its ID here. Note: This value is a set of numeric characters. Example: 460000000017491
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":460000000031001}]
- `crm_custom_reference_id` (`string`, optional): ID of CRM Custom Reference. Note: This value is a set of numeric characters.
- `crm_owner_id` (`string`, optional): Unique identifier of the CRM owner assigned to this purchase order. This field links the purchase order to a specific CRM user who is responsible for managing the vendor relationship and overseeing the procurement process. The CRM owner can track, follow up, and manage all aspects of this purchase order within the CRM system. Note: This value is a set of numeric characters.
- `currency_id` (`string`, optional): Unique identifier of the currency for the purchase order. This value is mandatory to specify the currency in which the purchase order amounts will be displayed and processed. You can obtain the currency ID by listing all available currencies using the GET /settings/currencies API. Ensure the currency exists and is properly configured in your organization before referencing its ID here. Note: This value is a set of numeric characters. Example: 460000000000099
- `custom_fields` (`array`, optional): Custom fields for purchase order. Example: [{"customfield_id":"46000000012845","value":"Normal"}]
- `date` (`string`, optional): The date when the purchase order was created or issued. This is the official date that appears on the purchase order document and is used for record-keeping, reporting, and tracking purposes. The date should be in YYYY-MM-DD format and typically represents when the purchase order was authorized and sent to the vendor. Example: 2014-02-10
- `delivery_customer_id` (`string`, optional): Unique identifier of the customer for whom the goods or services in this purchase order are being procured. This field is used when the purchase order is created on behalf of a customer, such as in drop-shipping scenarios or when procuring items for specific customer projects. The customer information may be displayed on the purchase order for vendor reference. Note: This value is a set of numeric characters.
- `delivery_date` (`string`, optional): The expected delivery date when the goods or services ordered in this purchase order should be received. This date is used for planning, scheduling, and tracking deliveries. It helps in managing inventory, coordinating with vendors, and ensuring timely receipt of ordered items. The date should be in YYYY-MM-DD format and is typically communicated to the vendor as part of the purchase order terms. Example: 2014-02-10
- `delivery_org_address_id` (`string`, optional): Unique identifier of the organization address where the goods or services from this purchase order should be delivered. This field specifies the delivery location within your organization, such as a warehouse, office, or branch location. The address details are retrieved from your organization's address book and displayed on the purchase order for vendor reference. Note: This value is a set of numeric characters.
- `discount` (`string`, optional): Discount applied to the purchase order, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_account_id` (`string`, optional): Unique identifier of the accounting account where the discount amount will be recorded. This account is used to track and categorize discount expenses in your general ledger. The discount account should be configured as an expense or contra-revenue account to properly reflect the impact of discounts on your financial statements. Note: This value is a set of numeric characters. Example: 460000000011105
- `documents` (`array`, optional): Array of documents attached to the purchase order.
- `due_date` (`string`, optional): The expected delivery date when the goods or services ordered in this purchase order should be received. This date is used for planning, scheduling, and tracking deliveries. It helps in managing inventory, coordinating with vendors, and ensuring timely receipt of ordered items. The date should be in YYYY-MM-DD format.
- `exchange_rate` (`number`, optional): The currency exchange rate used to convert the purchase order amounts from the vendor's currency to your organization's base currency. This rate is applied when the purchase order is created in a foreign currency. A value of 1 indicates the same currency as your base currency. This rate affects all monetary calculations and reporting for this purchase order. Example: 1
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto purchase order number generation for this purchase order. This mandates the purchase order number. Example: False
- `is_discount_before_tax` (`boolean`, optional): Boolean flag that determines whether the discount is applied before or after tax calculations. When set to true, the discount is applied to the subtotal before tax is calculated, resulting in tax being calculated on the discounted amount. When set to false, the discount is applied after tax calculations, which may affect the final total differently depending on your tax configuration. Example: True
- `is_inclusive_tax` (`boolean`, optional): Boolean flag that specifies whether the line item rates include or exclude tax amounts. When set to true, the specified rates are inclusive of tax, meaning the tax amount is already included in the rate. When set to false, the rates are exclusive of tax, and tax will be calculated and added separately. This setting affects how tax calculations are performed and displayed on the purchase order. Example: False
- `is_update_customer` (`string`, optional): Check if customer should be updated
- `location_id` (`string`, optional): Unique identifier of the business location or branch where this purchase order is being created and managed. This field is used to associate the purchase order with a specific location within your organization, enabling location-based reporting, inventory tracking, and multi-location business operations. The location information affects how the purchase order is processed and where inventory is received. Note: This value is a set of numeric characters. Example: 460000000038080
- `notes` (`string`, optional): Additional information, instructions, or comments to be displayed on the purchase order document. This field is typically used for delivery instructions, special requirements, vendor communications, or any other information relevant to the purchase order. The notes appear on the purchase order PDF and are visible to the vendor. Example: Please deliver as soon as possible.
- `notes_default` (`string`, optional): Default notes for purchase order
- `pricebook_id` (`string`, optional): Unique identifier of the pricebook to be used for this purchase order. The pricebook contains predefined pricing information for items and services. This field is optional and if not specified, the default pricebook will be used. You can obtain the pricebook ID by listing all available pricebooks in your organization. Ensure the pricebook exists and contains the relevant pricing information before referencing its ID here. Note: This value is a set of numeric characters. Example: 460000000026089
- `purchaseorder_number` (`string`, optional): Unique identifier for the purchase order. This field is mandatory when auto number generation is disabled for your organization. If auto numbering is enabled, this field can be left empty as the system will automatically generate a sequential purchase order number. When manually specifying a number, ensure it follows your organization's numbering convention and is unique across all purchase orders. Example: PO-00001
- `reference_number` (`string`, optional): External reference number or identifier for the purchase order. This field is optional and can be used to store additional reference information such as vendor order numbers, internal tracking codes, or any other external system identifiers. This reference number will be displayed on the purchase order document and can be used for cross-referencing with external systems or internal tracking purposes. Example: ER/0034
- `salesorder_id` (`string`, optional): Unique identifier of the sales order that is linked to this purchase order. This field establishes a connection between the sales order and purchase order, typically used in drop-shipping scenarios where you need to procure items to fulfill a customer's sales order. The linked sales order information may be displayed on the purchase order for vendor reference and internal tracking purposes. Note: This value is a set of numeric characters. Example: 460000124728314
- `ship_via` (`string`, optional): Shipment Preference
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `template_id` (`string`, optional): Unique identifier of the PDF template linked to the purchase order. Obtain this value from the `template_id` field in the response of the GET `/purchaseorders/templates` API for your organization. Determines which template is used for the purchase order PDF document, controlling the layout, formatting, and visual appearance of the generated purchase order. Note: This value is a set of numeric characters. Example: 460000000011003
- `terms` (`string`, optional): Terms and conditions text to be displayed on the purchase order document. This field is used to specify payment terms, delivery conditions, return policies, warranty information, or any other legal or business terms that apply to this transaction. The terms appear on the purchase order PDF and form part of the contractual agreement with the vendor. Example: Thanks for your business.
- `terms_default` (`string`, optional): Default terms for Purchase Orders

Example input: `{"line_items":[{"item_id":"460000000027009","account_id":"460000000074003","name":"Hard Drive","rate":112}],"organization_id":"<organization_id>","vendor_id":"<vendor_id>"}`

### `zohobooks_purchase_order_mark_billed`

Mark Purchase Order Billed · Write

Mark a purchase order as billed when the vendor's bill has been recorded. Returns a success code and message. Use this to close out a fulfilled purchase order. Use bill_create to record the bill itself. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `purchaseorder_id` (`string`, required): Unique identifier of the purchase order. Note: This value is a set of numeric characters. Example: 460000000062001

Example input: `{"organization_id":"<organization_id>","purchaseorder_id":"<purchaseorder_id>"}`

### `zohobooks_purchase_order_mark_cancelled`

Cancel Purchase Order · Write

Mark a purchase order as cancelled. Returns a success code and message. Use this to cancel a purchase order. Use purchase_order_mark_open to issue one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `purchaseorder_id` (`string`, required): Unique identifier of the purchase order. Note: This value is a set of numeric characters. Example: 460000000062001

Example input: `{"organization_id":"<organization_id>","purchaseorder_id":"<purchaseorder_id>"}`

### `zohobooks_purchase_order_mark_open`

Mark Purchase Order Open · Write

Mark a draft purchase order as open (issued to the vendor). Returns a success code and message. Use this to issue a purchase order. Use purchase_order_mark_cancelled to cancel one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `purchaseorder_id` (`string`, required): Unique identifier of the purchase order. Note: This value is a set of numeric characters. Example: 460000000062001

Example input: `{"organization_id":"<organization_id>","purchaseorder_id":"<purchaseorder_id>"}`

### `zohobooks_purchase_order_update`

Update Purchase Order · Write

Update an existing purchase order's vendor, line items, dates or terms. Returns a purchaseorder object with purchaseorder_id, documents, pricebook_id, pricebook_name, purchaseorder_number, date. Use this to change a purchase order you have the purchaseorder_id for. Use purchase_order_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `line_items` (`array`, required): Line items of purchase order. Example: [{"item_id":"460000000027009","account_id":"460000000074003","name":"Hard Drive","rate":112}]
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `purchaseorder_id` (`string`, required): Unique identifier of the purchase order. Note: This value is a set of numeric characters. Example: 460000000062001
- `vendor_id` (`string`, required): Unique identifier of the vendor for whom the purchase order is being created. This value is mandatory to associate the purchase order with a specific vendor in your organization. You can obtain the vendor ID by listing all vendors using the contacts API. Ensure the vendor exists before referencing their ID here. Note: This value is a set of numeric characters. Example: 460000000026049
- `attachment` (`string`, optional): Allowed Extensions: gif, png, jpeg, jpg, bmp, pdf, xls, xlsx, doc and docx.
- `attention` (`string`, optional): The name or designation of the specific person who should be contacted or notified regarding the delivery of goods or services from this purchase order. This field is typically used to specify the primary contact person at the delivery location, such as a warehouse manager, office administrator, or project coordinator who will receive and process the delivered items.
- `billing_address_id` (`string`, optional): Unique identifier of the billing address to be used for this purchase order. The billing address determines where invoices and related documents will be sent. This field is optional and if not specified, the default billing address from your organization settings will be used. You can obtain the billing address ID by listing all available addresses in your organization. Ensure the address exists and contains the correct billing information before referencing its ID here. Note: This value is a set of numeric characters. Example: 460000000017491
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":460000000031001}]
- `crm_custom_reference_id` (`string`, optional): ID of CRM Custom Reference. Note: This value is a set of numeric characters.
- `crm_owner_id` (`string`, optional): Unique identifier of the CRM owner assigned to this purchase order. This field links the purchase order to a specific CRM user who is responsible for managing the vendor relationship and overseeing the procurement process. The CRM owner can track, follow up, and manage all aspects of this purchase order within the CRM system. Note: This value is a set of numeric characters.
- `currency_id` (`string`, optional): Unique identifier of the currency for the purchase order. This value is mandatory to specify the currency in which the purchase order amounts will be displayed and processed. You can obtain the currency ID by listing all available currencies using the GET /settings/currencies API. Ensure the currency exists and is properly configured in your organization before referencing its ID here. Note: This value is a set of numeric characters. Example: 460000000000099
- `custom_fields` (`array`, optional): Custom fields for purchase order. Example: [{"customfield_id":"46000000012845","value":"Normal"}]
- `date` (`string`, optional): The date when the purchase order was created or issued. This is the official date that appears on the purchase order document and is used for record-keeping, reporting, and tracking purposes. The date should be in YYYY-MM-DD format and typically represents when the purchase order was authorized and sent to the vendor. Example: 2014-02-10
- `delivery_customer_id` (`string`, optional): Unique identifier of the customer for whom the goods or services in this purchase order are being procured. This field is used when the purchase order is created on behalf of a customer, such as in drop-shipping scenarios or when procuring items for specific customer projects. The customer information may be displayed on the purchase order for vendor reference. Note: This value is a set of numeric characters.
- `delivery_date` (`string`, optional): The expected delivery date when the goods or services ordered in this purchase order should be received. This date is used for planning, scheduling, and tracking deliveries. It helps in managing inventory, coordinating with vendors, and ensuring timely receipt of ordered items. The date should be in YYYY-MM-DD format and is typically communicated to the vendor as part of the purchase order terms. Example: 2014-02-10
- `delivery_org_address_id` (`string`, optional): Unique identifier of the organization address where the goods or services from this purchase order should be delivered. This field specifies the delivery location within your organization, such as a warehouse, office, or branch location. The address details are retrieved from your organization's address book and displayed on the purchase order for vendor reference. Note: This value is a set of numeric characters.
- `discount` (`string`, optional): Discount applied to the purchase order, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_account_id` (`string`, optional): Unique identifier of the accounting account where the discount amount will be recorded. This account is used to track and categorize discount expenses in your general ledger. The discount account should be configured as an expense or contra-revenue account to properly reflect the impact of discounts on your financial statements. Note: This value is a set of numeric characters. Example: 460000000011105
- `documents` (`array`, optional): Array of documents attached to the purchase order.
- `due_date` (`string`, optional): The expected delivery date when the goods or services ordered in this purchase order should be received. This date is used for planning, scheduling, and tracking deliveries. It helps in managing inventory, coordinating with vendors, and ensuring timely receipt of ordered items. The date should be in YYYY-MM-DD format.
- `exchange_rate` (`number`, optional): The currency exchange rate used to convert the purchase order amounts from the vendor's currency to your organization's base currency. This rate is applied when the purchase order is created in a foreign currency. A value of 1 indicates the same currency as your base currency. This rate affects all monetary calculations and reporting for this purchase order. Example: 1
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto purchase order number generation for this purchase order. This mandates the purchase order number. Example: False
- `is_discount_before_tax` (`boolean`, optional): Boolean flag that determines whether the discount is applied before or after tax calculations. When set to true, the discount is applied to the subtotal before tax is calculated, resulting in tax being calculated on the discounted amount. When set to false, the discount is applied after tax calculations, which may affect the final total differently depending on your tax configuration. Example: True
- `is_inclusive_tax` (`boolean`, optional): Boolean flag that specifies whether the line item rates include or exclude tax amounts. When set to true, the specified rates are inclusive of tax, meaning the tax amount is already included in the rate. When set to false, the rates are exclusive of tax, and tax will be calculated and added separately. This setting affects how tax calculations are performed and displayed on the purchase order. Example: False
- `is_update_customer` (`string`, optional): Check if customer should be updated
- `location_id` (`string`, optional): Unique identifier of the business location or branch where this purchase order is being created and managed. This field is used to associate the purchase order with a specific location within your organization, enabling location-based reporting, inventory tracking, and multi-location business operations. The location information affects how the purchase order is processed and where inventory is received. Note: This value is a set of numeric characters. Example: 460000000038080
- `notes` (`string`, optional): Additional information, instructions, or comments to be displayed on the purchase order document. This field is typically used for delivery instructions, special requirements, vendor communications, or any other information relevant to the purchase order. The notes appear on the purchase order PDF and are visible to the vendor. Example: Please deliver as soon as possible.
- `notes_default` (`string`, optional): Default notes for purchase order
- `pricebook_id` (`string`, optional): Unique identifier of the pricebook to be used for this purchase order. The pricebook contains predefined pricing information for items and services. This field is optional and if not specified, the default pricebook will be used. You can obtain the pricebook ID by listing all available pricebooks in your organization. Ensure the pricebook exists and contains the relevant pricing information before referencing its ID here. Note: This value is a set of numeric characters. Example: 460000000026089
- `purchaseorder_number` (`string`, optional): Unique identifier for the purchase order. This field is mandatory when auto number generation is disabled for your organization. If auto numbering is enabled, this field can be left empty as the system will automatically generate a sequential purchase order number. When manually specifying a number, ensure it follows your organization's numbering convention and is unique across all purchase orders. Example: PO-00001
- `reference_number` (`string`, optional): External reference number or identifier for the purchase order. This field is optional and can be used to store additional reference information such as vendor order numbers, internal tracking codes, or any other external system identifiers. This reference number will be displayed on the purchase order document and can be used for cross-referencing with external systems or internal tracking purposes. Example: ER/0034
- `salesorder_id` (`string`, optional): Unique identifier of the sales order that is linked to this purchase order. This field establishes a connection between the sales order and purchase order, typically used in drop-shipping scenarios where you need to procure items to fulfill a customer's sales order. The linked sales order information may be displayed on the purchase order for vendor reference and internal tracking purposes. Note: This value is a set of numeric characters. Example: 460000124728314
- `ship_via` (`string`, optional): Shipment Preference
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `template_id` (`string`, optional): Unique identifier of the PDF template linked to the purchase order. Obtain this value from the `template_id` field in the response of the GET `/purchaseorders/templates` API for your organization. Determines which template is used for the purchase order PDF document, controlling the layout, formatting, and visual appearance of the generated purchase order. Note: This value is a set of numeric characters. Example: 460000000011003
- `terms` (`string`, optional): Terms and conditions text to be displayed on the purchase order document. This field is used to specify payment terms, delivery conditions, return policies, warranty information, or any other legal or business terms that apply to this transaction. The terms appear on the purchase order PDF and form part of the contractual agreement with the vendor. Example: Thanks for your business.
- `terms_default` (`string`, optional): Default terms for Purchase Orders

Example input: `{"line_items":[{"item_id":"460000000027009","account_id":"460000000074003","name":"Hard Drive","rate":112}],"organization_id":"<organization_id>","purchaseorder_id":"<purchaseorder_id>","vendor_id":"<vendor_id>"}`

### `zohobooks_recurring_invoice_resume`

Resume Recurring Invoice · Write

Resume a stopped recurring invoice profile so it generates invoices again. Returns a success code and message. Use this to restart recurring billing. Use recurring_invoice_stop to pause it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `recurring_invoice_id` (`string`, required): Unique identifier of the recurring invoice. Example: 90300000072369

Example input: `{"organization_id":"<organization_id>","recurring_invoice_id":"<recurring_invoice_id>"}`

### `zohobooks_recurring_invoice_stop`

Stop Recurring Invoice · Write

Stop an active recurring invoice profile so it no longer generates invoices. Returns a success code and message. Use this to pause recurring billing. Use recurring_invoice_resume to restart it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `recurring_invoice_id` (`string`, required): Unique identifier of the recurring invoice. Example: 90300000072369

Example input: `{"organization_id":"<organization_id>","recurring_invoice_id":"<recurring_invoice_id>"}`

### `zohobooks_sales_order_create`

Create Sales Order · Write

Create a sales order for a customer with line items, dates and shipping details. Returns a salesorder array (each with salesorder_id, documents, zcrm_potential_id, zcrm_potential_name, salesorder_number, date). Use this to confirm a customer order. Use invoice_create to bill it, or estimate_create for a quote. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`string`, required): Unique identifier for the customer receiving the sales order. This ID links the order to a specific customer account and determines billing information, payment terms, pricing rules, and tax calculations based on customer settings. Can be fetched from the Get Contacts API or retrieved from existing customer records in your organization. Note: This value is a set of numeric characters. Example: 460000000017138
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `adjustment` (`number`, optional): Manual modification amount applied to the sales order total for rounding corrections, special pricing arrangements, or other business-specific adjustments. Supports positive and negative values for additions or deductions from the order total. Example: 0.2
- `adjustment_description` (`string`, optional): Textual explanation for the adjustment amount applied to the sales order. Provides audit trail documentation, justification for pricing modifications, and contextual information for financial reporting and compliance verification purposes. Example: Adjustment
- `billing_address_id` (`string`, optional): Unique identifier referencing the customer billing address entity. Determines the address used for invoice generation, payment processing, tax jurisdiction calculations, and financial record-keeping. Must correspond to a valid address record associated with the specified customer account. Note: This value is a set of numeric characters. Example: 460000000032174
- `can_send_in_mail` (`boolean`, optional): Can the file be sent in mail. Example: True
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":982000000567003}]
- `crm_custom_reference_id` (`string`, optional): Custom reference identifier for CRM integration purposes. Note: This value is a set of numeric characters.
- `crm_owner_id` (`string`, optional): Unique identifier for the CRM owner associated with the sales order. Note: This value is a set of numeric characters.
- `currency_id` (`string`, optional): Unique identifier for the currency used in the sales order transaction. Determines pricing display, exchange rate calculations, and affects financial reporting. If not specified, the organization default currency will be used automatically. Can be fetched from the Get Currencies API or retrieved from your organization currency settings. Note: This value is a set of numeric characters. Example: 460000000000097
- `custom_fields` (`array`, optional): Custom fields for a sales order. Example: [{"customfield_id":"460000000639129","value":"Normal"}]
- `date` (`string`, optional): Date when the sales order was created in YYYY-MM-DD format. This date affects order processing timelines, delivery schedules, payment terms calculation, and appears on customer-facing documents and internal reports. Example: 2014-07-28
- `delivery_method` (`string`, optional): Specification of the transportation and delivery mechanism for order fulfillment. Determines shipping costs, delivery timelines, carrier selection, and customer communication regarding order status and tracking information. Example: Air
- `discount` (`string`, optional): Discount applied to the sales order, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_type` (`string`, optional): Classification of discount application scope within the sales order. entity_level applies discount to the entire order total, while item_level applies discount to individual line items. Determines discount calculation methodology and affects pricing structure. Example: entity_level
- `doc` (`string`, optional): Document that is to be attached
- `documents` (`array`, optional): Documents attached to the sales order. Example: ["document_id","file_name"]
- `estimate_id` (`string`, optional): ID of the estimate associated with the Sales Order. Note: This value is a set of numeric characters.
- `exchange_rate` (`number`, optional): Currency conversion rate from the transaction currency to the organization base currency. Required for multi-currency transactions to ensure accurate financial reporting, profit calculations, and tax computations in the base currency denomination. Example: 1.233
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto sales order number generation for this sales order. This mandates the sales order number. Example: False
- `is_discount_before_tax` (`boolean`, optional): Boolean flag determining the sequence of discount application in tax calculations. When true, discount is applied before tax computation; when false, discount is applied after tax calculation. Affects final pricing accuracy and tax compliance reporting. Example: True
- `is_inclusive_tax` (`boolean`, optional): Used to specify whether the line item rates are inclusive or exclusive of tax. Example: False
- `is_update_customer` (`boolean`, optional): Boolean flag indicating whether customer billing address information should be synchronized with the sales order data. When enabled, updates the customer master record with address modifications, ensuring data consistency across customer relationship management systems. Example: False
- `line_items` (`array`, optional): Line items of a sales order. Example: [{"item_id":"460000000017088","name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120}]
- `location_id` (`string`, optional): Unique identifier for the business location entity. Specifies the organizational location where the sales order transaction is processed, affecting tax jurisdiction calculations, inventory allocation, reporting segmentation, and location-specific business rules enforcement. Can be retrieved from the Locations API. Note: This value is a set of numeric characters. Example: 460000000038080
- `merchant_id` (`string`, optional): ID of the merchant. Note: This value is a set of numeric characters. Example: 460000000000597
- `notes` (`string`, optional): Free-form text field containing additional information, instructions, or comments related to the sales order. This field supports internal documentation, customer-specific requirements, special handling instructions, and inter-departmental communication for order processing workflows.
- `notes_default` (`string`, optional): Default Notes for the Sales Order
- `pricebook_id` (`string`, optional): Unique identifier for the pricing structure applied to the sales order. Determines item rates, discount rules, and pricing policies based on customer segments, volume tiers, or promotional campaigns. Can be retrieved from the Pricebooks API. Note: This value is a set of numeric characters.
- `reference_number` (`string`, optional): External reference identifier for cross-referencing with customer purchase orders, internal tracking systems, or third-party applications. Used for order reconciliation, customer communication, and integration with external business systems and workflows. Example: REF-001
- `salesorder_number` (`string`, optional): Unique alphanumeric identifier for the sales order entity. Required when automatic numbering is disabled in organization settings. Must be unique within the organization and follows the configured numbering sequence pattern for sales order identification and tracking. Example: SO-00001
- `salesperson_id` (`string`, optional): Unique identifier for the salesperson responsible for this sales order. Links the order to a specific sales representative customer relationship management, and sales reporting purposes. Note: This value is a set of numeric characters. Example: 460000000000097
- `salesperson_name` (`string`, optional): Full name of the sales representative assigned to this sales order. Automatically populated when salesperson_id is specified. Example: John Roberts
- `shipment_date` (`string`, optional): Expected or actual date when goods will be shipped to the customer in YYYY-MM-DD format. Used for delivery planning, customer communication, inventory management, and tracking order fulfillment timelines.
- `shipping_address_id` (`string`, optional): Unique identifier referencing the customer shipping address entity. Specifies the delivery destination for goods fulfillment, logistics planning, shipping cost calculations, and delivery confirmation processes. Must correspond to a valid address record within the customer address registry. Note: This value is a set of numeric characters.
- `shipping_charge` (`number`, optional): Additional cost associated with product delivery and logistics services. Applied to the sales order total and affects final pricing calculations, profit margins, and customer billing. Supports decimal precision for accurate cost allocation. Example: 2
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Tax ID for the Sales Order. Note: This value is a set of numeric characters. Example: 460000000017094
- `template_id` (`string`, optional): Unique identifier for the PDF document template used for sales order presentation. Determines document layout, branding elements, formatting specifications, and visual presentation standards for customer-facing documents and printed materials. Note: This value is a set of numeric characters. Example: 460000000021001
- `terms` (`string`, optional): Contractual terms and conditions governing the sales order transaction. Defines payment obligations, delivery specifications, warranty provisions, liability limitations, and other legal stipulations that establish the binding agreement between the organization and customer for this specific transaction.
- `terms_default` (`string`, optional): Default Terms of the Sales Order
- `totalFiles` (`integer`, optional): Total number of files. Example: 0
- `zcrm_potential_id` (`string`, optional): Unique identifier linking the sales order to a Zoho CRM potential record. Note: This value is a set of numeric characters. Example: 460000000033001
- `zcrm_potential_name` (`string`, optional): Descriptive name of the Zoho CRM potential record associated with this sales order.

Example input: `{"customer_id":"<customer_id>","organization_id":"<organization_id>"}`

### `zohobooks_sales_order_mark_open`

Mark Sales Order Open · Write

Mark a draft or void sales order as open (confirmed). Returns a success code and message. Use this to confirm a sales order. Use sales_order_mark_void to cancel one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `salesorder_id` (`string`, required): Unique identifier of the sales order. Note: This value is a set of numeric characters. Example: 460000000039129

Example input: `{"organization_id":"<organization_id>","salesorder_id":"<salesorder_id>"}`

### `zohobooks_sales_order_mark_void`

Void Sales Order · Write

Mark a sales order as void, cancelling it while keeping it on record. Returns a success code and message. Use this to cancel a sales order. Use sales_order_mark_open to reopen it. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `salesorder_id` (`string`, required): Unique identifier of the sales order. Note: This value is a set of numeric characters. Example: 460000000039129
- `reason` (`string`, optional): Reason to convert sales order as void . Maximum Length: 500

Example input: `{"organization_id":"<organization_id>","salesorder_id":"<salesorder_id>"}`

### `zohobooks_sales_order_update`

Update Sales Order · Write

Update an existing sales order's customer, line items, dates or shipping details. Returns a salesorder array (each with salesorder_id, documents, zcrm_potential_id, zcrm_potential_name, salesorder_number, date). Use this to change a sales order you have the salesorder_id for. Use sales_order_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `customer_id` (`string`, required): Unique identifier for the customer receiving the sales order. This ID links the order to a specific customer account and determines billing information, payment terms, pricing rules, and tax calculations based on customer settings. Can be fetched from the Get Contacts API or retrieved from existing customer records in your organization. Note: This value is a set of numeric characters. Example: 460000000017138
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `salesorder_id` (`string`, required): Unique identifier of the sales order. Note: This value is a set of numeric characters. Example: 460000000039129
- `adjustment` (`number`, optional): Manual modification amount applied to the sales order total for rounding corrections, special pricing arrangements, or other business-specific adjustments. Supports positive and negative values for additions or deductions from the order total. Example: 0.2
- `adjustment_description` (`string`, optional): Textual explanation for the adjustment amount applied to the sales order. Provides audit trail documentation, justification for pricing modifications, and contextual information for financial reporting and compliance verification purposes. Example: Adjustment
- `billing_address_id` (`string`, optional): Unique identifier referencing the customer billing address entity. Determines the address used for invoice generation, payment processing, tax jurisdiction calculations, and financial record-keeping. Must correspond to a valid address record associated with the specified customer account. Note: This value is a set of numeric characters. Example: 460000000032174
- `can_send_in_mail` (`boolean`, optional): Can the file be sent in mail. Example: True
- `contact_persons_associated` (`array`, optional): Contact Persons associated with the transaction. Example: [{"contact_person_id":982000000567003}]
- `crm_custom_reference_id` (`string`, optional): Custom reference identifier for CRM integration purposes. Note: This value is a set of numeric characters.
- `crm_owner_id` (`string`, optional): Unique identifier for the CRM owner associated with the sales order. Note: This value is a set of numeric characters.
- `currency_id` (`string`, optional): Unique identifier for the currency used in the sales order transaction. Determines pricing display, exchange rate calculations, and affects financial reporting. If not specified, the organization default currency will be used automatically. Can be fetched from the Get Currencies API or retrieved from your organization currency settings. Note: This value is a set of numeric characters. Example: 460000000000097
- `custom_fields` (`array`, optional): Custom fields for a sales order. Example: [{"customfield_id":"460000000639129","value":"Normal"}]
- `date` (`string`, optional): Date when the sales order was created in YYYY-MM-DD format. This date affects order processing timelines, delivery schedules, payment terms calculation, and appears on customer-facing documents and internal reports. Example: 2014-07-28
- `delivery_method` (`string`, optional): Specification of the transportation and delivery mechanism for order fulfillment. Determines shipping costs, delivery timelines, carrier selection, and customer communication regarding order status and tracking information. Example: Air
- `discount` (`string`, optional): Discount applied to the sales order, which can be either a percentage or a flat amount. For percentage discounts, the value should include the % symbol (e.g., 10%). For example, on Rs.1000, a 10% discount results in Rs.900, while a flat Rs.200 discount results in Rs.800.
- `discount_type` (`string`, optional): Classification of discount application scope within the sales order. entity_level applies discount to the entire order total, while item_level applies discount to individual line items. Determines discount calculation methodology and affects pricing structure. Example: entity_level
- `doc` (`string`, optional): Document that is to be attached
- `documents` (`array`, optional): Documents attached to the sales order. Example: ["document_id","file_name"]
- `exchange_rate` (`number`, optional): Currency conversion rate from the transaction currency to the organization base currency. Required for multi-currency transactions to ensure accurate financial reporting, profit calculations, and tax computations in the base currency denomination. Example: 1.233
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto sales order number generation for this sales order. This mandates the sales order number. Example: False
- `is_discount_before_tax` (`boolean`, optional): Boolean flag determining the sequence of discount application in tax calculations. When true, discount is applied before tax computation; when false, discount is applied after tax calculation. Affects final pricing accuracy and tax compliance reporting. Example: True
- `is_inclusive_tax` (`boolean`, optional): Used to specify whether the line item rates are inclusive or exclusive of tax. Example: False
- `is_update_customer` (`boolean`, optional): Boolean flag indicating whether customer billing address information should be synchronized with the sales order data. When enabled, updates the customer master record with address modifications, ensuring data consistency across customer relationship management systems. Example: False
- `line_items` (`array`, optional): Line items of a sales order. Example: [{"item_id":"460000000017088","name":"Hard Drive","description":"500GB, USB 2.0 interface 1400 rpm, protective hard case.","rate":120}]
- `location_id` (`string`, optional): Unique identifier for the business location entity. Specifies the organizational location where the sales order transaction is processed, affecting tax jurisdiction calculations, inventory allocation, reporting segmentation, and location-specific business rules enforcement. Can be retrieved from the Locations API. Note: This value is a set of numeric characters. Example: 460000000038080
- `merchant_id` (`string`, optional): ID of the merchant. Note: This value is a set of numeric characters. Example: 460000000000597
- `notes` (`string`, optional): Free-form text field containing additional information, instructions, or comments related to the sales order. This field supports internal documentation, customer-specific requirements, special handling instructions, and inter-departmental communication for order processing workflows.
- `notes_default` (`string`, optional): Default Notes for the Sales Order
- `pricebook_id` (`string`, optional): Unique identifier for the pricing structure applied to the sales order. Determines item rates, discount rules, and pricing policies based on customer segments, volume tiers, or promotional campaigns. Can be retrieved from the Pricebooks API. Note: This value is a set of numeric characters.
- `reference_number` (`string`, optional): External reference identifier for cross-referencing with customer purchase orders, internal tracking systems, or third-party applications. Used for order reconciliation, customer communication, and integration with external business systems and workflows. Example: REF-001
- `salesorder_number` (`string`, optional): Unique alphanumeric identifier for the sales order entity. Required when automatic numbering is disabled in organization settings. Must be unique within the organization and follows the configured numbering sequence pattern for sales order identification and tracking. Example: SO-00001
- `salesperson_id` (`string`, optional): Unique identifier for the salesperson responsible for this sales order. Links the order to a specific sales representative customer relationship management, and sales reporting purposes. Note: This value is a set of numeric characters. Example: 460000000000097
- `salesperson_name` (`string`, optional): Full name of the sales representative assigned to this sales order. Automatically populated when salesperson_id is specified. Example: John Roberts
- `shipment_date` (`string`, optional): Expected or actual date when goods will be shipped to the customer in YYYY-MM-DD format. Used for delivery planning, customer communication, inventory management, and tracking order fulfillment timelines.
- `shipping_address_id` (`string`, optional): Unique identifier referencing the customer shipping address entity. Specifies the delivery destination for goods fulfillment, logistics planning, shipping cost calculations, and delivery confirmation processes. Must correspond to a valid address record within the customer address registry. Note: This value is a set of numeric characters.
- `shipping_charge` (`number`, optional): Additional cost associated with product delivery and logistics services. Applied to the sales order total and affects final pricing calculations, profit margins, and customer billing. Supports decimal precision for accurate cost allocation. Example: 2
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `tax_id` (`string`, optional): Tax ID for the Sales Order. Note: This value is a set of numeric characters. Example: 460000000017094
- `template_id` (`string`, optional): Unique identifier for the PDF document template used for sales order presentation. Determines document layout, branding elements, formatting specifications, and visual presentation standards for customer-facing documents and printed materials. Note: This value is a set of numeric characters. Example: 460000000021001
- `terms` (`string`, optional): Contractual terms and conditions governing the sales order transaction. Defines payment obligations, delivery specifications, warranty provisions, liability limitations, and other legal stipulations that establish the binding agreement between the organization and customer for this specific transaction.
- `terms_default` (`string`, optional): Default Terms of the Sales Order
- `totalFiles` (`integer`, optional): Total number of files. Example: 0
- `zcrm_potential_id` (`string`, optional): Unique identifier linking the sales order to a Zoho CRM potential record. Note: This value is a set of numeric characters. Example: 460000000033001
- `zcrm_potential_name` (`string`, optional): Descriptive name of the Zoho CRM potential record associated with this sales order.

Example input: `{"customer_id":"<customer_id>","organization_id":"<organization_id>","salesorder_id":"<salesorder_id>"}`

### `zohobooks_sales_receipt_create`

Create Sales Receipt · Write

Record a sale that was paid in full at the time of sale, with line items and the payment mode. Returns a salesreceipt object with sales_receipt_id, receipt_number, date, status, payment_mode, customer_id. Use this for immediate-payment sales. Use invoice_create when the customer pays later. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_id` (`string`, required): Unique identifier for the customer Example: 460000000017138
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `payment_mode` (`string`, required): Mode through which payment was received. Allowed values: cash, check, credit_card, bank_transfer, etc. Example: cash
- `can_send_in_mail` (`boolean`, optional): Send the sales receipt to customer via email. Example: True
- `date` (`string`, optional): Date of the sales receipt Example: 2014-07-28
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto sales receipt number generation for this sales receipt. This mandates the sales receipt number. Example: False
- `line_items` (`array`, optional): Line items for the sales receipt Example: [{"item_id":"460000000017088","rate":120,"quantity":2,"tax_id":"460000000017094"}]
- `notes` (`string`, optional): Notes for the sales receipt Example: Thank you for your business
- `receipt_number` (`string`, optional): Sales receipt number (required if auto-numbering is disabled) Example: SR-00001
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `terms` (`string`, optional): Terms and conditions Example: Payment received in full

Example input: `{"customer_id":"<customer_id>","organization_id":"<organization_id>","payment_mode":"<payment_mode>"}`

### `zohobooks_time_entry_create`

Log Time Entry · Write

Log time against a project task for a user and date. Returns a time_entry object with time_entry_id, project_id, project_name, customer_id, customer_name, task_id. Use this to record hours worked. Use time_entry_update to correct an existing entry. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `log_date` (`string`, required): Date on which the user spent on the task. Date-Format [HH:mm] Example: 2013-09-17
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `project_id` (`string`, required): ID of the project. Example: Network Distribution
- `task_id` (`string`, required): ID of the task. Example: 460000000044001
- `user_id` (`string`, required): ID of the user. Example: 460000000024003
- `begin_time` (`string`, optional): Time the user started working on this task. Time-Format [HH:mm] Example: 10:00
- `cost_rate` (`number`, optional): Hourly cost rate Example: 10
- `end_time` (`string`, optional): Time the user stopped working on this task. Time-Format [HH:mm] Example: 15:00
- `is_billable` (`boolean`, optional): Whether it is billable or not. Example: True
- `log_time` (`string`, optional): Time the user spent on this task. Either send this attribute or begin and end time attributes. Time-Format [HH:mm]
- `notes` (`string`, optional): Description of the work done. Max-length [500]
- `start_timer` (`string`, optional): Start timer.

Example input: `{"log_date":"<log_date>","organization_id":"<organization_id>","project_id":"<project_id>","task_id":"<task_id>","user_id":"<user_id>"}`

### `zohobooks_time_entry_update`

Update Time Entry · Write

Update an existing time entry's project, task, date, hours or notes. Returns a time_entry object with time_entry_id, project_id, project_name, customer_id, customer_name, task_id. Use this to correct a time entry you have the time_entry_id for. Use time_entry_create for a new one. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `log_date` (`string`, required): Date on which the user spent on the task. Date-Format [HH:mm] Example: 2013-09-17
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `project_id` (`string`, required): ID of the project. Example: Network Distribution
- `task_id` (`string`, required): ID of the task. Example: 460000000044001
- `time_entry_id` (`string`, required): Unique identifier of the time entry. Example: 460000000044021
- `user_id` (`string`, required): ID of the user. Example: 460000000024003
- `begin_time` (`string`, optional): Time the user started working on this task. Time-Format [HH:mm] Example: 10:00
- `cost_rate` (`number`, optional): Hourly cost rate Example: 0
- `end_time` (`string`, optional): Time the user stopped working on this task. Time-Format [HH:mm] Example: 15:00
- `is_billable` (`boolean`, optional): Whether it is billable or not. Example: True
- `log_time` (`string`, optional): Time the user spent on this task. Either send this attribute or begin and end time attributes. Time-Format [HH:mm]
- `notes` (`string`, optional): Description of the work done. Max-length [500]
- `start_timer` (`string`, optional): Start timer.

Example input: `{"log_date":"<log_date>","organization_id":"<organization_id>","project_id":"<project_id>","task_id":"<task_id>","time_entry_id":"<time_entry_id>","user_id":"<user_id>"}`

### `zohobooks_vendor_credit_create`

Create Vendor Credit · Write

Record a credit from a vendor, for example for returned goods or an overcharge. Returns a vendor_credit object with vendor_credit_id, vendor_credit_number, date, pricebook_id, status, reference_number. Use this to record a vendor credit. Use credit_note_create for credit you give a customer. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `vendor_id` (`string`, required): Unique identifier for the vendor contact. Retrieve vendor IDs from the Get Contacts API endpoint in the contacts section. This ID links the vendor credit to the specific vendor record. Example: 460000000020029
- `bill_id` (`string`, optional): Bill Associated with the Vendor Credit Example: 460000000057075
- `currency_id` (`string`, optional): Unique identifier for the currency used in the vendor credit. Can differ from vendor currency if multi-currency is enabled. Retrieve currency IDs from the List Currencies API endpoint in the currency section. Example: 3000000000083
- `custom_fields` (`array`, optional): Custom fields associated with the vendor credit.
- `date` (`string`, optional): The date on which the vendor credit is created. Must be in yyyy-mm-dd format. This date determines the accounting period and affects tax calculations. Example: 2014-08-28
- `documents` (`array`, optional): List of documents attached to the vendor credit.
- `exchange_rate` (`number`, optional): Exchange rate for converting the vendor credit currency to base currency. Required when currency differs from base currency. Retrieve rates from currency exchange rate APIs. Example: 1
- `ignore_auto_number_generation` (`boolean`, optional): Ignore auto number generation for this vendor credit only. On enabling this option vendor credit number is mandatory.
- `is_inclusive_tax` (`boolean`, optional): Set to true if line item rates include tax amounts. When true, tax is already included in the item rates. When false, tax will be calculated and added to the rates. Example: False
- `is_update_customer` (`boolean`, optional): Set to true to update customer information when creating the vendor credit. This will modify the associated customer record with new details from the vendor credit. Example: False
- `line_items` (`array`, optional): Line items of a vendor credit. Example: [{"item_id":"460000000020071","account_id":"460000000020097","name":"Premium Plan - Web hosting","rate":30}]
- `location_id` (`string`, optional): Unique identifier for the business location. Retrieve location IDs from the List Locations API endpoint in the locations section. Determines tax settings and business rules. Example: 460000000038080
- `notes` (`string`, optional): Additional notes or comments for the vendor credit. Displayed on the vendor credit document for vendor reference. Max-length [5000]
- `pricebook_id` (`string`, optional): Unique identifier for the pricebook used for pricing items in the vendor credit. Retrieve pricebook IDs from the pricebooks API endpoint.
- `reference_number` (`string`, optional): Optional reference number for tracking purposes. Can be any custom string or auto-generated. Useful for linking to external systems or internal tracking. Max-Length [100]
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `vendor_credit_number` (`string`, optional): Mandatory if auto number generation is disabled. Example: DN-00002

Example input: `{"organization_id":"<organization_id>","vendor_id":"<vendor_id>"}`

### `zohobooks_vendor_payment_create`

Record Vendor Payment · Write

Record a payment made to a vendor and apply it to one or more bills. Returns ach_payment_status, amount, balance. Use this when you pay a vendor. Use bill_create to record what you owe first. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `amount` (`number`, required): Total Amount of Vendor Payment Example: 500
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `bills` (`array`, optional): Individual bill payment details as array. Example: [{"bill_id":"460000000053199","amount_applied":150,"bill_payment_id":"460000000053221"}]
- `custom_fields` (`array`, optional): Custom fields associated with the vendor payment.
- `date` (`string`, optional): Date the payment is made. Example: 2013-10-07
- `description` (`string`, optional): Description for the Vendor Payment recorded.
- `exchange_rate` (`number`, optional): Exchange rate of the currency. Example: 1
- `location_id` (`string`, optional): Location ID Example: 460000000038080
- `paid_through_account_id` (`string`, optional): ID of the cash/ bank account from which the payment is made. Example: 460000000000358
- `payment_mode` (`string`, optional): Mode of Vendor Payment Example: Stripe
- `reference_number` (`string`, optional): Reference number for the Vendor Payment recorded. Example: REF#912300
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `vendor_id` (`string`, optional): ID of the vendor associated with the Vendor Payment. Example: 460000000026049

Example input: `{"amount":500,"organization_id":"<organization_id>"}`

### `zohobooks_vendor_payment_update`

Update Vendor Payment · Write

Update a recorded vendor payment's amount, date, mode or bill allocation. Returns a vendorpayment array (each with payment_id, vendor_id, vendor_name, payment_mode, payment_number, custom_fields). Use this to correct a payment you have the payment_id for. Use vendor_payment_create for a new payment. Requires an organization_id from zohobooks_organizations_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `amount` (`number`, required): Total Amount of Vendor Payment Example: 500
- `organization_id` (`string`, required): ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
- `payment_id` (`string`, required): Unique identifier of the payment. Example: 460000000053219
- `bills` (`array`, optional): Individual bill payment details as array. Example: [{"bill_id":"460000000053199","amount_applied":150,"bill_payment_id":"460000000053221"}]
- `custom_fields` (`array`, optional): Custom fields associated with the vendor payment.
- `date` (`string`, optional): Date the payment is made. Example: 2013-10-07
- `description` (`string`, optional): Description for the Vendor Payment recorded.
- `exchange_rate` (`number`, optional): Exchange rate of the currency. Example: 1
- `location_id` (`string`, optional): Location ID Example: 460000000038080
- `paid_through_account_id` (`string`, optional): ID of the cash/ bank account from which the payment is made. Example: 460000000000358
- `payment_mode` (`string`, optional): Mode of Vendor Payment Example: Stripe
- `reference_number` (`string`, optional): Reference number for the Vendor Payment recorded. Example: REF#912300
- `tags` (`array`, optional): Reporting tags help organize and filter data across reports and enable detailed business intelligence analysis. Example: [{"tag_id":"460000000000567","tag_option_id":"460000000014044"}]
- `vendor_id` (`string`, optional): ID of the vendor associated with the Vendor Payment. Example: 460000000026049

Example input: `{"amount":500,"organization_id":"<organization_id>","payment_id":"<payment_id>"}`

## Related

Other Accounting & Finance connectors ([all 37](/agentkit/connectors/?category=accounting-finance)):

- [QuickBooks](/agentkit/connectors/quickbooks/): Scalekit connector, OAuth, 117 tools
- [Xero](/agentkit/connectors/xero/): Scalekit connector, OAuth, 94 tools
- [Stripe](/agentkit/connectors/stripe/): Scalekit connector, Access token, 178 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
