
Zoho Books
Available ActionsEach successful request consumes credits as outlined below.
Details
Access Zoho Books with OAuth to list organizations and manage core accounting resources such as chart of accounts, journal entries, contacts, items, invoices, estimates, credit notes, bills, expenses, payments, projects, tasks, and time entries. Includes explicit invoice status and bank reconciliation actions with permission gating and supports organization-scoped queries.
Use Cases
List organizations, List chart of accounts, Create journal entries, Import bank statements, Match bank transactions, Sync contacts, Create invoices, Update invoice status, Email invoices, Track expenses
Connect Your Agent In 5 Min
Watch the setup guide for your platform
Or Install Locally
STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to https://api.agentpmt.com/mcp. All tool execution happens in the cloud and the server cannot edit any files on your computer.
npm install -g @agentpmt/mcp-routeragentpmt-setupcurl -X POST "https://api.agentpmt.com/products/purchase" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ********" \
-d '{
"product_id": "69728b7b225b17b86aa9441c",
"parameters": {
"action": "list_organizations"
}
}'import requests
import json
url = "https://api.agentpmt.com/products/purchase"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
}
data = {
"product_id": "69728b7b225b17b86aa9441c",
"parameters": {
"action": "list_organizations"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "69728b7b225b17b86aa9441c",
parameters: {
"action": "list_organizations"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));const axios = require('axios');
const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "69728b7b225b17b86aa9441c",
parameters: {
"action": "list_organizations"
}
};
axios.post(url, data, { headers })
.then(response => {
console.log(response.status);
console.log(response.data);
})
.catch(error => {
console.error("Error:", error.message);
});Login to view your API and budget keys. The example above uses placeholder values. Sign in to see personalized code with your bearer token.
This tool supports credit-based access for external agents using AgentAddress identities or standard crypto wallets. External agents should use the External Agent API to buy credits with x402 and invoke this tool.
1. Buy Credits
Purchase credits via x402 payment (500 credit minimum, 100 credits = $1).
# Request payment requirements (returns 402 + PAYMENT-REQUIRED header)
curl -i -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'
# Sign the EIP-3009 authorization, then retry with signature header
curl -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64-json>" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'2. Create a Session Nonce (nonce used in signed balance/invoke)
curl -s -X POST "https://www.agentpmt.com/api/external/auth/session" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET" }'3. Invoke This Tool
Sign the message with your wallet (EIP-191 personal-sign), then POST to the invoke endpoint.
# Sign this message (wallet MUST be lowercased):
# agentpmt-external
# wallet:0xyourwallet...
# session:<session_nonce>
# request:<request_id>
# action:invoke
# product:69728b7b225b17b86aa9441c
# payload:<sha256(canonical_json(parameters))>
curl -s -X POST "https://www.agentpmt.com/api/external/tools/69728b7b225b17b86aa9441c/invoke" \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0xYOUR_WALLET",
"session_nonce": "<session_nonce>",
"request_id": "invoke-uuid",
"signature": "0x<signature>",
"parameters": {
"action": "your_action",
"your_param": "value"
}
}'Credentials
Manage credentials in your dashboard.
Actions(14)
list_organizations5cr1 paramRetrieve all Zoho Books organizations associated with your account. Use this first to obtain your organization_id.
list_organizations5cr1 paramRetrieve all Zoho Books organizations associated with your account. Use this first to obtain your organization_id.
query_paramsobjectAdditional query parameters
list_records5cr4 params(2 required)List records for a given resource type with pagination support. Defaults to 25 records per page.
list_records5cr4 params(2 required)List records for a given resource type with pagination support. Defaults to 25 records per page.
resourcerequiredstringZoho Books resource name
organization_idrequiredstringZoho Books organization ID
project_idstringProject ID (required when resource is 'tasks')
query_paramsobjectQuery parameters for filtering and pagination (e.g., page, per_page, status, date ranges)
get_record5cr5 params(3 required)Retrieve a single record by its ID.
get_record5cr5 params(3 required)Retrieve a single record by its ID.
resourcerequiredstringZoho Books resource name
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringThe record ID to fetch
project_idstringProject ID (required when resource is 'tasks')
query_paramsobjectAdditional query parameters
create_record5cr5 params(3 required)Create a new record for a given resource type. Requires 'add' permission. The bankstatements resource only supports this action (used to import statements).
create_record5cr5 params(3 required)Create a new record for a given resource type. Requires 'add' permission. The bankstatements resource only supports this action (used to import statements).
resourcerequiredstringZoho Books resource name
organization_idrequiredstringZoho Books organization ID
payloadrequiredobjectRecord data to create
project_idstringProject ID (required when resource is 'tasks')
query_paramsobjectAdditional query parameters
update_record5cr6 params(4 required)Update an existing record. Requires 'edit' permission.
update_record5cr6 params(4 required)Update an existing record. Requires 'edit' permission.
resourcerequiredstringZoho Books resource name
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringRecord ID to update
payloadrequiredobjectFields to update
project_idstringProject ID (required when resource is 'tasks')
query_paramsobjectAdditional query parameters
delete_record5cr5 params(3 required)Delete a record. Requires 'delete' permission.
delete_record5cr5 params(3 required)Delete a record. Requires 'delete' permission.
resourcerequiredstringZoho Books resource name
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringRecord ID to delete
project_idstringProject ID (required when resource is 'tasks')
query_paramsobjectAdditional query parameters
invoice_mark_sent5cr3 params(2 required)Mark an invoice as sent. Requires 'edit' permission.
invoice_mark_sent5cr3 params(2 required)Mark an invoice as sent. Requires 'edit' permission.
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringInvoice ID to mark as sent
query_paramsobjectAdditional query parameters
invoice_mark_void5cr3 params(2 required)Mark an invoice as void. Requires 'edit' permission.
invoice_mark_void5cr3 params(2 required)Mark an invoice as void. Requires 'edit' permission.
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringInvoice ID to mark as void
query_paramsobjectAdditional query parameters
invoice_mark_draft5cr3 params(2 required)Revert an invoice to draft status. Requires 'edit' permission.
invoice_mark_draft5cr3 params(2 required)Revert an invoice to draft status. Requires 'edit' permission.
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringInvoice ID to revert to draft
query_paramsobjectAdditional query parameters
invoice_email5cr4 params(3 required)Send an invoice by email. Requires 'edit' permission. Payload must include recipient email addresses, subject, and body.
invoice_email5cr4 params(3 required)Send an invoice by email. Requires 'edit' permission. Payload must include recipient email addresses, subject, and body.
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringInvoice ID to email
payloadrequiredobjectEmail details: to_mail_ids (array), subject (string), body (string)
query_paramsobjectAdditional query parameters
bank_get_matching_transactions5cr3 params(2 required)Find existing transactions that could match an uncategorized bank transaction.
bank_get_matching_transactions5cr3 params(2 required)Find existing transactions that could match an uncategorized bank transaction.
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringUncategorized bank transaction ID
query_paramsobjectAdditional query parameters
bank_match_transaction5cr4 params(2 required)Match an uncategorized bank transaction to one or more existing transactions. Requires 'edit' permission.
bank_match_transaction5cr4 params(2 required)Match an uncategorized bank transaction to one or more existing transactions. Requires 'edit' permission.
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringUncategorized bank transaction ID to match
payloadobjectMatch details: transactions_to_be_matched array with transaction_id and transaction_type
query_paramsobjectAdditional query parameters
bank_unmatch_transaction5cr3 params(2 required)Remove the match from a previously matched bank transaction. Requires 'edit' permission.
bank_unmatch_transaction5cr3 params(2 required)Remove the match from a previously matched bank transaction. Requires 'edit' permission.
organization_idrequiredstringZoho Books organization ID
record_idrequiredstringBank transaction ID to unmatch
query_paramsobjectAdditional query parameters
describe_action5cr1 paramGet the detailed parameter schema for any action. Useful for discovering required and optional fields.
describe_action5cr1 paramGet the detailed parameter schema for any action. Useful for discovering required and optional fields.
action_to_describestringThe action name to describe. Omit to get schemas for all actions.
Usage Instructions
Usage guidance provided directly by the developer for this product.
Zoho Books
Actions
Use describe_action with action_to_describe to get the full schema for any action.
Supported Resources
contacts, items, invoices, estimates, creditnotes, chartofaccounts, journals, bankaccounts, banktransactions, bankstatements, bills, expenses, vendorcredits, customerpayments, vendorpayments, projects, tasks, time_entries
Note: tasks requires project_id. bankstatements only supports create_record.
Pagination
List responses default to 25 records per page. Use per_page (max 200) and page in query_params to control pagination. Check the page_context object in the response for has_more_page.
Tool Call Format
List Organizations
{
"action": "list_organizations"
}
List Records
{
"action": "list_records",
"resource": "invoices",
"organization_id": "YOUR_ORG_ID",
"query_params": {
"page": 1,
"per_page": 25
}
}
Get Record
{
"action": "get_record",
"resource": "contacts",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049"
}
Create Record
{
"action": "create_record",
"resource": "contacts",
"organization_id": "YOUR_ORG_ID",
"payload": {
"contact_name": "Bowman & Co"
}
}
Update Record
{
"action": "update_record",
"resource": "contacts",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049",
"payload": {
"contact_name": "Bowman & Co (Updated)"
}
}
Delete Record
{
"action": "delete_record",
"resource": "invoices",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049"
}
Invoice - Mark as Sent
{
"action": "invoice_mark_sent",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049"
}
Invoice - Mark as Void
{
"action": "invoice_mark_void",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049"
}
Invoice - Mark as Draft
{
"action": "invoice_mark_draft",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049"
}
Invoice - Send Email
{
"action": "invoice_email",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049",
"payload": {
"to_mail_ids": ["customer@example.com"],
"subject": "Invoice from Your Company",
"body": "Please find the invoice attached."
}
}
Bank - Get Matching Transactions
{
"action": "bank_get_matching_transactions",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049"
}
Bank - Match Transaction
{
"action": "bank_match_transaction",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049",
"payload": {
"transactions_to_be_matched": [
{"transaction_id": "460000000026050", "transaction_type": "invoice"}
]
}
}
Bank - Unmatch Transaction
{
"action": "bank_unmatch_transaction",
"organization_id": "YOUR_ORG_ID",
"record_id": "460000000026049"
}
Describe Action
{
"action": "describe_action",
"action_to_describe": "list_records"
}
Tasks (requires project_id)
{
"action": "list_records",
"resource": "tasks",
"organization_id": "YOUR_ORG_ID",
"project_id": "460000000030001"
}
Permissions
Write actions require the corresponding permission in the permissions array:
create_recordrequiresaddupdate_record,invoice_mark_sent,invoice_mark_void,invoice_mark_draft,invoice_email,bank_match_transaction,bank_unmatch_transactionrequireeditdelete_recordrequiresdelete- Combine exact scopes as needed, such as
[read,edit]for read plus update access. - If
permissionsis omitted, Zoho Books defaults to read-only access.
About The Developer

Apoth3osis
Joined Agent Payment: August 14, 2025
We build tools that enable AI agents to excel in the mathematical realm.
Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.





