Skip to main content

Zoho Billing

Zoho Billing is a cloud-based subscription and billing management platform for recurring revenue businesses, handling customers, subscriptions, plans, invoices, payments, and other billing operations. This connector uses the Zoho Billing REST API, which is authenticated with OAuth 2.0 and scoped to a specific organization, to move billing data in and out of Nexla.

Zoho Billing icon

Power end-to-end data operations for your Zoho Billing API with Nexla. Our bi-directional Zoho Billing connector is purpose-built for Zoho Billing, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Zoho Billing or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Zoho Billing workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Zoho Billing credential, you need three values: the region-specific API base URL, an OAuth 2.0 access token, and your organization ID. Zoho Billing authenticates every request with an OAuth token supplied in the Authorization header, using the format Zoho-oauthtoken <token>, and requires the organization_id as a query parameter on every call.

To obtain these values, follow these steps:

  1. Sign in to the Zoho Developer Console using your Zoho account, and register a new Self Client or Server-based Application to obtain a Client ID and Client Secret.

  2. Using the registered client, complete the OAuth 2.0 authorization flow to generate an access token. Request scopes that cover the Zoho Billing resources you plan to read or write (for example, the subscription, invoice, and customer scopes). The authorization step returns a short-lived code, which you exchange for an access token by making a POST request to the token endpoint https://accounts.zoho.com/oauth/v2/token.

  3. Copy the resulting access token. Zoho Billing access tokens expire one hour after they are issued, so you will use the refresh token from the same OAuth flow to obtain a new access token when the current one expires.

  4. Determine the correct base URL for your data center. Zoho hosts each account in a specific region, and the API host differs by region, for example https://www.zohoapis.com/billing/v1 (US), https://www.zohoapis.eu/billing/v1 (EU), https://www.zohoapis.in/billing/v1 (India), or https://www.zohoapis.com.au/billing/v1 (Australia). Use the host that matches the region where your Zoho Billing organization was created.

  5. Obtain your organization ID. It is returned in the JSON response of the GET /organizations API call, and it is also shown on the Manage Organizations page in the Zoho Billing admin console. Sign in to the admin console, click the dropdown labeled with your organization's name, and select Manage Organizations to view the ID.

For complete details about the authorization flow, token scopes, and token refresh, see the Zoho Billing OAuth documentation and the Zoho Billing API introduction.

Authenticate

Credentials required

FieldRequiredSecretDescription
Base URLYesNoRegion-specific Zoho Billing API base URL, e.g. https://www.zohoapis.com/billing/v1 (US), .eu, .in, .com.au, etc.
OAuth Access TokenYesNoZoho OAuth2 access token. Sent as the Authorization header value 'Zoho-oauthtoken <token>'.
Organization IDYesNoZoho Billing organization_id, required on every request as a query parameter.

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your region-specific API host in the Base URL field, for example https://www.zohoapis.com/billing/v1. This value must match the data center where your Zoho Billing organization is hosted.

  4. Enter your Zoho OAuth 2.0 access token in the OAuth Access Token field. Nexla sends this value in the Authorization header as Zoho-oauthtoken <token> on every request.

    Zoho Billing access tokens expire one hour after they are issued. Generate a fresh access token using your OAuth refresh token, and update this credential when the token expires so that connections continue to authenticate successfully.

  5. Enter your Organization ID in the corresponding field. Nexla appends this value as the organization_id query parameter on every API request.

  6. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Zoho Billing connector tile, then select the credential that will be used to connect to Zoho Billing, and click Next; or, create a new Zoho Billing credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Zoho Billing endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

[Rest API] List Invoices

Retrieve invoices. This endpoint template fetches the invoices in your Zoho Billing organization for reporting, analytics, or downstream integration.

  • This endpoint reads from the /invoices path and returns the records under the invoices array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the invoice object and its fields, see the Zoho Billing Invoices API documentation.

[Rest API] List Subscriptions

Retrieve subscriptions. This endpoint template fetches the subscriptions in your Zoho Billing organization, including their status, plan, and billing details.

  • This endpoint reads from the /subscriptions path and returns the records under the subscriptions array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the subscription object and its fields, see the Zoho Billing Subscriptions API documentation.

[Rest API] List Transactions

Retrieve transactions. This endpoint template fetches the billing transactions recorded in your Zoho Billing organization.

  • This endpoint reads from the /transactions path and returns the records under the transactions array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the transaction object and its fields, see the Zoho Billing Transactions API documentation.

[Rest API] List Customers

Retrieve customers. This endpoint template fetches the customer records in your Zoho Billing organization, including contact and billing information.

  • This endpoint reads from the /customers path and returns the records under the customers array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the customer object and its fields, see the Zoho Billing Customers API documentation.

[Rest API] List Products

Retrieve products. This endpoint template fetches the products defined in your Zoho Billing organization.

  • This endpoint reads from the /products path and returns the records under the products array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the product object and its fields, see the Zoho Billing Products API documentation.

[Rest API] List Plans

Retrieve plans. This endpoint template fetches the pricing plans configured in your Zoho Billing organization.

  • This endpoint reads from the /plans path and returns the records under the plans array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the plan object and its fields, see the Zoho Billing Plans API documentation.

[Rest API] List Addons

Retrieve addons. This endpoint template fetches the add-ons configured in your Zoho Billing organization.

  • This endpoint reads from the /addons path and returns the records under the addons array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the addon object and its fields, see the Zoho Billing Addons API documentation.

[Rest API] List Coupons

Retrieve coupons. This endpoint template fetches the coupons defined in your Zoho Billing organization.

  • This endpoint reads from the /coupons path and returns the records under the coupons array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the coupon object and its fields, see the Zoho Billing Coupons API documentation.

[Rest API] List Quotes

Retrieve quotes (estimates). This endpoint template fetches the estimates in your Zoho Billing organization.

  • This endpoint reads from the /estimates path and returns the records under the estimates array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the estimate object and its fields, see the Zoho Billing Quotes API documentation.

[Rest API] List Expenses

Retrieve expenses. This endpoint template fetches the expenses recorded in your Zoho Billing organization.

  • This endpoint reads from the /expenses path and returns the records under the expenses array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the expense object and its fields, see the Zoho Billing Expenses API documentation.

[Rest API] List Taxes

Retrieve taxes. This endpoint template fetches the taxes configured in your Zoho Billing organization settings.

  • This endpoint reads from the /settings/taxes path and returns the records under the taxes array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about tax settings and their fields, see the Zoho Billing Settings API documentation.

[Rest API] List Recurring Expenses

Retrieve recurring expenses. This endpoint template fetches the recurring expenses configured in your Zoho Billing organization.

  • This endpoint reads from the /recurringexpenses path and returns the records under the recurring_expenses array in the JSON response. Nexla paginates through the results automatically and stops when no further records are returned.

For details about the recurring expense object and its fields, see the Zoho Billing Recurring Expenses API documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Zoho Billing data sources can also be manually configured to ingest data from any valid Zoho Billing API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Zoho Billing data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Zoho Billing destination, and select the Send to Destination option from the menu. Select the Zoho Billing connector from the list of available destination connectors, then select the credential that will be used to connect to Zoho Billing, and click Next; or, create a new Zoho Billing credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Zoho Billing endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

[Rest API] Create Customer

Create a new customer in Zoho Billing. Use this template to add customer records to your Zoho Billing organization from records in a Nexset.

  • This endpoint sends each record as a JSON request body via a POST to the /customers path. Each Nexset record is sent as a separate API request, and the record structure must match the fields expected by the Zoho Billing customer API.

For details about the required and optional fields when creating a customer, see the Zoho Billing Customers API documentation.

[Rest API] Create Subscription

Create a new subscription in Zoho Billing. Use this template to add subscriptions to your Zoho Billing organization from records in a Nexset.

  • This endpoint sends each record as a JSON request body via a POST to the /subscriptions path. Each Nexset record is sent as a separate API request, and the record structure must match the fields expected by the Zoho Billing subscription API.

For details about the required and optional fields when creating a subscription, see the Zoho Billing Subscriptions API documentation.

[Rest API] Create Invoice

Create a new invoice in Zoho Billing. Use this template to generate invoices in your Zoho Billing organization from records in a Nexset.

  • This endpoint sends each record as a JSON request body via a POST to the /invoices path. Each Nexset record is sent as a separate API request, and the record structure must match the fields expected by the Zoho Billing invoice API.

For details about the required and optional fields when creating an invoice, see the Zoho Billing Invoices API documentation.

[Rest API] Update Customer

Update an existing customer in Zoho Billing. Use this template to modify existing customer records in your Zoho Billing organization from records in a Nexset.

  • This endpoint sends each record as a JSON request body via a PUT to the /customers/{customer_id} path. Each Nexset record is sent as a separate API request, and the record structure must match the fields expected by the Zoho Billing customer API.
  • Set the Customer ID parameter to the Zoho Billing customer_id of the customer to update. This value identifies the specific customer record that the update is applied to.

For details about the required and optional fields when updating a customer, see the Zoho Billing Customers API documentation.

[Rest API] Create Payment

Record a new payment in Zoho Billing. Use this template to record payments in your Zoho Billing organization from records in a Nexset.

  • This endpoint sends each record as a JSON request body via a POST to the /payments path. Each Nexset record is sent as a separate API request, and the record structure must match the fields expected by the Zoho Billing payment API.

For details about the required and optional fields when recording a payment, see the Zoho Billing Payments API documentation.

Manual configuration

Zoho Billing destinations can also be manually configured to send data to any valid Zoho Billing API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Zoho Billing APIs expect JSON in the request body for create and update operations. For update operations, include the ID of the object to be updated in the endpoint URL path.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Zoho Billing endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Zoho Billing endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.