API Data Provider - Online Help

Connecting to ZohoInvoice

To authenticate to ZohoInvoice, and connect to your own data or to allow other users to connect to their data, you can use the OAuth standard.

Using OAuth Authentication

First, you will need to register an OAuth application with ZohoInvoice. To do so, go to Zoho Developer Console, add a new Client (Server-based application) and set a valid OAuth redirect URL. Your Oauth application will be assigned a client id and a client secret. Additionally, you will need to set the relevant Domain (com, eu, in, com.au, com.cn, jp, ca, sa), defaults to com.

After setting the following connection properties, you are ready to connect:

  • AuthScheme: Set this to OAuth.
  • InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to manage the process to obtain the OAuthAccessToken.
  • OAuthClientId: Set this to the client_id that is specified in you app settings.
  • OAuthClientSecret: Set this to the client_secret that is specified in you app settings.
  • CallbackURL: Set this to the Redirect URI that is specified in your app settings
  • Domain: Set this to the domain for your ZohoInvoice account (e.g., com, eu, in, com.au). Defaults to com.
  • Organization: Optionally set this to the Id of the Zoho Invoice organization to use. To obtain a list of available organization Ids, query the Organizations table.

Example Connection String

Profile=C:\profiles\ZohoInvoice.apip;ProfileSettings='Domain=your_domain;Organization=your_organization_id';AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;CallbackUrl=your_callback_url;

Available Tables

The ZohoInvoice API Profile provides access to the following tables:

  • Organizations: Returns the list of organizations associated with the authenticated user.
  • Contacts: Returns the list of all contacts in the organization.
  • ContactAddresses: Returns the addresses of a contact, including billing, shipping, and additional addresses (requires ContactId).
  • ContactComments: Returns the comments associated with a contact (requires ContactId).
  • ContactDetails: Returns the full details of a specific contact (requires ContactId).
  • ContactPersons: Returns the contact persons associated with a contact (requires ContactId).
  • ContactRefunds: Returns the refunds associated with a contact (requires ContactId).
  • Invoices: Returns the list of all invoices in the organization.
  • InvoiceCredits: Returns the credits applied to a specific invoice (requires InvoiceId).
  • InvoiceDetails: Returns the full details of a specific invoice (requires InvoiceId).
  • InvoiceLineItems: Returns the line items of a specific invoice (requires InvoiceId).
  • InvoicePayments: Returns the payments applied to a specific invoice (requires InvoiceId).
  • Items: Returns the list of all products and services (items) in the organization.
  • Expenses: Returns the list of all expenses in the organization.
  • ExpenseDetails: Returns the full details of a specific expense (requires ExpenseId).
  • ExpenseLineItems: Returns the line items of a specific expense (requires ExpenseId).
  • Estimates: Returns the list of all estimates in the organization.
  • EstimateComments: Returns the comments associated with a specific estimate (requires EstimateId).
  • EstimateDetails: Returns the full details of a specific estimate (requires EstimateId).
  • EstimateLineItems: Returns the line items of a specific estimate (requires EstimateId).
  • Payments: Returns the list of all payments received in the organization.
  • PaymentDetails: Returns the full details of a specific payment (requires PaymentId).
  • Creditnotes: Returns the list of all credit notes in the organization.
  • CreditnoteDetails: Returns the full details of a specific credit note (requires CreditnoteId).
  • CreditnoteInvoices: Returns the invoices associated with a specific credit note (requires CreditnoteId).
  • CreditnoteLineItems: Returns the line items of a specific credit note (requires CreditnoteId).
  • CreditnoteRefunds: Returns the refunds associated with a specific credit note (requires CreditnoteId).
  • CreditnoteRefundDetails: Returns the details of a specific credit note refund (requires CreditnoteRefundId).
  • CreditnotesRefunds: Returns the list of all credit note refunds in the organization.
  • Refunds: Returns the list of all refunds in the organization.
  • Projects: Returns the list of all projects in the organization.
  • ProjectDetails: Returns the full details of a specific project (requires ProjectId).
  • ProjectInvoices: Returns the invoices associated with a specific project (requires ProjectId).
  • ProjectTasks: Returns the tasks associated with a specific project (requires ProjectId).
  • ProjectUsers: Returns the users assigned to a specific project (requires ProjectId).
  • RecurringExpenses: Returns the list of all recurring expenses in the organization.
  • RecurringExpenseDetails: Returns the full details of a specific recurring expense (requires RecurringExpenseId).
  • RecurringInvoices: Returns the list of all recurring invoices in the organization.
  • RecurringInvoiceDetails: Returns the full details of a specific recurring invoice (requires RecurringInvoiceId).
  • RecurringInvoiceLineItems: Returns the line items of a specific recurring invoice (requires RecurringInvoiceId).
  • RetainerInvoices: Returns the list of all retainer invoices in the organization.
  • RetainerInvoiceDetails: Returns the full details of a specific retainer invoice (requires RetainerInvoiceId).
  • RetainerInvoicePayments: Returns the payments associated with a specific retainer invoice (requires RetainerInvoiceId).
  • TimeEntries: Returns the list of all time entries in the organization.
  • PriceLists: Returns the list of all price lists in the organization.
  • Users: Returns the list of all users in the organization.
  • CurrentUser: Returns the details of the currently authenticated user.
  • Employees: Returns the list of all employees in the organization.

Usage Examples

Organizations:

SELECT * FROM Organizations

Contacts:

SELECT * FROM Contacts
SELECT * FROM Contacts WHERE ContactName = 'John Smith'

ContactAddresses:

SELECT * FROM ContactAddresses WHERE ContactId = '903000000026049'

ContactComments:

SELECT * FROM ContactComments WHERE ContactId = '903000000026049'

ContactDetails:

SELECT * FROM ContactDetails WHERE ContactId = '903000000026049'

ContactPersons:

SELECT * FROM ContactPersons WHERE ContactId = '903000000026049'

ContactRefunds:

SELECT * FROM ContactRefunds WHERE ContactId = '903000000026049'

Invoices:

SELECT * FROM Invoices
SELECT * FROM Invoices WHERE Status = 'sent'

InvoiceCredits:

SELECT * FROM InvoiceCredits WHERE InvoiceId = '903000000000335'

InvoiceDetails:

SELECT * FROM InvoiceDetails WHERE InvoiceId = '903000000000335'

InvoiceLineItems:

SELECT * FROM InvoiceLineItems WHERE InvoiceId = '903000000000335'

InvoicePayments:

SELECT * FROM InvoicePayments WHERE InvoiceId = '903000000000335'

Items:

SELECT * FROM Items

Expenses:

SELECT * FROM Expenses

ExpenseDetails:

SELECT * FROM ExpenseDetails WHERE ExpenseId = '903000000049001'

ExpenseLineItems:

SELECT * FROM ExpenseLineItems WHERE ExpenseId = '903000000049001'

Estimates:

SELECT * FROM Estimates
SELECT * FROM Estimates WHERE Status = 'draft'

EstimateComments:

SELECT * FROM EstimateComments WHERE EstimateId = '903000000000455'

EstimateDetails:

SELECT * FROM EstimateDetails WHERE EstimateId = '903000000000455'

EstimateLineItems:

SELECT * FROM EstimateLineItems WHERE EstimateId = '903000000000455'

Payments:

SELECT * FROM Payments

PaymentDetails:

SELECT * FROM PaymentDetails WHERE PaymentId = '903000000000567'

Creditnotes:

SELECT * FROM Creditnotes

CreditnoteDetails:

SELECT * FROM CreditnoteDetails WHERE CreditnoteId = '903000000000678'

CreditnoteInvoices:

SELECT * FROM CreditnoteInvoices WHERE CreditnoteId = '903000000000678'

CreditnoteLineItems:

SELECT * FROM CreditnoteLineItems WHERE CreditnoteId = '903000000000678'

CreditnoteRefunds:

SELECT * FROM CreditnoteRefunds WHERE CreditnoteId = '903000000000678'

CreditnoteRefundDetails:

SELECT * FROM CreditnoteRefundDetails WHERE CreditnoteRefundId = '903000000000789'

CreditnotesRefunds:

SELECT * FROM CreditnotesRefunds

Refunds:

SELECT * FROM Refunds

Projects:

SELECT * FROM Projects

ProjectDetails:

SELECT * FROM ProjectDetails WHERE ProjectId = '903000000074001'

ProjectInvoices:

SELECT * FROM ProjectInvoices WHERE ProjectId = '903000000074001'

ProjectTasks:

SELECT * FROM ProjectTasks WHERE ProjectId = '903000000074001'

ProjectUsers:

SELECT * FROM ProjectUsers WHERE ProjectId = '903000000074001'

RecurringExpenses:

SELECT * FROM RecurringExpenses

RecurringExpenseDetails:

SELECT * FROM RecurringExpenseDetails WHERE RecurringExpenseId = '903000000082001'

RecurringInvoices:

SELECT * FROM RecurringInvoices

RecurringInvoiceDetails:

SELECT * FROM RecurringInvoiceDetails WHERE RecurringInvoiceId = '903000000091001'

RecurringInvoiceLineItems:

SELECT * FROM RecurringInvoiceLineItems WHERE RecurringInvoiceId = '903000000091001'

RetainerInvoices:

SELECT * FROM RetainerInvoices

RetainerInvoiceDetails:

SELECT * FROM RetainerInvoiceDetails WHERE RetainerInvoiceId = '903000000100001'

RetainerInvoicePayments:

SELECT * FROM RetainerInvoicePayments WHERE RetainerInvoiceId = '903000000100001'

TimeEntries:

SELECT * FROM TimeEntries

PriceLists:

SELECT * FROM PriceLists

Users:

SELECT * FROM Users

CurrentUser:

SELECT * FROM CurrentUser

Employees:

SELECT * FROM Employees

Connection Properties

The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider.


Property Description
AuthScheme The scheme used for authentication. Accepted entries are None or OAuth.
Allowed values are: BASIC, NONE, NTLM, OAUTH, APIKEY, OAUTH_CLIENT, OAUTH_PASSWORD
CallbackURL Identifies the URL users return to after authenticating to API via OAuth (Custom OAuth applications only).
Domain Determines the domain where authentication calls will be sent to.
Allowed values are: MIXPANEL, EU.MIXPANEL, IN.MIXPANEL, .COM, .EU, .COM.AU, .IN, COM, EU, COM.AU, IN, JP, COM.CN, CA, SA, .COM.CN, .JP, .CA, .SA
InitiateOAuth Specifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working.
Allowed values are: OFF, REFRESH, GETANDREFRESH
OAuthAccessToken Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange.
OAuthClientId Specifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication.
OAuthClientSecret Specifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. (Custom OAuth applications only.).
OAuthExpiresIn Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working.
OAuthRefreshToken Specifies the OAuth refresh token used to request a new access token after the original has expired.
OAuthSettingsLocation Specifies the location of the settings file where OAuth values are saved.
OAuthTokenTimestamp Displays a Unix epoch timestamp in milliseconds that shows how long ago the current access token was created.
OAuthVerifier Specifies a verifier code returned from the OAuthAuthorizationURL . Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set.
Organization The Id of the Zoho Invoice organization to use.
Scope Scope(s) to use when authenticating, that control access to specific information.

Copyright (c) 2026 CData Software, Inc. - All rights reserved.
Build 26.0.9770.0