Download the PHP package helliosolutions/helliosms without Composer
On this page you can find all versions of the php package helliosolutions/helliosms. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download helliosolutions/helliosms
More information about helliosolutions/helliosms
Files in helliosolutions/helliosms
Package helliosms
Short Description Official Laravel SDK for the Hellio Messaging API v1 (SMS, OTP, Voice, Number Lookup, Email Verification, USSD, Webhooks).
License MIT
Informations about the package helliosms
Hellio Messaging — Official Laravel SDK
Laravel client for the Hellio Messaging API v1: SMS, OTP (SMS / voice / WhatsApp / email), Voice broadcasts, Number Lookup (HLR), Email Verification, USSD, Webhooks, plus a Laravel notification channel and a validation rule.
Install
Publish the config (optional):
Configure
Generate a token in your dashboard → Settings → API → Generate API token, then set:
Usage
Resolve the client from the container or use the HellioMessaging facade.
USSD
Build interactive USSD services on your own dialer code. Reached through
HellioMessaging::ussd() (needs an API token with the ussd ability). A USSD app
holds your callback_url; an extension is the dialer code (e.g. *920*100#) you
rent and point at the app. App and extension IDs are UUID strings. List endpoints are
cursor-paginated (data + meta.next_cursor).
Apps have a test/live mode. A new app starts in test: you can simulate it in the
sandbox by app_id straight away (no charge, no extension needed). To take it live, rent
an extension for the app, then call setMode($id, 'live'). Each app carries a separate
test_secret and live_secret (prefixed ussk_test_ / ussk_live_) for signing inbound
callbacks. Extension rental draws from a dedicated USSD balance, separate from SMS
credit and the main wallet.
Things that can fail: renting a taken code throws ExtensionUnavailableException (409);
a short USSD balance throws InsufficientBalanceException (402, insufficient_ussd_balance);
switching an app to live before it has an extension throws ExtensionRequiredException
(402, extension_required); simulating an app you don't own throws ValidationException
(422, unknown_app).
Inbound callback
When a subscriber dials your extension, Hellio POSTs
{ sessionId, msisdn, serviceCode, input, sequence, mode } to the app's callback_url,
signed with header X-Hellio-Signature = HMAC-SHA256(rawBody, secret). Use the secret that
matches the request's mode: test_secret for sandbox/simulated traffic, live_secret
once the app is live. Verify it and reply with { message, action } (action is continue
or end):
Notification channel
Route it on the notifiable:
Validation rule
Verify an OTP a user typed (defaults to the mobile_number field):
Error handling
Non-2xx responses throw typed exceptions (all extend HellioException):
| Exception | Status |
|---|---|
InvalidApiTokenException |
401 |
InsufficientBalanceException (incl. USSD insufficient_ussd_balance) |
402 |
ExtensionRequiredException (USSD app needs an extension before going live) |
402 |
ExtensionUnavailableException (USSD extension taken) |
409 |
ValidationException (->response['errors']) |
422 |
RateLimitException |
429 |
ServiceUnavailableException |
503 |
HellioException |
other |
Rate limit: 120 requests/minute per token.
License
MIT
All versions of helliosms with dependencies
ext-json Version *
guzzlehttp/guzzle Version ^7.2
illuminate/notifications Version ^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^9.0|^10.0|^11.0|^12.0|^13.0