Free, open-source WHMCS addon for client SMS notifications via the Beem Africa API - invoices, payments, reminders, service and support events. White-label, MIT.
# Beem SMS for WHMCS
Client SMS notifications for WHMCS via the Beem Africa SMS API — the same events WHMCS emails about (invoices, payments, reminders, service and support events), delivered as text messages. Built for hosts and agencies serving clients across Tanzania and the wider African markets Beem covers.
Free, open source (MIT), and fully white-label: no vendor branding anywhere in the admin or client UI.
## Features
- **Mirrors WHMCS events as SMS** — invoice created, payment received (**every payment, including partial payments**), payment reminders (1st–3rd), service activated (on order acceptance), service suspended / restored, new client welcome, support ticket replies.
- **Separate client and admin templates** — every event has an editable client SMS and an editable admin-copy SMS, each with its own merge fields.
- **Admin dashboard** (Addons > Beem SMS) — opens on the send log, with an always-visible Beem balance chip (↻ to refresh), per-event on/off, "copy admin" per event, one-off/test sending, and raw API responses per message.
- **Client self-service page** (`index.php?m=beem_sms`) — clients toggle SMS on/off and per-category alerts from the client area; a link is added to the Account menu automatically. Service-critical alerts (suspension/restoration) can be locked "always sent".
- **Optional link shortening** — invoice/ticket links can be shortened via TinyURL or da.gd (free, no API key) with caching and automatic fallback to the full URL.
- **International-ready phone handling** — WHMCS's `+countrycode.number` format is trusted for any country; local formats (`0745...`, `745...`) use a configurable default country code. See `docs/international-sms.md`.
- **Safe by design** — every hook is wrapped so an SMS failure can never break invoicing, provisioning, or cron. All sends are logged (module log + own table).
- **Housekeeping** — daily cron prunes old logs and caches, refreshes the balance chip, and can SMS the admin when Beem credits run l …