Getting started

Requirements

Versions

RequirementMinimum
WHMCS8.0
PHP7.4, on the server WHMCS runs on
libphonenumberAny version WHMCS provides — see below

The addon also needs to be able to reach your platform install over HTTPS from the WHMCS server. If outbound requests are firewalled, nothing will send.

On the platform side

  • An API key with the sms_send and wa_send permissions. Create it under Tools → API Keys; both permissions are selected by default when you add a key.
  • The matching service on your subscription — sms to send SMS, whatsapp to send WhatsApp. A key with the permission but a subscription without the service is rejected at send time.
  • Something to send through: an Android device, a gateway with credit, or a linked WhatsApp account.

libphonenumber

libphonenumber is not optional, and the plugin package does not carry a copy of it. The libphonenumber\PhoneNumberUtil class must be loadable by WHMCS.

The reason is delivery safety rather than tidiness. Recipient numbers are validated before they are sent, but that validation exempts Brazil — so a number that is both invalid and parses as Brazilian is delivered to whichever real Brazilian subscriber holds it. Only libphonenumber can tell that number apart from a good one; a length or shape check cannot. So if the class is absent, the addon sends nothing at all and writes a single phone_library_missing entry to the WHMCS module log naming it.

Check before you install anything

WHMCS 8.x normally ships libphonenumber in its own vendor/ tree, so in most cases it is already loadable and there is nothing to do. Confirm it the direct way: activate the addon and send one test message from Send Message. If the class is missing the send fails and the phone_library_missing entry appears in the module log, at Configuration → System Logs → Module Log.

If it genuinely is absent, do not run composer require inside the WHMCS root. WHMCS manages that vendor/ directory itself, and running composer against it can rewrite WHMCS's own autoloader and dependency tree — breaking far more than this plugin. Ask your host or WHMCS support for the supported way to add a library to your installation.

The WHMCS cron

One template — the domain renewal reminder — is driven by the WHMCS daily cron rather than by an event. If your cron is not running, every other message still sends and only that one silently never fires. Confirm the cron is healthy under Configuration → System Health before concluding the reminder is broken.