Download the PHP package kwtsms/laravel-kwtsms without Composer
On this page you can find all versions of the php package kwtsms/laravel-kwtsms. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kwtsms/laravel-kwtsms
More information about kwtsms/laravel-kwtsms
Files in kwtsms/laravel-kwtsms
Package laravel-kwtsms
Short Description Laravel notification channel for the kwtSMS SMS gateway (Kuwait)
License MIT
Homepage https://www.kwtsms.com
Informations about the package laravel-kwtsms
kwtSMS for Laravel
A Laravel notification channel package for the kwtSMS SMS gateway (Kuwait). Send SMS messages through kwtSMS in any Laravel 10/11/12 application.
About kwtSMS
kwtSMS is a Kuwait-based SMS gateway trusted by businesses to deliver messages across Kuwait (Zain, Ooredoo, STC, Virgin) and internationally. It offers private Sender IDs, free API testing, non-expiring credits, and competitive flat-rate pricing. Open a free account in under one minute at kwtsms.com, no paperwork or payment required.
Features
- Laravel Notification Channel integration (standard
$user->notify(...)syntax) - Admin panel at
/kwtsms: Dashboard, Settings, Templates, Integrations, Logs, Admin Alerts, Help - OTP and password reset SMS support with built-in rate limiting
- Multilingual SMS templates: English and Arabic (RTL ready) with
{{variable}}placeholders - Phone number normalization (strips
+,00, spaces, dashes, Arabic/Hindi digits) - Message cleaning (strips emojis, hidden characters, HTML before send)
- Bulk send with batching (max 200 numbers per request, 0.2s delay between batches)
- Pre-send balance check (cached, skips API call if zero balance)
- Coverage-aware sending (skips numbers from inactive country prefixes)
- Full SMS log in local database with export to CSV and clear/purge option
- Daily scheduled sync command for balance, sender IDs, and coverage
- Test mode support (
KWTSMS_TEST_MODE=true: queued without delivery, credits recoverable) - Global on/off kill switch (
KWTSMS_ENABLED=false) - Admin alert notifications (low balance, send failure, daily summary, API errors, OTP flood)
Requirements
- PHP 8.1+
- Laravel 10, 11, or 12
Installation
Publish configuration and run migrations:
Optionally seed the default SMS templates (English + Arabic for all event types):
Configuration
Add your kwtSMS API credentials to .env:
Note: Use your API username and password from your kwtSMS account API settings page, not your mobile number.
Sender ID:
KWT-SMSis a shared test sender only. Register a private sender ID on your kwtSMS account before going live. Transactional sender IDs bypass DND lists and are required for OTP delivery.
Quick Start
Notification Channel
Your notifiable model must implement routeNotificationForKwtSms():
Then send as normal:
Direct Send via SmsSender
Response format:
Sending for Events (Template-Based)
This looks up the active template with event_type = 'order_placed' and locale matching the user, substitutes {{customer_name}}, {{order_id}}, {{total}}, and sends.
Facade
SMS Templates
Templates are managed via the admin panel at /kwtsms/templates. Each template has:
- A name (e.g.
otp_en) - An event type (e.g.
otp,order_placed,password_reset) - A locale (
enorar) - A message body with
{{variable_name}}placeholders
Example template body:
Rendered with:
Default templates are seeded for: otp, password_reset, order_placed, order_confirmed, order_shipped, order_delivered, order_cancelled, order_status, cod_otp, low_balance_alert.
Admin Panel
After installation, visit /kwtsms to access the admin panel. It provides:
| Tab | Description |
|---|---|
| Dashboard | Balance, send statistics, recent logs |
| Settings | API credentials, test connection, low balance threshold, admin phone |
| Templates | Create, edit, activate/deactivate SMS templates |
| Integrations | Toggle which events trigger SMS sends |
| Logs | View and export the full SMS send history |
| Admin Alerts | Configure alert notifications to the admin phone |
| Help | Quick start guide and code examples |
Auth: The admin panel uses the
admin_middlewaresetting fromconfig/kwtsms.php. Default is['web', 'auth'].
Artisan Commands
The sync command runs automatically every day at 03:00 (Asia/Kuwait) via the scheduler.
Phone Number Format
All phone numbers must be in international format, digits only, no prefix:
The package normalizes numbers automatically before every send. Numbers containing Arabic/Hindi digits are also converted.
Test Mode
When KWTSMS_TEST_MODE=true:
- Messages are queued on kwtSMS servers but not delivered to handsets
- Credits are not consumed (tentatively held until you delete from the queue)
- Test messages appear in your kwtSMS account Sending Queue
- Delete them from the queue at kwtsms.com to release any held credits
Always use test mode during development. Set KWTSMS_TEST_MODE=false only in production.
Help and Support
- kwtSMS FAQ: Answers to common questions about credits, sender IDs, OTP, and delivery
- kwtSMS Support: Open a support ticket or browse help articles
- Contact kwtSMS: Reach the kwtSMS team directly for Sender ID registration and account issues
- API Documentation (PDF): kwtSMS REST API v4.1 full reference
- Best Practices: SMS API implementation best practices
- Integration Test Checklist: Pre-launch testing checklist
- Sender ID Help: How to register, whitelist, and troubleshoot sender IDs
- kwtSMS Dashboard: Recharge credits, buy Sender IDs, view message logs, manage coverage
- Other Integrations: Plugins and integrations for other platforms and languages
License
The MIT License (MIT). See LICENSE for details.
All versions of laravel-kwtsms with dependencies
illuminate/notifications Version ^10.0|^11.0|^12.0
illuminate/support Version ^10.0|^11.0|^12.0
kwtsms/kwtsms Version ^1.3