PHPackages                             campaigningbureau/whatsatool-client - 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. campaigningbureau/whatsatool-client

ActiveLibrary

campaigningbureau/whatsatool-client
===================================

Laravel Package to communicate with the whatsatool API

v1.0(8y ago)01.6k[1 issues](https://github.com/CampaigningBureau/whatsatool-client/issues)MITPHP

Since Aug 2Pushed 8y ago2 watchersCompare

[ Source](https://github.com/CampaigningBureau/whatsatool-client)[ Packagist](https://packagist.org/packages/campaigningbureau/whatsatool-client)[ RSS](/packages/campaigningbureau-whatsatool-client/feed)WikiDiscussions master Synced today

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

Whats A Tool - Client
=====================

[](#whats-a-tool---client)

Description
-----------

[](#description)

This library gives you the basic functionality to communicate with the Whats A Tool API.

[Whats a Tool](https://atms.at/de/whatsatool)[MSISDN on Wikipedia](https://en.wikipedia.org/wiki/MSISDN)

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

[](#installation)

First require in Composer:

`composer require campaigningbureau/whatsatool-client`

Add the Service Provider in your `config/app.php`:

```
'providers' => [
    ...
    CampaigningBureau\WhatsAToolClient\WhatsAToolClientProvider::class,
]
```

You can also add the Facade there:

```
'aliases' => [
    ...
    'WhatsAToolClient' =>  CampaigningBureau\WhatsAToolClient\WhatsAToolClientFacade::class,
]
```

Publish the config settings:

```
$ php artisan vendor:publish

```

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

[](#configuration)

After publishing the config file you can edit them in `config/whatsatool.php`.

Make sure you configure at least `username` and `password`.

The `default_country_code` is used to create the correct MSISDN when a phonenumber with local country code is given (e.g. *0664/1234567*)

Usage
-----

[](#usage)

### Validation

[](#validation)

To validate a given number:

```
$phonenumber = '+43 664 123 456 87';
CampaigningBureau\WhatsAToolClient\Msisdn::validatePhonenumber($phonenumber);
```

The Validation cleans the phonenumber, that means **removes all non-numeric characters and leading `00`** and checks if:

1. The cleaned phonenumber is not empty
2. The length is shorter or equal to 15 characters (funny fact: there is no official minimum lengt restriction)
3. The phonenumber starts with a valid **Country Code**, which is either `0` for local or a country code that can be found in [this](https://gist.github.com/josephilipraja/8341837) list.

### Register Contact

[](#register-contact)

To register a new Contact:

```
$phonenumber = '+43 664 123 456 87';
$msisdn = new Msisdn($phonenumber);
try {
    $simMsisdn = WhatsATool::registerContact($msisdn, $channel, $sendSms);
} catch (WhatsAToolException $exception) {
    Log::error($exception->getMessage());
}
```

This returns the msisdn of the Sim the number is registered to or throws a `WhatsAToolException` with the error message of the WhatsATool-API.

Development
-----------

[](#development)

If you have PHPUnit installed in your environment, run:

```
$ phpunit

```

If you don't have PHPUnit installed, you can run the following:

```
$ composer update
$ ./vendor/bin/phpunit

```

Credits
-------

[](#credits)

The Msisdn-Logic is based on .

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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

3205d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3008376?v=4)[Campaigning Bureau](/maintainers/campaigningbureau)[@CampaigningBureau](https://github.com/CampaigningBureau)

---

Top Contributors

[![slue](https://avatars.githubusercontent.com/u/5067774?v=4)](https://github.com/slue "slue (7 commits)")

---

Tags

laravelwhatsatool

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/campaigningbureau-whatsatool-client/health.svg)

```
[![Health](https://phpackages.com/badges/campaigningbureau-whatsatool-client/health.svg)](https://phpackages.com/packages/campaigningbureau-whatsatool-client)
```

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

85810.0M83](/packages/spatie-laravel-health)[s-ichikawa/laravel-sendgrid-driver

This library adds a 'sendgrid' mail driver to Laravel.

4139.3M1](/packages/s-ichikawa-laravel-sendgrid-driver)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)[tzsk/sms

A robust and unified SMS gateway integration package for Laravel, supporting multiple providers.

320244.3k6](/packages/tzsk-sms)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[truckersmp/steam-socialite

Laravel Socialite provider for Steam OpenID.

1516.7k](/packages/truckersmp-steam-socialite)

PHPackages © 2026

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