# Integrating SailPoint with Zoho Invoice

Zoho Invoice is a cloud-based invoicing and billing platform developed by Zoho that helps freelancers and small businesses manage their billing, payments, and client interactions in a streamlined and automated way. This document provides instructions to configure a new direct connection to a Zoho Invoice source. For a reference to the terminology specific to SailPoint products, refer to [Source and Connector Definitions](<https://documentation.sailpoint.com/saas/help/sources/index.html#source-and-connector-definitions>).

> [!NOTE]
>
> To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes](<https://community.sailpoint.com/release-notes/saas>) page.

## Supported Features

The Zoho Invoice connector supports the following:

### Account Management

- Aggregate Accounts (Users)

### Entitlement Management

- Aggregate Groups (Roles)

> [!IMPORTANT]
>
> Quick Compliance connectors have the following manual aggregation limits within a 24-hour period:
>
> - **Organization Admins**: Limited to 3 manual account or entitlement aggregations per day per source. This limit is cumulative across all admins in the organization.
> - **Regular Users**: Limited to 1 manual account or entitlement aggregation per day per source.
>
> These limits ensure that individual compliance statuses are kept up to date while maintaining continuous compliance monitoring. If you need to run additional aggregations beyond these limits, contact SailPoint Support.

## Prerequisites

Ensure the following prerequisites are met before proceeding with the configuration:

#### Register an Application in Zoho

Zoho APIs require OAuth-based authentication. Before you access the Zoho Invoice APIs, you must register an application in the Zoho Developer Console. To register an application:

1. Log in to the Zoho API Console.
2. Create a new application.
3. Select Server-based Application.
4. Provide the following details:

   - Client Name
   - Homepage URL
   - Redirect URI
5. After registration, the system generates the following credentials:

   - **Client ID**
   - **Client Secret**
6. These credentials are required to authenticate API requests.

#### Obtain Authorization Code

- To authorize API access, generate an authorization code using the OAuth authorization endpoint.
- Authorization URL:

  - `https://accounts.zoho.com/oauth/v2/auth`
- Example authorization request:

```text
https://accounts.zoho.com/oauth/v2/auth
?scope=ZohoInvoice.settings.READ
&client_id=CLIENT_ID
&response_type=code
&redirect_uri=REDIRECT_URI
&access_type=offline
```

\- After the user approves access, Zoho redirects to the configured redirect URI with an authorization code. For example, `http://localhost:3000/callback?code=AUTHORIZATION_CODE`.

#### Generate Access and Refresh Tokens

- You must exchange the authorization code for access tokens.
- Token endpoint:

```text
POST https://accounts.zoho.com/oauth/v2/token
```

\- Required parameters: - `grant_type=authorization_code` - `client_id` - `client_secret` - `redirect_uri` - `code` - Example request:

```text
POST /oauth/v2/token
```

\- Response includes: - `access_token` - `refresh_token` - `expires_in` - `api_domain` - The refresh token is used to generate new access tokens when the existing token expires. For more information about registering an OAuth App, refer [Zoho Invoice API Documentation](<https://www.zoho.com/invoice/api/v3/oauth/#overview>).

## Required Permissions

OAuth Scope Requirements

- To access user and role information through the Zoho Invoice API, the OAuth token must include the required scope. Recommended scope for integrations:

  - `ZohoInvoice.settings.READ`
- This scope allows the integration to retrieve:

  - Users
  - Roles

For more information about OAuth scopes, refer [Users API Documentation](<https://www.zoho.com/invoice/api/v3/users/#list-users>).

> [!NOTE]
>
> The linked document is not maintained by SailPoint and is subject to change without notice.
