Appearance
Zoho OAuth setup
This guide connects WHMCS to your Zoho Payments account. You'll create an OAuth application in the Zoho Developer Console, generate a refresh token, add your Account ID and Widget API Key, and set up the signed webhook. Work top to bottom — each step feeds the next.
Match your data centre first
Everything must be done in the same Zoho data centre as your account: India uses api-console.zoho.in, the US uses api-console.zoho.com. Pick the matching Data Center value (IN or US) in the gateway config and use the matching console throughout.
1. Create a server-based OAuth app
What you'll see
The Zoho Developer Console for your data centre, with an option to add a new client.
What to do
Create a Server-based Application. When it's created, note the Client ID and Client Secret — you'll need both in a moment. Add the redirect URI the console asks for so authorisation can complete.
Keep the console tab open
You'll come back here if you ever need to re-generate the refresh token or check the redirect URI.
2. Enter Client ID and Client Secret in WHMCS
What you'll see
The gateway config at Setup → Payment Gateways → Zoho Payments, with empty credential fields.
What to do
Paste the Client ID and Client Secret into their fields and click Save Changes. Saving first is required so the helper link in the next step can use them.
Setup → Payment Gateways → Zoho Payments
3. Generate the refresh token
What you'll see
A "Click Here to Generate Token" helper link in the gateway settings.
What to do
Click it, authorise the app with Zoho when prompted, and Zoho returns a refresh token. Paste that token into the Refresh Token field and Save Changes. From now on the gateway refreshes its access tokens automatically — you won't repeat this unless you revoke access in Zoho.
Token errors?
If token generation fails, double-check the Client ID / Client Secret, confirm the redirect URI is added in the Developer Console, and make sure the Data Center matches the console you used. Then generate the token again.
4. Add your Account ID and Widget API Key
What you'll see
The Account ID and Widget API Key fields in the gateway config.
What to do
Enter your Zoho Payments Account ID and the Widget API Key from the Zoho Developer Space. These initialise the checkout widget — if either is wrong, the widget won't load.
5. Set up the webhook
What you'll see
The webhook settings in your Zoho Payments dashboard, and the Webhook Secret field (which also shows your Webhook URL) in WHMCS.
What to do
In Zoho, add a webhook with:
- Webhook URL:
https://yourdomain.com/modules/gateways/zohopayments/webhooks/paylink_webhook.php - Events: Payment completed and Payment Link paid
Copy the webhook secret Zoho gives you into the Webhook Secret field in WHMCS and Save Changes. Full detail is on the Webhooks and Payment Links page.
You're connected
With the OAuth app, refresh token, Account ID, Widget API Key, and webhook all in place, turn on Test Mode and run a test payment. When it works end to end, follow the going live guide.