Integrations

Zoho Books

Connect Zoho Books to manage invoices, bills, customers, vendors, payments, expenses, banking, journals, taxes and projects.

OAuth authorizationFinance & BillingZoho Books API docsZoho Books MCP server overview

You paste the Client ID and Client secret of a Server-based Application you register in the Zoho API Console, then sign in with Zoho and pick the Zoho Books organization to connect.

Setup time
6 min
Auth
OAuth authorization
API base URL
https://www.zohoapis.com/books/v3
Rate limits
Per organization: 100 requests a minute; a day, Free 1,000, Standard 2,000, Professional 5,000, Premium, Elite and Ultimate 10,000; at the same time, 5 on Free and 10 on paid plans. Zoho mints at most 10 access tokens per refresh token every 10 minutes.

Before you begin

  • A Zoho Books organization on any plan.
  • A Zoho Books user role that can see what the AI should work with. An admin reaches everything.
  • Knowing which Zoho data center your account lives in: the domain you sign in at, such as zoho.com, zoho.eu, zoho.in or zoho.com.au.
  • PopMCP's callback URL from the connect form: https://app.popmcp.com/api/providers/zoho-books/callback

Get your credentials

Open the API Console for your data center

Sign in at api-console.zoho.com as the Zoho user whose Zoho Books access the AI should have. If your Zoho account lives in another data center, use that data center's console instead, for example api-console.zoho.eu, api-console.zoho.in or api-console.zoho.com.au. Click Get Started on your first visit, or Add Client if you already have clients.

Open this screen →

api-console.zoho.com
ops@acme.com
API Console / Applications

Applications

Clients registered to call Zoho APIs with OAuth 2.0.

Add Client
Client nameClient typeClient ID
Reporting scriptCreated Mar 4, 2026Self Client1000.7Q2L****WK9T

The console shows the clients of the data center you signed in to. A client made at api-console.zoho.eu does not appear at api-console.zoho.com.

Choose Server-based Applications

Pick Server-based Applications and click Create Now. PopMCP signs you in through a redirect, so the other client types, Self Client included, cannot complete the connection.

Open this screen →

api-console.zoho.com/add
ops@acme.com
API Console / Applications / Choose a client type

Choose a client type

The client type decides how users authorize your application.

Client typeUse it for
Client-based ApplicationsApps that run only in the browser
Server-based ApplicationsPick this oneWeb apps with a server that redirect users to Zoho to authorize
Mobile-based ApplicationsApps on phones and tablets
Non-browser Mobile ApplicationsDevices without a browser, such as smart TVs
Self ClientBack-end scripts with no redirect
Create Now

Server-based Applications is the only type that accepts PopMCP's redirect URL.

Name the client and add PopMCP's redirect URI

Enter a Client Name such as PopMCP and any Homepage URL, for example https://app.popmcp.com. Paste https://app.popmcp.com/api/providers/zoho-books/callback into Authorized Redirect URI, then click Create.

Open this screen →

api-console.zoho.com/add
ops@acme.com
API Console / Applications / Server-based Applications

Server-based Applications

Enter the client's details.

Client details
Client Name
PopMCP
Homepage URL
https://app.popmcp.com
Authorized Redirect URI
https://app.popmcp.com/api/providers/zoho-books/callback
CreateCancel

Zoho matches the redirect URI exactly, so paste it from the PopMCP connect form rather than typing it.

Copy the Client ID and Client Secret

Open the Client Secret tab and copy Client ID (it starts with 1000.) and Client Secret. You only need the Settings tab if people in other data centers will sign in through this client: there you can turn on Multi-DC and tick their data centers.

Open this screen →

api-console.zoho.com/client/1000.X8RT****MQ2Z
ops@acme.com
API Console / PopMCP / Client Secret

PopMCP

Server-based Applications

Client DetailsClient SecretSettings
Client Secret
Client ID
1000.X8RT****MQ2Z
Client Secret
4c1f****b07e

The Client ID stays the same in every data center; with Multi-DC on, Zoho can give each data center its own secret.

Paste both values into PopMCP, sign in and pick the organization

In PopMCP, paste the values into Client ID and Client secret. Only if you created the client outside zoho.com, open More options and type that data center into Zoho data center, for example EU, IN or AU. Click Sign in with Zoho and accept the permissions. PopMCP then lists your Zoho Books organizations: pick the one to connect and the workspace it belongs in.

Connect in PopMCP

Open your workspace, choose Zoho Books in the marketplace, and fill in the connect dialog:

FieldWhat to enter
Client IDtextThe "Client ID" on your app's Client Secret tab.
Client secretsecretThe "Client Secret" on the same tab. Stored encrypted and used only on the server.Encrypted with AES-256-GCM on save and never shown again.
Zoho data centertextOnly when your app was made outside zoho.com: the data center its console is in, e.g. EU (zoho.eu), IN, AU, JP, CA, SA or CN. One of: US, EU, IN, AU, JP, CA, SA, UK, AE, SG, CN.
Authorized Redirect URI
https://app.popmcp.com/api/providers/zoho-books/callback

At api-console.zoho.com choose "Server-based Applications", set any homepage URL, and paste this exact URL as the Authorized Redirect URI.

PopMCP verifies the credential against Zoho Books immediately. On success the connection flips to Verified and its MCP tools are provisioned.

Permissions PopMCP requests

These are the scopes sent to Zoho Books at authorization time.

ScopeWhy PopMCP asks for it
ZohoBooks.accountants.READReads journals, the chart of accounts, base currency adjustments, registers and transaction locks.
ZohoBooks.banking.READReads bank accounts, bank transactions, rules and reconciliations.
ZohoBooks.bills.READReads bills, recurring bills and self-billed invoices.
ZohoBooks.categories.READReads item categories.
ZohoBooks.contacts.READReads customers, vendors, contact persons and statements.
ZohoBooks.creditnotes.READReads credit notes and their refunds.
ZohoBooks.customerpayments.READReads payments received and their refunds.
ZohoBooks.debitnotes.READReads vendor credits.
ZohoBooks.deliverychallans.READReads delivery challans.
ZohoBooks.estimates.READReads estimates and quotes.
ZohoBooks.expenses.READReads expenses, recurring expenses and employees.
ZohoBooks.fixedasset.READReads fixed assets.
ZohoBooks.invoices.READReads invoices, recurring and retainer invoices, debit notes and sales receipts.
ZohoBooks.items.READReads items, item variants and item masters.
ZohoBooks.projects.READReads projects, project users, tasks and time entries.
ZohoBooks.purchaseorders.READReads purchase orders.
ZohoBooks.purchasereturns.READReads purchase returns.
ZohoBooks.salesorders.READReads sales orders.
ZohoBooks.settings.READReads organizations, users, taxes, currencies, items, locations, price lists and reporting tags. PopMCP lists your organizations with it when you connect, so the connect fails without it.
ZohoBooks.vendorpayments.READReads payments made and their refunds.
ZohoBooks.accountants.ALLCreates and changes journals, accounts and transaction locks.
ZohoBooks.banking.ALLAdds bank accounts and transactions, categorizes and matches them, and imports statements.
ZohoBooks.bills.ALLCreates, changes and deletes bills and recurring bills.
ZohoBooks.categories.CREATECreates item categories.
ZohoBooks.categories.UPDATEChanges item categories.
ZohoBooks.categories.DELETEDeletes item categories.
ZohoBooks.contacts.ALLCreates and changes contacts, and sends statements and portal invites.
ZohoBooks.creditnotes.ALLCreates credit notes and refunds, applies them to invoices and emails them.
ZohoBooks.customerpayments.ALLRecords, changes and deletes payments received.
ZohoBooks.custommodules.ALLReads and changes custom modules and their records. Zoho documents only an all-access scope for these, so it comes with write actions.
ZohoBooks.debitnotes.ALLCreates vendor credits and applies or refunds them.
ZohoBooks.deliverychallans.CREATECreates delivery challans.
ZohoBooks.deliverychallans.UPDATEChanges delivery challans.
ZohoBooks.deliverychallans.DELETEDeletes delivery challans.
ZohoBooks.estimates.ALLCreates, changes, emails and deletes estimates.
ZohoBooks.expenses.ALLRecords and changes expenses, recurring expenses and receipts.
ZohoBooks.fixedasset.CREATECreates fixed assets.
ZohoBooks.fixedasset.UPDATEChanges fixed assets.
ZohoBooks.fixedasset.DELETEDeletes fixed assets.
ZohoBooks.invoices.ALLCreates, changes, voids and emails invoices, and sends payment reminders.
ZohoBooks.items.CREATECreates items, item variants and item masters.
ZohoBooks.items.UPDATEChanges items, item variants and item masters.
ZohoBooks.items.DELETEDeletes items, item variants and item masters.
ZohoBooks.projects.ALLCreates and changes projects, tasks and time entries.
ZohoBooks.purchaseorders.ALLCreates, changes, emails and deletes purchase orders.
ZohoBooks.purchasereturns.CREATECreates purchase returns.
ZohoBooks.purchasereturns.UPDATEChanges purchase returns.
ZohoBooks.purchasereturns.DELETEDeletes purchase returns.
ZohoBooks.salesorders.ALLCreates, changes, emails and deletes sales orders.
ZohoBooks.settings.ALLChanges organization settings, users, taxes, currencies, locations and reporting tags.
ZohoBooks.vendorpayments.ALLRecords, changes and deletes payments made.

Verify it worked

PopMCP shows Zoho Books as Connected under your organization's name, and zoho_books_get_organization returns that organization with its currency and time zone while zoho_books_list_contacts lists its customers and vendors.

Troubleshooting

"Zoho did not accept the Client ID and Client secret for the United States data center"

Why: The client was created in another data center's console, such as api-console.zoho.eu, while **Zoho data center** was left empty, or one of the values was mistyped.

Fix: Type that data center (EU, IN, AU, JP, CA, SA, UK, AE, SG or CN) into **Zoho data center** under **More options**, or turn on Multi-DC on the client's **Settings** tab. Recopy both values from the **Client Secret** tab.

"Zoho rejected the redirect URI"

Why: The client's **Authorized Redirect URI** does not exactly match PopMCP's callback.

Fix: Open the client in the API Console, correct **Authorized Redirect URI** on the **Client Details** tab to `https://app.popmcp.com/api/providers/zoho-books/callback`, save, and connect again.

"The Zoho sign-in expired before it could be completed"

Why: Zoho's authorization codes last two minutes, and the consent screen was left open too long.

Fix: Click **Sign in with Zoho** again and accept the consent screen without waiting.

"This Zoho account has no Zoho Books organization"

Why: You signed in with a Zoho account that has no Zoho Books organization in that data center.

Fix: Sign in with the Zoho account you use for Zoho Books, or start a Zoho Books organization first.

"Zoho Books refused to list your organizations"

Why: The permissions were not all accepted, or your Zoho Books role cannot see settings.

Fix: Connect again and accept every permission on the consent screen, or ask an admin to connect.

A working connection stops with "Zoho no longer accepts this connection's authorization"

Why: The refresh token was revoked, the password changed, or more than 20 connections were made for the same Zoho user, which makes Zoho retire the oldest.

Fix: Disconnect and reconnect Zoho Books.

A tool answers that it exceeded a call limit

Why: Zoho Books counts calls per organization: 100 a minute, a daily limit that depends on the plan, and a limit on calls at the same time.

Fix: Wait a minute for the per-minute limit, or until tomorrow for the daily one. Filter lists and use larger pages to spend fewer calls.

Reference

On this page