Skip to content

Plugins

On this page

WHMCS Plugin

Add stablecoin payments to WHMCS invoices, connect the preconfigured Paymos package, test the webhook, and keep existing provisioning rules.

1. Requirements

  • WHMCS 8.13+ or 9.0 and a public HTTPS System URL
  • A Paymos account with a project selected in the dashboard
  • The official package from GitHub Releases

Official packages are identical for every merchant and contain no API keys, API secrets, project IDs, webhook secrets, OAuth tokens, or device codes.

2. Install

Extract the release archive into the WHMCS root, enable Paymos under Configuration → System Settings → Payment Gateways, then click Connect Paymos on that page.

3. Connect

  1. Open the project you want to connect in the Paymos dashboard. The plugin uses that current project automatically; it never asks you to select it again.
  2. Click Connect Paymos in WHMCS.
  3. Approve the displayed store URL and current project in Paymos. There is no second project selector.
  4. Return to the CMS after the connected status appears.

For Sandbox and Live, Paymos reuses the merchant's single active Payment key or creates one when none exists. It reuses a webhook only when the exact callback URL, Invoice category, and current project match; otherwise it creates a dedicated Invoice webhook. A conflicting webhook at the same URL is never silently overwritten:

https://your-store.example/modules/gateways/callback/paymosgateway.php

OAuth device authorization is only the one-time delivery channel. The short-lived token is discarded; runtime Merchant API calls remain HMAC signed.

4. Secret storage

Credentials and temporary device state are stored in an AES-256-GCM envelope in tblconfiguration, keyed from the WHMCS installation encryption hash. Saved secrets are not rendered back into the administration page.

5. Test and go live

Select Sandbox, place a test order, and confirm the invoice and webhook-driven status update. Switch the same installation to Live when ready; reconnect only after changing the store URL, revoking a Payment key, or rotating a webhook secret.