Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Zoho Books

Scalekit connector
Open markdown

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.

Tools
119
What they doRead · write · destructive
57 · 62 · 057 read62 write0 destructive
Users sign in with
OAuth app
Your own Zoho Books app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .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.

  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

    quickstart.mts
    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)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • zohobooks_bank_account_getGet one bank or credit card account by ID, including its balance and bank details.Read-only

    Get Bank Account

    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.

    Inputs

    account_idstringrequired
    Unique identifier of the bank account. Example: 460000000050127
    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
  • zohobooks_bank_accounts_listList the bank and credit card accounts set up in the organization, with balances.Read-only

    List Bank Accounts

    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.

    Inputs

    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
    filter_bystring
    Filter the account by their status. Allowed Values: Status.All, Status.Active and Status.Inactive. Example: Status.Allone of Status.AllStatus.ActiveStatus.Inactive
    pageinteger
    Page number to be fetched. Default value is 1. Example: 1
    per_pageinteger
    Number of records to be fetched per page. Example: 10
    sort_columnstring
    Sort the values based on the allowed values. Allowed Values: account_name,account_type and account_code. Example: account_name
  • zohobooks_bank_transaction_getGet one bank transaction by ID, including its account, amount, type and categorization.Read-only

    Get Bank Transaction

    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.

    Inputs

    bank_transaction_idstringrequired
    Unique identifier of the bank transaction. Example: 460000000048017
    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
  • zohobooks_bank_transactions_listList bank transactions, with filters for account, type, status, dates and amount.Read-only

    List Bank Transactions

    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.

    Inputs

    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
    account_idstring
    ID of the bank account to filter transactions. Example: 460000000048001
    amountnumber
    Start and end amount, to provide a range within which the transaction amount exist. Variants: amount_start and amount_end Example: 2000
    datestring
    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_bystring
    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.AllStatus.UncategorizedStatus.CategorizedStatus.ManuallyAddedStatus.ExcludedStatus.Matched
    pageinteger
    Page number to be fetched. Default value is 1. Example: 1
    per_pageinteger
    Number of records to be fetched per page. Example: 10
    reference_numberstring
    Search using Reference Number of the transaction Example: Ref-121
    search_textstring
    Search Transactions by contact name or description
    sort_columnstring
    Sorts the transactions based on the allowed sort types. Allowed Values: date.
    statusstring
    Transaction status wise list view - All, uncategorized, manually_added, matched, excluded, categorized Example: categorized
    transaction_statusstring
    Transaction status wise list view - All, uncategorized, manually_added, matched, excluded, categorized
    transaction_typestring
    Type of the bank transaction. Allowed Values: sales_without_invoices, expense_refund, owner_drawings, owner_contribution, interest_income, other_income, expense, deposit Example: depositone of sales_without_invoicesexpense_refundowner_drawingsowner_contributioninterest_incomeother_incomeexpensedeposit
  • zohobooks_bill_getGet one vendor bill by ID, including line items, totals, balance due and payment status.Read-only

    Get Bill

    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.

    Inputs

    bill_idstringrequired
    Unique identifier of the bill. Example: 460000000098765
    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
  • zohobooks_bill_payments_listList the vendor payments recorded against one bill.Read-only

    List Bill Payments

    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.

    Inputs

    bill_idstringrequired
    Unique identifier of the bill. Example: 460000000098765
    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
  • zohobooks_bills_listList vendor bills, with filters for status, vendor, dates, bill number and free-text search.Read-only

    List Bills

    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.

    Inputs

    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695
    bill_numberstring
    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_datestring
    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_idstring
    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
    datestring
    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
    descriptionstring
    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_datestring
    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_bystring
    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.Allone of Status.AllStatus.PaidStatus.OpenStatus.OverdueStatus.VoidStatus.PartiallyPaidStatus.UnpaidStatus.DraftStatus.PendingStatus.ApprovalOverdueStatus.CreditNotesStatus.MyApprovalsStatus.NetworkStatus.NetworkPendingStatus.EInvoicedBillsStatus.EInvoicePendingBillsStatus.MSMEDueBillsStatus.TDSInvoicesStatus.BBPSPendingApprovalStatus.BBPSAcceptedStatus.BBPSAcceptFailedStatus.BBPSRejectedStatus.BBPSRejectFailedStatus.BBPSReturnedStatus.BBPSReturnFailedStatus.PMSAppliedBillsStatus.ViolatedBillsYetToBeReceivedReceivedExceptionListWithAttachmentWithoutAttachmentSource.TallyConnectorMissingAdvancedTrackingDetailsTDSCalculationExceptionListType.AllType.BillsType.SelfBilledType.MyRecentBills
    item_descriptionstring
    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_idstring
    Filter bills by specific item ID. Retrieves all bills containing a particular product or service item based on its unique identifier. Example: 460000000054135
    item_namestring
    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_timestring
    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_idsstring
    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
    pageinteger
    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_pageinteger
    Specify the number of bills to retrieve per page. Example: 10
    project_idstring
    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_idstring
    Filter bills by purchase order ID. Retrieves all bills associated with a specific purchase order for tracking procurement workflows. Example: 460000000068231
    recurring_bill_idstring
    Filter bills by recurring bill ID. Retrieves all bills generated from a specific recurring bill template or schedule.
    reference_numberstring
    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_textstring
    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_columnstring
    Specify the column to sort bills by. Available options include vendor_name, bill_number, date, due_date, total, balance, and created_time. Example: created_timeone of vendor_namebill_numberdatedue_datetotalbalancecreated_timelast_modified_timetxn_value_datetotal_retention_amount
    sort_orderstring
    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
    statusstring
    Filter bills by status: paid, open, overdue, void, or partially_paid. Useful for payment status filtering, accounts payable management, and status-specific reporting. Example: openone of paidopenoverduevoidpartially_paidunpaiddraftpending_approvalapproval_overduemy_approvalsrejectedapproved
    totalstring
    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_idstring
    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_namestring
    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.
  • zohobooks_chart_of_account_getGet one account from the chart of accounts by ID, including its type, code and balance.Read-only

    Get Account

    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.

    Inputs

    account_idstringrequired
    Unique identifier of the account. Example: 460000000038079
    organization_idstringrequired
    ID of the Zoho Books organization to act on. Get it from zohobooks_organizations_list (organization_id field). Example: 10234695