PHPackages                             mr3od/laravel-textbee-channel - 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. mr3od/laravel-textbee-channel

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

mr3od/laravel-textbee-channel
=============================

Provides TextBee notification channel for Laravel

v1.0.1(2mo ago)219MITPHPPHP ^8.3CI passing

Since May 14Pushed 2mo agoCompare

[ Source](https://github.com/mr3od/laravel-textbee-channel)[ Packagist](https://packagist.org/packages/mr3od/laravel-textbee-channel)[ RSS](/packages/mr3od-laravel-textbee-channel/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (8)Versions (3)Used By (0)

TextBee notifications channel for Laravel
=========================================

[](#textbee-notifications-channel-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/6888b70be5dcbe7eb97683afcd144a6768bbeeb1955c3171df027740ba1f32b1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d72336f642f6c61726176656c2d746578746265652d6368616e6e656c2e737667)](https://packagist.org/packages/mr3od/laravel-textbee-channel)[![Software License](https://camo.githubusercontent.com/074b89bca64d3edc93a1db6c7e3b1636b874540ba91d66367c0e5e354c56d0ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)](LICENSE.md)[![Build Status](https://github.com/mr3od/laravel-textbee-channel/actions/workflows/ci.yml/badge.svg)](https://github.com/mr3od/laravel-textbee-channel/actions/workflows/ci.yml)[![Total Downloads](https://camo.githubusercontent.com/b562d8fd4c40cd314d4c5bb93d8bc21164dd9baba74e95859170715a1fd83481/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d72336f642f6c61726176656c2d746578746265652d6368616e6e656c2e737667)](https://packagist.org/packages/mr3od/laravel-textbee-channel)

This package makes it easy to send SMS notifications via [TextBee](https://textbee.dev) with Laravel 12 and 13.

TextBee lets you send SMS messages through an Android device you own — no carrier contract required.

Contents
--------

[](#contents)

- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
    - [Available Message methods](#available-message-methods)
- [Changelog](#changelog)
- [Testing](#testing)
- [Security](#security)
- [Contributing](#contributing)
- [Credits](#credits)
- [License](#license)

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

[](#installation)

```
composer require mr3od/laravel-textbee-channel
```

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

[](#configuration)

Add your TextBee API key and device ID to `.env`:

```
TEXTBEE_API_KEY=your-api-key-here
TEXTBEE_DEVICE_ID=your-device-id-here       # optional if set per-message
TEXTBEE_ENABLED=true
TEXTBEE_BASE_URL=https://api.textbee.dev/api/v1  # optional — override for self-hosted instances
TEXTBEE_DEBUG_TO=+1234567890                # optional — redirect all messages here during development
```

Publish the config file:

```
php artisan vendor:publish --provider="Mr3od\Textbee\TextbeeProvider"
```

This creates `config/textbee-notification-channel.php`.

Usage
-----

[](#usage)

Use the channel in your notification's `via()` method:

```
use Mr3od\Textbee\TextbeeChannel;
use Mr3od\Textbee\TextbeeSmsMessage;
use Illuminate\Notifications\Notification;

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

    public function toTextbee($notifiable)
    {
        return (new TextbeeSmsMessage())
            ->content("Your {$notifiable->service} account was approved!");
    }
}
```

The channel resolves the recipient's phone number by calling `routeNotificationFor('textbee')` on the notifiable, then `routeNotificationFor(TextbeeChannel::class)`, and finally falls back to the `phone_number` attribute.

Add the routing method to your notifiable model to override the default:

```
public function routeNotificationForTextbee()
{
    return $this->mobile_number;
}
```

### Per-message device override

[](#per-message-device-override)

If you have multiple Android devices registered in TextBee you can pick one per message:

```
public function toTextbee($notifiable)
{
    return TextbeeSmsMessage::create("Your OTP is 123456")
        ->deviceId('your-other-device-id');
}
```

### Multiple recipients

[](#multiple-recipients)

```
return TextbeeSmsMessage::create('Your OTP is 123456')
    ->to(['+1234567890', '+0987654321']);
```

### Multi-SIM devices

[](#multi-sim-devices)

```
return TextbeeSmsMessage::create('Hello!')
    ->simSubscriptionId(1);
```

Available Message methods
-------------------------

[](#available-message-methods)

#### `TextbeeSmsMessage`

[](#textbeesmsmessage)

MethodDescription`content(string $text)`SMS body`to(string|array $recipients)`One or more recipient phone numbers`deviceId(string $id)`Override the TextBee device to send from`simSubscriptionId(int $id)`SIM slot to use on multi-SIM devicesChangelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for recent changes.

Testing
-------

[](#testing)

```
composer test
```

Security
--------

[](#security)

If you discover a security issue please email  instead of using the issue tracker.

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

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

- [Abdulrahman Alwan](https://github.com/mr3od)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance86

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~1 days

Total

2

Last Release

71d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/63613544?v=4)[Abdulrahman](/maintainers/mr3od)[@mr3od](https://github.com/mr3od)

---

Top Contributors

[![mr3od](https://avatars.githubusercontent.com/u/63613544?v=4)](https://github.com/mr3od "mr3od (2 commits)")

---

Tags

laravelnotificationsmstextbee

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/mr3od-laravel-textbee-channel/health.svg)

```
[![Health](https://phpackages.com/badges/mr3od-laravel-textbee-channel/health.svg)](https://phpackages.com/packages/mr3od-laravel-textbee-channel)
```

###  Alternatives

[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2588.4M17](/packages/laravel-notification-channels-twilio)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k15.1M136](/packages/laravel-pulse)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M347](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M133](/packages/roots-acorn)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2401.4M17](/packages/laravel-notification-channels-discord)

PHPackages © 2026

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