PHPackages                             arhinful/laravel-mnotify - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. arhinful/laravel-mnotify

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

arhinful/laravel-mnotify
========================

Laravel package for MNotify SMS and voice notifications

v2.0.0(5mo ago)5824↑22.2%1[1 issues](https://github.com/arhinful/laravel-mnotify/issues)MITPHPPHP ^8.0

Since Jan 31Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/arhinful/laravel-mnotify)[ Packagist](https://packagist.org/packages/arhinful/laravel-mnotify)[ Docs](https://github.com/arhinful/laravel-mnotify)[ RSS](/packages/arhinful-laravel-mnotify/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

Laravel MNotify Package
=======================

[](#laravel-mnotify-package)

[![Latest Stable Version](https://camo.githubusercontent.com/16fb130862a51dce4845afe9a1b643702f6b9367cf4efb4572656598e9a98e91/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f617268696e66756c2f6c61726176656c2d6d6e6f746966792e7376673f7374796c653d666c617426636f6c6f723d344341463530)](https://packagist.org/packages/arhinful/laravel-mnotify)[![Total Downloads](https://camo.githubusercontent.com/638df36d1aa38b930117d1b9bb11c0236e52a374f4b604af5b92d377782452b0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f617268696e66756c2f6c61726176656c2d6d6e6f746966792e7376673f7374796c653d666c617426636f6c6f723d323139364633)](https://packagist.org/packages/arhinful/laravel-mnotify)[![License](https://camo.githubusercontent.com/38f93c1103585c22325a1e6773514f2ad8d28037c6dbf191f47b876fcec88894/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f617268696e66756c2f6c61726176656c2d6d6e6f746966792e7376673f7374796c653d666c617426636f6c6f723d373935353438)](LICENSE)

A **Laravel** package that provides a clean, expressive API for sending **SMS** and **voice call** notifications via the **MNotify** platform.

---

Features
--------

[](#features)

- Simple, chainable API for quick SMS, templated SMS and voice calls.
- Full Laravel Notification channel integration.
- Publishable configuration file.
- Supports Laravel 8, 9, 10, 11, and 12.
- No external dependencies – uses Guzzle under the hood.

---

Why Laravel MNotify?
--------------------

[](#why-laravel-mnotify)

- Clean &amp; fluent API that feels like native Laravel.
- Complete coverage of all major MNotify features.
- Seamless integration with Laravel’s Notification system.
- Zero configuration required (auto-discovery).
- Actively maintained and now updated for Laravel 8 → 12.

---

Requirements
------------

[](#requirements)

- PHP 8.0+
- Laravel 8 – 12
- A valid MNotify API key
- Mnotify Sender name

---

Installation
------------

[](#installation)

```
composer require arhinful/laravel-mnotify
```

The package will be auto‑discovered. If you need to publish the config file:

```
php artisan vendor:publish --provider="Arhinful\\LaravelMnotify\\MNotifyServiceProvider"
```

---

Configuration
-------------

[](#configuration)

Add the following keys to your `.env` file:

```
MNOTIFY_KEY=your_api_key_here
MNOTIFY_SENDER_ID="Your Sender Name"
```

The values must match those configured in your MNotify dashboard.

---

Usage
-----

[](#usage)

### 📱 SMS Notifications

[](#-sms-notifications)

#### Quick SMS

[](#quick-sms)

```
use Arhinful\LaravelMnotify\MNotify;

$notify = new MNotify();
$notify->sendQuickSMS(['0542092800', '0507455860'], 'Hello, this is a quick reminder.');
```

#### Quick SMS with Named Sender ID (Override MNOTIFY\_SENDER\_ID in the dotenv file)

[](#quick-sms-with-named-sender-id-override-mnotify_sender_id-in-the-dotenv-file)

```
use Arhinful\LaravelMnotify\MNotify;

$notify = new MNotify('Your Sender Name');
$notify->sendQuickSMS(['0542092800', '0507455860'], 'Hello, this is a quick reminder with a named sender ID.');
```

#### SMS from Template

[](#sms-from-template)

```
$notify = new MNotify();
$notify->sendQuickSMSFromTemplate(['0542092800'], 1); // 1 = template ID in MNotify
```

#### Group Bulk SMS

[](#group-bulk-sms)

```
// Send to a Group
$notify->sendGroupSMS(['group_id_1', 'group_id_2'], 'Hello Group!');

// Send to a Group from Template
$notify->sendGroupSMSFromTemplate(['group_id_1'], 1);
```

#### Scheduled SMS

[](#scheduled-sms)

```
// Send a Scheduled SMS
$notify->setIsSchedule(true)
       ->setScheduleDate('2023-12-25 08:00:00')
       ->sendQuickSMS(['054xxxxxxx'], 'Merry Christmas!');

// Get Scheduled SMS
$notify->getScheduledSMS();

// Update Scheduled SMS
$notify->updateScheduledSMS(123, 'New message content', '2023-12-25 09:00:00');
```

---

### 📞 Voice Calls &amp; IVR

[](#-voice-calls--ivr)

#### Voice Calls

[](#voice-calls)

```
// Quick Bulk Voice Call (using audio file)
$notify->sendQuickVoiceCall('Campaign Title', ['054xxxxxxx'], '/path/to/audio.mp3');

// Quick Bulk Voice Call (using Voice ID)
$notify->sendQuickVoiceCallFromTemplate('Campaign Title', ['054xxxxxxx'], 'voice_id_123');

// Group Bulk Voice Call (using audio file)
$notify->sendGroupVoiceCall('Campaign Title', ['group_id_1'], '/path/to/audio.mp3');

// Group Bulk Voice Call (using Voice ID)
$notify->sendGroupVoiceCallFromTemplate('Campaign Title', ['group_id_1'], 'voice_id_123');

// Scheduled Voice Call (works with all above methods)
$notify->setIsSchedule(true)
       ->setScheduleDate('2023-12-25 08:00:00')
       ->sendQuickVoiceCall('Campaign Title', ['054xxxxxxx'], '/path/to/audio.mp3');
```

#### IVR

[](#ivr)

```
// Initiate IVR Call
$notify->initiateIVRCall(['054xxxxxxx'], 'audio_file_id_or_path');

// Get IVR Scenarios
$notify->getIVRScenarios();

// Launch IVR Scenario
$notify->launchIVRScenario(123, ['054xxxxxxx']);
```

---

### 📊 Account &amp; Reports

[](#-account--reports)

#### Balance Check

[](#balance-check)

```
// Check SMS Balance
$notify->checkSMSBalance();

// Check Voice Balance
$notify->checkVoiceBalance();
```

#### Sender ID

[](#sender-id)

```
// Register a Sender ID
$notify->registerSenderId('MyBrand', 'For OTP verification');

// Check Sender ID Status
$notify->checkSenderIdStatus('MyBrand');
```

#### Reports

[](#reports)

```
// Get SMS Delivery Report
$notify->getSMSDeliveryReport('campaign_id');

// Get Specific SMS Report
$notify->getSpecificSMSDeliveryReport('message_id');

// Get Periodic SMS Report
$notify->getPeriodicSMSDeliveryReport('2023-01-01', '2023-01-31');

// Get Voice Call Report
$notify->getVoiceCallReport('campaign_id');
```

---

### 🔔 Laravel Notification Channel

[](#-laravel-notification-channel)

Use the `MNotifyChannel` to send notifications via Laravel's built-in system.

```
use Illuminate\Notifications\Notification;
use Arhinful\LaravelMnotify\NotificationDriver\MNotifyChannel;
use Arhinful\LaravelMnotify\NotificationDriver\MNotifyMessage;

class TestNotification extends Notification
{
    public function via($notifiable)
    {
        return [MNotifyChannel::class];
    }

    public function toMNotify($notifiable)
    {
        return (new MNotifyMessage())
            ->message("Hello {$notifiable->name}, your appointment is tomorrow.");
    }
}
```

In your model, define the phone number accessor:

```
public function routeNotificationForMNotify(): string
{
    return $this->mobile; // column containing the phone number
}
```

---

Testing
-------

[](#testing)

```
vendor/bin/phpunit
```

---

Contributing
------------

[](#contributing)

Feel free to open issues or submit pull requests. Please follow the PSR‑12 coding style.

---

License
-------

[](#license)

This package is open‑source software licensed under the **MIT License**.

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance77

Regular maintenance activity

Popularity24

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1023 days

Total

2

Last Release

174d ago

Major Versions

v1.0 → v2.0.02025-11-20

### Community

Maintainers

![](https://www.gravatar.com/avatar/93cb331312a2514e580b3182e28c78d8731ded0f1c2c89d54e2cf7a1b6ba6ee1?d=identicon)[arhinful](/maintainers/arhinful)

---

Top Contributors

[![arhinful](https://avatars.githubusercontent.com/u/43961320?v=4)](https://github.com/arhinful "arhinful (25 commits)")[![Pastyasamoah](https://avatars.githubusercontent.com/u/34427135?v=4)](https://github.com/Pastyasamoah "Pastyasamoah (2 commits)")

---

Tags

laravellaravel-packagemnotifynotificationssmslaravelnotificationsmsvoicemnotify

### Embed Badge

![Health badge](/badges/arhinful-laravel-mnotify/health.svg)

```
[![Health](https://phpackages.com/badges/arhinful-laravel-mnotify/health.svg)](https://phpackages.com/packages/arhinful-laravel-mnotify)
```

###  Alternatives

[gr8shivam/laravel-sms-api

A modern, flexible Laravel package for integrating any SMS gateway with REST API support

10138.4k](/packages/gr8shivam-laravel-sms-api)[ghanem/laravel-smsmisr

Send SMS and SMS Notification via SMS Misr for Laravel

194.8k](/packages/ghanem-laravel-smsmisr)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
