alaaelsaid/laravel-wati-whatsapp

A Laravel package for integration with WATI WhatsApp service
3,101
Install
composer require alaaelsaid/laravel-wati-whatsapp
Latest Version:1.0.1
PHP:^8.2 | ^8.3 | ^8.4
License:MIT
Last Updated:Jul 29, 2026
Links: GitHub  ·  Packagist
Maintainer: alaaels3id

Laravel WATI WhatsApp Integration Package

A clean, modern Laravel package for integrating with the WATI WhatsApp Business API.

Installation

Install the package via Composer:

composer require alaaelsaid/laravel-wati-whatsapp

Publishing Configuration

Publish the config file:

php artisan vendor:publish --tag="wati-config"

Environment Variables

Add the following keys to your .env file:

WATI_TEMPLATE=your_default_template_name
WATI_ENDPOINT=https://live-server-123.wati.io
WATI_ACCESS_TOKEN=your_wati_access_token
WATI_DEFAULT_COUNTRY_CODE=966

Usage

1. Sending Single WhatsApp Template Message

use Alaaelsaid\LaravelWatiWhatsapp\Facade\Whatsapp;

// Send using default template from config
Whatsapp::send('+966501234567', "Hello world", "John Smith");

// Send using custom template & custom parameters
Whatsapp::send(
    phone: '+966501234567',
    template: 'order_update_template',
    customParams: [
        ['name' => 'name', 'value' => 'John Smith'],
        ['name' => 'order_id', 'value' => 'ORD-9921'],
        ['name' => 'status', 'value' => 'Shipped']
    ]
);

2. Sending Bulk Template Messages (multi)

// $users can be an array or Eloquent collection
Whatsapp::multi(
    message: "Your appointment is confirmed.",
    users: $users,
    column: 'phone',
    name: 'name'
);

3. Sending Direct Session Message (sendSessionMessage)

Send direct session text message outside of template broadcasts:

Whatsapp::sendSessionMessage('+966501234567', 'Thank you for reaching out!');

4. Phone Number Utility (MobilePhone)

use Alaaelsaid\LaravelWatiWhatsapp\Facade\MobilePhone;

// Convert Arabic numerals to English numerals
$number = MobilePhone::to_english_number('۰۱۲۳٤٥٦۷۸۹'); // Outputs: "0123456789"

// Format phone with country prefix
$prefixed = MobilePhone::setCountryCode('966')->prefixed('0501234567'); // Outputs: "+966501234567"

Related Packages

kstmostofa/laravel-whatsapp

Dual-backend Laravel package for WhatsApp: Meta Cloud API + bundled whatsapp-web...

3,096 223
renderbit/laravel-whatsapp

Framework-agnostic PHP library for sending WhatsApp messages via Renderbit, with...

3,830 0
ihabrouk/messenger

A Laravel package for multi-provider messaging (SMS, WhatsApp, Email) with conse...

41 1
multek/laravel-whatsapp-cloud

Enterprise-grade WhatsApp Cloud API integration for Laravel with multi-phone sup...

1,902 2