PHPackages                             ahmedtaha-dev/whatsapp-bevatel-provider - 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. [API Development](/categories/api)
4. /
5. ahmedtaha-dev/whatsapp-bevatel-provider

ActiveLibrary[API Development](/categories/api)

ahmedtaha-dev/whatsapp-bevatel-provider
=======================================

A package for integrating with Bevatel WhatsApp API

v1.0.0(2mo ago)00MITPHPPHP ^8.1

Since May 9Pushed 2mo agoCompare

[ Source](https://github.com/ahmedtaha01/whatsapp-bevatel-package)[ Packagist](https://packagist.org/packages/ahmedtaha-dev/whatsapp-bevatel-provider)[ RSS](/packages/ahmedtaha-dev-whatsapp-bevatel-provider/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

WhatsApp Bevatel provider
=========================

[](#whatsapp-bevatel-provider)

PHP helpers for sending template messages through the [Bevatel](https://bevatel.com/) WhatsApp API from Laravel (or any app using Laravel’s HTTP client and config).

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

[](#requirements)

- PHP `^8.1`
- Laravel `^9` … `^12` (package depends on `illuminate/support` and `illuminate/http`)

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

[](#installation)

```
composer require ahmedtaha-dev/whatsapp-bevatel-provider
```

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

[](#configuration)

### Environment variables

[](#environment-variables)

Set these in `.env` (or your runtime):

VariableDescription`BEVATEL_ACCOUNT_ID`Account identifier sent as `api_account_id``BEVATEL_ACCESS_TOKEN`Token sent as `api_access_token``BEVATEL_URL`Full URL of the Bevatel WhatsApp send endpoint (POST)### Publish config (optional)

[](#publish-config-optional)

```
php artisan vendor:publish --tag=whatsapp-config
```

This copies `config/whatsapp.php`, which reads the same env keys above.

### Register the service provider

[](#register-the-service-provider)

The package does not declare Laravel auto-discovery. Register it manually:

**Laravel 11+** — in `bootstrap/providers.php`:

```
AhmedTaha\WhatsAppBevatel\WhatsAppServiceProvider::class,
```

**Laravel 9–10** — in `config/app.php` under `providers`:

```
AhmedTaha\WhatsAppBevatel\WhatsAppServiceProvider::class,
```

Optional: register the facade alias in `config/app.php` (`aliases`) so you can call `WhatsApp::message()` instead of resolving `WhatsappService` manually:

```
'WhatsApp' => AhmedTaha\WhatsAppBevatel\Facades\WhatsApp::class,
```

Usage
-----

[](#usage)

Build a template payload with `WhatsappMessageBuilder`, then call `send()` to POST JSON to `BEVATEL_URL` with the headers Bevatel expects (`api_account_id`, `api_access_token`, `Content-Type: application/json`).

### Minimal example (template + phone + inbox)

[](#minimal-example-template--phone--inbox)

```
use AhmedTaha\WhatsAppBevatel\Enums\WhatsappTemplateLanguage;
use AhmedTaha\WhatsAppBevatel\WhatsappService;

/** @var WhatsappService $whatsapp */
$whatsapp = app(WhatsappService::class);

$response = $whatsapp->message()
    ->setInboxId('your-inbox-id')
    ->setPhone('966501234567')
    ->setTemplate('your_template_name', WhatsappTemplateLanguage::EnUs)
    ->send();

if ($response->successful()) {
    // handle success
} else {
    // $response->status(), $response->body(), etc.
}
```

### Body parameters

[](#body-parameters)

Map template body placeholders to the API shape your Bevatel template expects (often an array of parameter objects):

```
$whatsapp->message()
    ->setInboxId('...')
    ->setPhone('...')
    ->setTemplate('order_update', WhatsappTemplateLanguage::Ar)
    ->setBody([
        // structure must match Bevatel / your approved template
    ])
    ->send();
```

### Header and media

[](#header-and-media)

```
use AhmedTaha\WhatsAppBevatel\Enums\WhatsappMediaType;

$whatsapp->message()
    // ...
    ->setHeader([ /* header parameters */ ])
    ->setMedia(
        'https://example.com/file.pdf',
        WhatsappMediaType::Document,
        'invoice.pdf'
    )
    ->send();
```

### Buttons

[](#buttons)

Each `addButton()` sets one button (index increments automatically):

```
use AhmedTaha\WhatsAppBevatel\Enums\WhatsappButtonSubType;

$whatsapp->message()
    // ...
    ->addButton(WhatsappButtonSubType::QuickReply, 'Yes')
    ->addButton(WhatsappButtonSubType::Url, 'Open link')
    ->send();
```

### Enums

[](#enums)

- **`WhatsappTemplateLanguage`**: `EnUs` (`en_US`), `Ar` (`AR`)
- **`WhatsappMediaType`**: `Image`, `Document`
- **`WhatsappButtonSubType`**: `Url`, `QuickReply`, `CopyCode`

Exact template names, languages, and parameter shapes must match what Bevatel approved for your WhatsApp Business account.

Response
--------

[](#response)

`send()` returns `Illuminate\Http\Client\Response` from Laravel’s HTTP client, so you can use `successful()`, `json()`, `body()`, status codes, etc.

License
-------

[](#license)

MIT. See the package `composer.json` if a separate license file is added later.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance85

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

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

Unknown

Total

1

Last Release

76d ago

### Community

Maintainers

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

---

Top Contributors

[![ahmedtaha01](https://avatars.githubusercontent.com/u/98897680?v=4)](https://github.com/ahmedtaha01 "ahmedtaha01 (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ahmedtaha-dev-whatsapp-bevatel-provider/health.svg)

```
[![Health](https://phpackages.com/badges/ahmedtaha-dev-whatsapp-bevatel-provider/health.svg)](https://phpackages.com/packages/ahmedtaha-dev-whatsapp-bevatel-provider)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M347](/packages/psalm-plugin-laravel)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

813336.8k3](/packages/defstudio-telegraph)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.6k](/packages/simplestats-io-laravel-client)

PHPackages © 2026

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