Skip to main content
Zoho Books

Overview

Supported resources

Connect setup

Zoho Books uses OAuth 2.0. You need an app registered in the Zoho API Console for the region your end users live in — Zoho serves each datacenter from a distinct OAuth host.
1

Pick the right region

Zoho operates independent datacenters per region (.com, .eu, .in, .com.au, .ca, .jp). The end user’s organization lives in exactly one — register your app in that region’s Zoho API Console and they will all log in there.
2

Create a Zoho server-based application

In the API Console choose Server-based Applications. Copy the Client ID and Client Secret.
3

Add the redirect URL

Add the following Authorized Redirect URI:
4

Configure required scopes

Enable the following scopes on your app:
  • ZohoBooks.contacts.ALL
  • ZohoBooks.invoices.ALL
  • ZohoBooks.bills.ALL
  • ZohoBooks.purchaseorders.ALL
  • ZohoBooks.debitnotes.ALL
  • ZohoBooks.expenses.ALL
  • ZohoBooks.accountants.ALL
  • ZohoBooks.settings.ALL
  • ZohoBooks.banking.ALL
  • ZohoBooks.projects.ALL
5

Connect via the widget

When the end user opens the Connect widget they pick their datacenter region, then enter your Client ID and Client Secret. RouteMCP routes every subsequent API call to the matching zohoapis.<region> host automatically — no per-request config needed.

Usage

Notes

  • Pass type: "ACCOUNTS_PAYABLE" on invoice create to write a bill, and the same pattern on credit_note / vendor_credit. For vendor contacts, set is_supplier: true.
  • address and phone_number ids are discoverable inline on contact.addresses[].id and contact.phone_numbers[].id.
  • The datacenter field set during connection determines all regional API and auth endpoints automatically — no extra config needed per request.
  • The currency for invoice / bill / payment / credit note / etc. is inherited from the linked contact’s currency. Send a currency value only when overriding the customer/vendor default explicitly.