---
url: /zoho-payments-whmcs/configuration.md
description: >-
  Walk through every Zoho Payments for WHMCS gateway field — Account ID, Widget
  API Key, Client ID and Secret, refresh token, data centre, webhook secret,
  test mode, and license key.
---

# Configuration

All of Zoho Payments' settings live on one native WHMCS page: **Setup → Payment Gateways → Zoho
Payments**. There's no separate addon area — you fill in the nine fields on this form, click
**Save Changes**, and the gateway is ready. This page walks through each field in the order you'll
work through them, so you know exactly what to enter and where it comes from.

![Zoho Payments gateway configuration form](/zoho-payments-whmcs/img/zoho-payments-whmcs-configuration-form.png)
*Setup → Payment Gateways → Zoho Payments*

::: info Where things come from
The **Account ID** and **Widget API Key** come from your Zoho Payments account and Developer
Space; the **Client ID**, **Client Secret** and **Refresh Token** come from your OAuth app in the
Zoho Developer Console; the **Webhook Secret** comes from your Zoho webhook settings; and the
**License Key** comes from relyweb.co. The [Zoho OAuth setup
guide](/zoho-payments-whmcs/guides/zoho-oauth) shows how to obtain the Zoho values.
:::

## Account ID

Enter your **Zoho Payments Account ID**. Together with the Widget API Key, this tells the embedded
widget which Zoho Payments account should collect the payment. Copy it from your Zoho Payments
account.

## Widget API Key

The **API key** from your **Zoho Developer Space**, used to load the payment widget on the invoice
page. If the widget doesn't appear at checkout, this key and the Account ID are the first two
values to double-check.

## Client ID

The **OAuth Client ID** from the app you created in the **Zoho Developer Console**. This identifies
your integration to Zoho when it requests access. Save the form after entering this and the Client
Secret so the token helper can use them.

## Client Secret

The **OAuth Client Secret** that pairs with your Client ID. Keep it private — it's the credential
that lets your integration authenticate with Zoho.

## Refresh Token

The long-lived token that keeps the gateway connected to Zoho without you signing in again. You
don't type this by hand — after saving your Client ID and Client Secret, click the **"Click Here
to Generate Token"** helper link in the settings, authorise the app with Zoho, and the refresh
token is returned for you to save here. The gateway uses it to refresh its access automatically.

::: tip Generate it once
You only generate the refresh token once. If you change your OAuth app or revoke access in Zoho,
regenerate it with the same helper link. Full steps are in the [Zoho OAuth setup
guide](/zoho-payments-whmcs/guides/zoho-oauth).
:::

## Data Center

Choose the Zoho data centre your account lives in:

* **IN** — India (`.in`)
* **US** — United States (`.com`)

This must match the data centre where you created your Zoho account and OAuth app. The default is
**IN**. If you authorise against the wrong region, the token and API calls won't line up.

## Webhook Secret

The secret from your **Zoho Payments webhook settings**. Paste it here so the gateway can verify
that Payment Link notifications genuinely came from Zoho. This field also **shows your Webhook
URL** — the address you register in Zoho:

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

Add that URL as a webhook in your Zoho Payments dashboard, subscribe it to the **Payment
completed** and **Payment Link paid** events, then copy the secret Zoho provides back into this
field.

::: warning Secrets must match
The value here must match the secret shown in Zoho's webhook settings exactly, and the URL must be
reachable over valid SSL. A mismatch means notifications are rejected and Payment Link invoices
won't update on their own.
:::

## Test Mode

Controls whether payments run against Zoho's sandbox or live environment.

* **Yes** — sandbox/testing. Use this while you verify checkout end to end.
* **No** — live. Real payments are accepted.

The default is **No**. Always test with **Yes** first, then switch to **No** for launch — see the
[Going live guide](/zoho-payments-whmcs/guides/going-live).

## License Key

Your **Zoho Payments license key** from relyweb.co. This is what enables **payment processing**.
With an active key, payments are accepted and recorded normally; if the key is missing or
inactive, new payments are blocked until you renew or re-enter it. See
[Licensing](/zoho-payments-whmcs/licensing) for the Leased and Lifetime options.

After filling in the fields, click **Save Changes**. For defaults at a glance, see the
[Settings reference](/zoho-payments-whmcs/settings).

## Related pages

* [Settings reference](/zoho-payments-whmcs/settings) — every field with its default
* [Zoho OAuth setup](/zoho-payments-whmcs/guides/zoho-oauth) — create the app and refresh token
* [Widget checkout](/zoho-payments-whmcs/features/widget-checkout) — how customers pay
* [Installation](/zoho-payments-whmcs/installation) — the full setup sequence
* [Licensing](/zoho-payments-whmcs/licensing) — Leased vs Lifetime and your key
