https://github.com/boxlinknet/kwtsms-notification-channel
kwtSMS notification channel for Laravel
https://github.com/boxlinknet/kwtsms-notification-channel
Last synced: about 1 month ago
JSON representation
kwtSMS notification channel for Laravel
- Host: GitHub
- URL: https://github.com/boxlinknet/kwtsms-notification-channel
- Owner: boxlinknet
- License: mit
- Created: 2026-03-17T06:06:11.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-17T06:40:29.000Z (3 months ago)
- Last Synced: 2026-03-17T21:48:12.540Z (3 months ago)
- Language: PHP
- Size: 8.79 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# kwtSMS Notification Channel for Laravel
[](https://packagist.org/packages/kwtsms/kwtsms-notification-channel)
[](https://packagist.org/packages/kwtsms/kwtsms-notification-channel)
[](LICENSE)
This package makes it easy to send notifications using [kwtSMS](https://www.kwtsms.com) with Laravel.
## About kwtSMS
[kwtSMS](https://www.kwtsms.com) is Kuwait's leading SMS gateway, providing reliable SMS delivery for businesses across Kuwait and internationally. Unlike international providers (Twilio, Infobip, etc.), kwtSMS is a local Kuwaiti provider with direct carrier connections, ensuring fast and reliable delivery to all Kuwaiti mobile networks (Zain, Ooredoo, STC, Virgin Mobile).
kwtSMS supports both promotional and transactional messaging, OTP delivery, bulk campaigns, and offers a simple REST/JSON API with client libraries in [12 programming languages](https://www.kwtsms.com/developers.html).
## Features
- **Laravel Notifications Integration**: Send SMS using Laravel's built-in notification system
- **Simple API**: Clean, fluent message builder with `KwtSmsMessage::create()`
- **Custom Sender ID**: Override the default sender ID per message
- **Test Mode Support**: Send test messages without consuming credits during development
- **Auto-Discovery**: Laravel package auto-discovery, no manual service provider registration needed
- **Configurable**: Publish and customize the config file to match your setup
- **Lightweight**: Minimal dependencies, uses Laravel's HTTP client under the hood
## Contents
- [About kwtSMS](#about-kwtsms)
- [Features](#features)
- [Installation](#installation)
- [Setting up kwtSMS](#setting-up-kwtsms)
- [Usage](#usage)
- [Available Methods](#available-methods)
- [Changelog](#changelog)
- [Testing](#testing)
- [Security](#security)
- [Contributing](#contributing)
- [Credits](#credits)
- [License](#license)
## Installation
You can install the package via Composer:
```bash
composer require kwtsms/kwtsms-notification-channel
```
Publish the configuration file:
```bash
php artisan vendor:publish --provider="NotificationChannels\KwtSms\KwtSmsServiceProvider" --tag="config"
```
Add your kwtSMS credentials to your `.env` file:
```dotenv
KWTSMS_USERNAME=your-username
KWTSMS_PASSWORD=your-password
KWTSMS_SENDER=your-sender-id
KWTSMS_TEST_MODE=false
```
## Setting up kwtSMS
To get started, you need a kwtSMS account:
1. Sign up at [kwtsms.com](https://www.kwtsms.com)
2. Obtain your API username and password from the dashboard
3. Register a Sender ID (or use the default `KWT-SMS`)
4. Add the credentials to your `.env` file as shown above
## Usage
Create a notification class that uses the `KwtSmsChannel`:
```php
use Illuminate\Notifications\Notification;
use NotificationChannels\KwtSms\KwtSmsChannel;
use NotificationChannels\KwtSms\KwtSmsMessage;
class OrderShipped extends Notification
{
public function via($notifiable): array
{
return [KwtSmsChannel::class];
}
public function toKwtSms($notifiable): KwtSmsMessage
{
return KwtSmsMessage::create("Your order #{$this->order->id} has been shipped!");
}
}
```
Add the `routeNotificationForKwtSms` method to your notifiable model:
```php
public function routeNotificationForKwtSms($notification): string
{
return $this->phone; // International format: 96598765432
}
```
You can also return a plain string from `toKwtSms` instead of a `KwtSmsMessage` object:
```php
public function toKwtSms($notifiable): string
{
return 'Your order has been shipped!';
}
```
## Available Methods
### KwtSmsMessage
| Method | Description |
|---|---|
| `create(string $content = '')` | Static factory to create a new message |
| `content(string $content)` | Set the message content |
| `sender(string $sender)` | Override the default sender ID |
| `getContent()` | Get the message content |
| `getSender()` | Get the sender ID (null if not set) |
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Testing
```bash
composer test
```
## Security
If you discover any security related issues, please use the issue tracker on GitHub instead of sending an email.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Credits
- [BoxLink](https://github.com/boxlinknet)
- [All Contributors](../../contributors)
## License
The MIT License (MIT). Please see [LICENSE](LICENSE) for more information.