PHPackages                             tabi/laravel-sdk - 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. tabi/laravel-sdk

ActiveLibrary[API Development](/categories/api)

tabi/laravel-sdk
================

Laravel integration for the Tabi WhatsApp Business Messaging API (wraps tabi/sdk)

v0.1.1(3mo ago)00MITPHP ^8.1

Since Apr 20Compare

[ Source](https://github.com/Tabi-messaging/tabi-sdk-laravel)[ Packagist](https://packagist.org/packages/tabi/laravel-sdk)[ Docs](https://tabi.africa/sdks)[ RSS](/packages/tabi-laravel-sdk/feed)WikiDiscussions Synced 3w ago

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

tabi/laravel-sdk
================

[](#tabilaravel-sdk)

> Official **Laravel** integration for the **Tabi** WhatsApp Business Messaging API. Registers [`tabi/sdk`](https://packagist.org/packages/tabi/sdk) (`Tabi\SDK\TabiClient`) from environment configuration.

[![Latest Stable Version](https://camo.githubusercontent.com/5848ce47954a4e376caa3dc16e8f1ce3788e58b9c3eb60a8e9ce7791d856df23/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f746162692f6c61726176656c2d73646b2e737667)](https://packagist.org/packages/tabi/laravel-sdk)[![License: MIT](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](LICENSE)

This package does not duplicate the HTTP client: it wires **`TabiClient`** into Laravel’s service container and provides a **facade**. All request/response behaviour, PHPDoc `array{…}` shapes, and endpoint coverage come from **`tabi/sdk`** (see `vendor/tabi/sdk/README.md` after install).

---

Table of Contents
-----------------

[](#table-of-contents)

- [Requirements](#requirements)
- [Installation](#installation)
- [Configuration](#configuration)
- [Resolving the client](#resolving-the-client)
- [Getting started](#getting-started)
- [OTP over WhatsApp](#otp-over-whatsapp)
- [Resource groups](#resource-groups-feature-areas)
- [Resources](#resources)
    - [Auth](#auth)
    - [Channels](#channels)
    - [Messages](#messages)
    - [Contacts](#contacts)
    - [Conversations](#conversations)
    - [Webhooks](#webhooks)
    - [API Keys](#api-keys)
    - [Files](#files)
    - [Campaigns](#campaigns)
    - [Automation Templates](#automation-templates)
    - [Automation Installs](#automation-installs)
    - [Quick Replies](#quick-replies)
    - [Analytics](#analytics)
    - [Notifications](#notifications)
    - [Integrations](#integrations)
    - [Workspaces](#workspaces)
- [Error handling](#error-handling)
- [Return values](#return-values)
- [Related](#related)
- [Support](#support)
- [License](#license)

---

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

[](#requirements)

- **PHP** &gt;= 8.1
- **Laravel** 10, 11, or 12
- Extensions (pulled in via **`tabi/sdk`**): **curl**, **json**

---

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

[](#installation)

```
composer require tabi/laravel-sdk
```

The service provider and `Tabi` facade are **auto-discovered** (no manual `config/app.php` registration).

---

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

[](#configuration)

Publish the config file (optional):

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

Env variableDescription`TABI_API_KEY`Workspace or channel API key (`tk_…`) or JWT when an endpoint requires dashboard auth`TABI_BASE_URL`Optional. Default: `https://api.tabi.africa/api/v1`**Credential sources**

ValueLocationAPI key / JWTDashboard → Developer → API Keys (or login flow for JWT)Base URL`TABI_BASE_URL` or default aboveChannel IDDashboard → Channels → open a channel → copy the ID from the URL---

Resolving the client
--------------------

[](#resolving-the-client)

Use any of the following; they resolve the **same** singleton `TabiClient`:

**Constructor injection**

```
use Tabi\SDK\TabiClient;

public function __construct(private TabiClient $tabi) {}
```

**Facade**

```
use Tabi\Laravel\Facades\Tabi;

Tabi::messages()->send('channel-id', [ /* ... */ ]);
```

**Container**

```
$tabi = app(TabiClient::class);
// or
$tabi = app('tabi.client');
```

In the **Resources** section below, `$tabi` always means an instance of `TabiClient` obtained in one of these ways.

---

Getting started
---------------

[](#getting-started)

```
