SMS & WhatsApp Notifications

The premium plugin: the five events and texts, merge fields, four providers, what each provider needs, the log and test send, the client opt-in page and troubleshooting.

SMS & WhatsApp Notifications is a premium plugin (addon code notify-sms, $39). It sends a short text message to your clients when something happens to their account, and to your own team when an order comes in. It works with Twilio (SMS and WhatsApp), BulkSMSBD, GREEN-API (WhatsApp) or any other SMS company that can be called by a web address, which covers most local gateways in Bangladesh and elsewhere. It is for shops whose clients read a phone faster than an inbox. The Owned package includes it; the monthly packages give a discount. See The licence key.

Free or premium

It is premium. Without the addon notify-sms on your licence the plugin refuses to switch on and says Premium - needs the "notify-sms" addon on your licence. If the addon is lost later, the plugin stays on the page but stops sending. Buy it at license.faruk.bd, press Check now on Setup → Licence, then upload the plugin ZIP and activate it as described in Plugins and themes.

Switching it on

  1. Press Activate on Setup → Addon Modules. Activation creates a table for the message log; deactivating keeps it, uninstalling drops it.
  2. Open Addons → SMS & WhatsApp in the admin top menu and press Settings and message texts.
  3. Choose a provider, fill in its group of settings, adjust the texts, save.
  4. Go back to Addons → SMS & WhatsApp and send yourself a test message.

What is sent

EventToDefault text
Invoice createdThe client (unpaid invoices only)Hello {client_name}, invoice #{invoice_num} for {amount} was created. It is due on {due_date}. {company}
Invoice paidThe clientThank you {client_name}! We received your payment for invoice #{invoice_num} ({amount}). {company}
Service suspendedThe clientHello {client_name}, your service {service} ({domain}) was suspended. Reason: {reason}. {company}
Support ticket replyThe client, when staff reply{company} support replied to your ticket #{ticket_id}: {ticket_subject}. {ticket_url}
New order (to the admin numbers)Your admin numbersNew order #{order_num} from {client_name}: {amount}.

Each event has a yes/no switch and a text box under the heading Messages. The merge fields are:

{client_name} {company} {invoice_num} {amount} {due_date} {invoice_url} {service} {domain} {reason} {ticket_id} {ticket_subject} {ticket_url} {order_num}

A field with no value for the event is left empty. Keep texts short; an SMS is billed per part by your provider.

General settings

SettingMeaning
ProviderGeneric HTTP gateway, Twilio, BulkSMSBD (bulksmsbd.net) or GREEN-API (WhatsApp).
Default country codeAdded to numbers typed without one. Default 880 (Bangladesh). Digits only.
Clients are opted in by defaultYes by default. A client who never visited the SMS page still gets messages on the phone number of the profile.
Admin numbersOne number per line, or separated by commas. They get the New order message.

Numbers are cleaned before sending: 01700000000 with code 880 becomes 8801700000000; a number that starts with + or 00 is kept as it is. A number shorter than seven digits is refused.

The providers

Generic HTTP gateway fits any company that lets you send by a web address.

SettingMeaning
URLUse {to} for the international number and {message} for the text, for example https://sms.example.com/send?key=KEY&to={to}&text={message}.
MethodGET or POST.
POST body typeForm fields or JSON.
POST bodyFor example to={to}&text={message} or {"to":"{to}","text":"{message}"}.
Extra headersOne per line, such as Authorization: Bearer TOKEN.
Success textOptional. The message counts as sent only when the answer contains this text. Without it, any answer with an HTTP code from 200 to 299 counts as sent.

Twilio: Account SID, Auth token, From number (international form, for example +15551234567, or the Twilio WhatsApp sandbox number for WhatsApp) and Channel (SMS or WhatsApp). For WhatsApp the plugin addresses whatsapp:+number.

BulkSMSBD: API key and Sender ID (the approved sender ID or mask). A message counts as accepted when the answer carries the response code 202.

GREEN-API (WhatsApp): Instance ID, API token and API host (leave https://api.green-api.com unless your instance shows another host). The instance must be linked to a WhatsApp account in the GREEN-API console.

Secret fields (auth token, API keys, API token) are hidden: leave them empty to keep the saved value.

What the provider needs from you

  • An account with the provider, and its credentials as above.
  • For many providers, a registered sender ID or a verified sender number before messages are delivered. That is the provider's rule, not AIOBilling's.
  • Credit with the provider; AIOBilling does not charge for messages, the provider does.
  • Your server must reach the provider over the internet (the PHP curl extension). BulkSMSBD is called over plain HTTP. Some providers want your server's IP address registered with them; ask them.
  • Nothing needs a callback address: the plugin has no webhook.

The admin page

Addons → SMS & WhatsApp shows how many messages were Sent and how many Failed, then two cards.

  • Message log - the last 100 messages with date, number, event, text and the provider's answer. A failed message shows why. Clear empties the log (it needs the permission Configure General Settings).
  • Send a test - give a number and a text and press Send test. A number without a country code gets the default one.

What clients see

In the client area the account menu gets SMS Notifications. The client can type a mobile number (empty means the phone number of the profile) and switch Send me text messages on or off. A number is checked (7 to 20 characters of digits, spaces, brackets, dashes and an optional plus sign); otherwise That does not look like a phone number. A client who opted out, or has no number, gets nothing and sees no error.

Testing and workflow

Pick a provider, enter its credentials and press Send test with your own number after every change of provider or key. Add your number to Admin numbers to learn of each new order at once. Then create a small invoice for a test client with a phone number to see Invoice created, and pay it to see Invoice paid. Look at the message log now and then for failures.

Troubleshooting

Message in the logCure
The phone number "..." is not valid.Fewer than seven digits after cleaning. Check the number and the default country code.
Twilio is not set up: the account SID, auth token and sender number are needed.Fill the three Twilio fields.
BulkSMSBD is not set up: the API key and sender ID are needed.Fill both fields.
GREEN-API is not set up: the instance ID and API token are needed.Fill both fields.
The HTTP provider has no URL.Fill the URL of the generic gateway.
A failed message with the provider's own wordsA wrong key, a sender that is not approved, a number the provider rejects, or no credit.

Sending never stops the work that triggered it: if the provider is down, the invoice is still created or paid and the failure is only written to the log. Messages are sent at once, as the event happens, not by the cron. More in Troubleshooting.

Was this helpful?

Updated 2026-11-03