---
url: /zoho-payments-whmcs/requirements.md
description: >-
  What your server and Zoho account need before you install Zoho Payments for
  WHMCS — PHP, WHMCS, the ionCube Loader, SSL, and a Zoho account with Payments
  API access.
---

# Requirements

Before you install Zoho Payments for WHMCS, take a minute to confirm your server and your Zoho
account are ready. Most WHMCS hosts already meet the software requirements, so this is usually a
quick check rather than a setup chore.

## Server and software

| Requirement | Details |
| --- | --- |
| **PHP** | 8.2 or newer (runs on 8.2, 8.3, 8.4 and 8.5) |
| **WHMCS** | 8.13 or newer, or 9.x |
| **ionCube Loader** | 13.0.2 or newer (see below) |
| **PHP extensions** | `curl`, `openssl`, `json`, and `mbstring` enabled |
| **SSL certificate** | Required for the webhook endpoint |
| **Zoho account** | A **Zoho account** with **Payments API** access |
| **License** | An active Zoho Payments license |

The four PHP extensions are all standard and almost always enabled on a working WHMCS server:
`curl` and `openssl` handle the secure calls to Zoho, `json` parses the responses, and `mbstring`
keeps text handling correct. If any is missing, your host can enable it from your control panel.

## The ionCube Loader

Zoho Payments for WHMCS ships as an ionCube-encoded build, so your server needs the **ionCube
Loader** — a small, standard PHP extension that runs protected commercial software. It is the
*same* loader WHMCS itself requires, so a server already running WHMCS almost always has it and
you rarely need to install anything new.

You need **ionCube Loader 13.0.2 or newer**. The exact version tracks your PHP version — WHMCS on
PHP 8.2 uses 13.0.2, PHP 8.3 uses 14.4.0, and newer 15.x loaders work too. One encoded build runs
on every supported PHP and loader version, so there is nothing to match up.

::: danger Zoho Payments will not run without ionCube
If the ionCube Loader is missing or older than 13.0.2, the encoded gateway files won't run —
activation fails and no payments are processed. Enable **ionCube Loader 13.0.2 or newer** for your
PHP version (your host can do this in seconds) and try again.
:::

## Why a Zoho account with Payments API access

The gateway talks to Zoho on your behalf: it opens the embedded widget, verifies each payment
against the Zoho API, and refreshes its access automatically. To do that it needs a **Zoho
account** that has **Payments API** access, plus an OAuth app (Client ID and Client Secret) and a
refresh token you generate once during setup. You configure all of this while walking through the
[Zoho OAuth setup guide](/zoho-payments-whmcs/guides/zoho-oauth).

The **SSL certificate** matters for the same reason: Zoho delivers Payment Link notifications to a
webhook on your domain, and that endpoint must be reachable over HTTPS for those updates to arrive
and be verified.

## Why a license

Your license is what enables **payment processing**. With an active license the gateway accepts
and records payments normally; without one, new payments are turned off until you renew or
re-enter the key. See [Licensing](/zoho-payments-whmcs/licensing) for how the Leased and Lifetime
options differ and where the key lives.

## How to check

* **PHP and extensions:** in WHMCS, open **Utilities → System → PHP Info** and confirm the PHP
  version and that `curl`, `openssl`, `json` and `mbstring` are loaded.
* **ionCube:** the same PHP Info page shows the ionCube Loader and its version.
* **SSL:** load your WHMCS URL over `https://` and confirm the certificate is valid.
* **Zoho account:** sign in to your Zoho account and confirm you can reach the developer console
  for your data centre (India or US).

## Related pages

* [Installation](/zoho-payments-whmcs/installation) — upload, activate, and configure
* [Zoho OAuth setup](/zoho-payments-whmcs/guides/zoho-oauth) — app, refresh token, and webhook
* [Configuration](/zoho-payments-whmcs/configuration) — walk through every gateway field
* [Licensing](/zoho-payments-whmcs/licensing) — Leased vs Lifetime and your key
