kwtsms/kwtsms-notification-channel

kwtSMS notification channel for Laravel

Maintainers

Package info

github.com/boxlinknet/kwtsms-notification-channel

pkg:composer/kwtsms/kwtsms-notification-channel

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-03-17 06:25 UTC

This package is auto-updated.

Last update: 2026-03-18 01:22:40 UTC


README

Latest Version on Packagist Total Downloads Software License

This package makes it easy to send notifications using kwtSMS with Laravel.

About kwtSMS

kwtSMS 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.

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

Installation

You can install the package via Composer:

composer require kwtsms/kwtsms-notification-channel

Publish the configuration file:

php artisan vendor:publish --provider="NotificationChannels\KwtSms\KwtSmsServiceProvider" --tag="config"

Add your kwtSMS credentials to your .env file:

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
  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:

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:

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:

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 for more information on what has changed recently.

Testing

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 for details.

Credits

License

The MIT License (MIT). Please see LICENSE for more information.