---
url: /zoho-payments-whmcs/installation.md
description: >-
  Install Zoho Payments for WHMCS step by step — upload the module, activate the
  gateway, enter your license and credentials, generate a refresh token, set up
  the webhook, and test in test mode.
---

# Installation

Installing Zoho Payments for WHMCS is a short sequence: copy the module into place, activate it on
the native WHMCS gateways page, enter your license and Zoho credentials, connect to Zoho with a
refresh token, wire up the webhook, and confirm everything works in test mode before you go live.
Follow the steps in order and you'll have a working gateway in a few minutes.

Before you start, make sure your server meets the [Requirements](/zoho-payments-whmcs/requirements)
and that you have your Zoho developer app ready — see the
[Zoho OAuth setup guide](/zoho-payments-whmcs/guides/zoho-oauth) for how to create it.

## Step 1 — Upload the module

Copy the module's **`modules/`** directory into the root of your WHMCS installation, keeping the
folder structure intact. The gateway files land under `modules/gateways/` alongside your other
payment gateways. Nothing overwrites your existing gateways — the files are specific to Zoho
Payments.

::: tip Uploading over an existing install?
If you're updating rather than installing fresh, overwrite the same files. See
[Updating](/zoho-payments-whmcs/updating) for the full manual-update flow.
:::

## Step 2 — Activate the gateway

In WHMCS, go to **Setup → Payment Gateways**. On the **All Payment Gateways** tab, find **Zoho
Payments** and click it to activate. WHMCS moves it to your **Manage Existing Gateways** tab and
opens its configuration form.

![Activating Zoho Payments from the gateways list](/zoho-payments-whmcs/img/zoho-payments-whmcs-installation-activate.png)
*Setup → Payment Gateways → All Payment Gateways → Zoho Payments*

## Step 3 — Enter your license and credentials

On the Zoho Payments configuration form, fill in the fields and click **Save Changes**:

* **License Key** — your Zoho Payments license key from relyweb.co. This enables payment
  processing; without an active key, new payments stay disabled.
* **Account ID** and **Widget API Key** — from your Zoho Payments account and the Zoho Developer
  Space.
* **Client ID** and **Client Secret** — from the OAuth app you created in the Zoho Developer
  Console.
* **Data Center** — choose **IN** for the India (.in) data centre or **US** for the United States
  (.com) data centre, matching where your Zoho account lives.

Each field is explained one by one on the [Configuration](/zoho-payments-whmcs/configuration) page.

## Step 4 — Generate the refresh token

Once your Client ID and Client Secret are saved, click the **"Click Here to Generate Token"**
helper link in the gateway settings. You'll be sent to Zoho to authorise the app; approve it, and
the resulting **refresh token** comes back for you to save in the **Refresh Token** field. This
token lets the gateway keep its access to Zoho fresh automatically — you only generate it once.

The full walkthrough, including creating the OAuth app, is in the
[Zoho OAuth setup guide](/zoho-payments-whmcs/guides/zoho-oauth).

## Step 5 — Set up the webhook

Payment Links notify WHMCS asynchronously through a signed webhook. In your **Zoho Payments
dashboard**, add a webhook pointing at your site:

```
https://yourdomain.com/modules/gateways/zohopayments/webhooks/paylink_webhook.php
```

Subscribe it to the **Payment completed** and **Payment Link paid** events, then copy the webhook
**secret** Zoho gives you into the gateway's **Webhook Secret** field and save. That secret is
what lets the gateway confirm each notification genuinely came from Zoho.

::: warning HTTPS required
The webhook URL must be reachable over a valid SSL certificate. If your site isn't served over
HTTPS, notifications won't arrive.
:::

## Step 6 — Test in test mode first

Set **Test Mode** to **Yes** and save. Run a test invoice through checkout end to end: click Pay
Now, complete a payment in the embedded widget, and confirm the invoice is marked **Paid**. When
you're satisfied, switch **Test Mode** back to **No** to accept real payments. The
[Going live guide](/zoho-payments-whmcs/guides/going-live) has a final pre-launch checklist.

## Related pages

* [Requirements](/zoho-payments-whmcs/requirements) — confirm your server and Zoho account
* [Configuration](/zoho-payments-whmcs/configuration) — every gateway field explained
* [Settings reference](/zoho-payments-whmcs/settings) — defaults at a glance
* [Zoho OAuth setup](/zoho-payments-whmcs/guides/zoho-oauth) — app, refresh token, webhook
* [Widget checkout](/zoho-payments-whmcs/features/widget-checkout) — how customers pay
