---
url: /zoho-payments-whmcs/guides/going-live.md
description: >-
  Move Zoho Payments for WHMCS from test mode to live — verify your setup, run a
  real test payment, then switch Test Mode off with confidence.
---

# Going live

You've connected WHMCS to Zoho and run payments in test mode. This guide is the final check before
you accept real money: confirm everything is in place, prove the full flow works, then flip **Test
Mode** to live.

## First, test in test mode

Before going anywhere near live, keep **Test Mode** set to **Yes** and run a complete payment.

1. Open an invoice in the client area and click **Pay Now**.
2. Complete the payment inside the [Zoho widget](/zoho-payments-whmcs/features/widget-checkout).
3. Confirm the invoice reaches **Paid**, and that the transaction details and fee are recorded.
4. If you use [Payment Links](/zoho-payments-whmcs/features/webhooks-and-payment-links), test one
   and confirm the webhook marks the invoice Paid too.

::: tip Watch the Gateway Log
Keep **Utilities → Logs → Gateway Log** open while you test. It's the fastest way to see whether
verification and webhooks are succeeding.
:::

## The go-live checklist

Tick each of these before switching to live:

* \[ ] **License Key** entered and active — payments are blocked while it's inactive
  (see [Licensing](/zoho-payments-whmcs/licensing))
* \[ ] **Data Center** set to match your Zoho account (`IN` or `US`)
* \[ ] **Client ID**, **Client Secret**, and a valid **Refresh Token** in place
* \[ ] **Account ID** and **Widget API Key** entered — the widget loads correctly
* \[ ] **Webhook** added in Zoho for **Payment completed** and **Payment Link paid**, with the
  **Webhook Secret** matching the gateway config
* \[ ] Valid **SSL certificate** on your domain so the webhook endpoint is reachable
* \[ ] A **test-mode payment** completed and reached **Paid**, fee recorded

::: warning Use live credentials for live
If your Zoho account uses different credentials for test and live, make sure the live **Client
ID / Secret**, refresh token, and **Widget API Key** are the ones in the config before you switch.
Re-generate the refresh token if you change the OAuth app.
:::

## Switch to live

When every box is ticked, set **Test Mode** to **No** under **Setup → Payment Gateways → Zoho
Payments** and **Save Changes**.

![Test Mode toggle in the gateway config](/zoho-payments-whmcs/img/zoho-payments-going-live-test-mode.png)
*Setup → Payment Gateways → Zoho Payments*

## After you go live

Make a small **real payment** yourself and confirm the invoice is marked Paid with the correct fee.
Refund it in Zoho afterwards if you like. Keep an eye on the **Gateway Log** for the first few live
payments so you catch any issue early.

::: tip If something looks off
Start with the [troubleshooting page](/zoho-payments-whmcs/troubleshooting) — it maps the common
symptoms (widget not loading, token errors, webhook not processing) to their fixes.
:::

## Related pages

* [Zoho OAuth setup](/zoho-payments-whmcs/guides/zoho-oauth)
* [Widget checkout](/zoho-payments-whmcs/features/widget-checkout)
* [Webhooks and Payment Links](/zoho-payments-whmcs/features/webhooks-and-payment-links)
* [Configuration](/zoho-payments-whmcs/configuration)
* [Licensing](/zoho-payments-whmcs/licensing)
* [Troubleshooting](/zoho-payments-whmcs/troubleshooting)
