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

ActiveLibrary[API Development](/categories/api)

verixo/sdk
==========

Official PHP SDK for the Verixo OTP-as-a-Service API

v0.1.1(1mo ago)00MITPHP &gt;=8.1

Since Jun 22Compare

[ Source](https://github.com/titicodes/verixo-php)[ Packagist](https://packagist.org/packages/verixo/sdk)[ Docs](https://verifiedcore.com)[ RSS](/packages/verixo-sdk/feed)WikiDiscussions Synced 2w ago

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

verixo/sdk
==========

[](#verixosdk)

Official PHP SDK for the [Verixo](https://verifiedcore.com) OTP-as-a-Service API.

Install
-------

[](#install)

```
composer require verixo/sdk
```

Quickstart
----------

[](#quickstart)

```
use Verixo\Client;

$vc = new Client(getenv('VC_API_KEY'));

$result = $vc->numbers->search([
    'serviceSlug' => 'whatsapp',
    'countryCode' => 'NG',
    'minScore'    => 80,
    'limit'       => 5,
]);

$session = $vc->numbers->purchase([
    'serviceSlug' => 'whatsapp',
    'countryCode' => 'NG',
]);

$vc->subscribe($session->sessionToken, function ($push) {
    echo "OTP: {$push->otp} in {$push->latencyMs}ms\n";
});
```

Note: `purchase()` takes `serviceSlug` + `countryCode`, not a specific `numberId` -- the server picks the best available number by Health Score at purchase time, since a candidate returned by `search()` could already be gone by the time you'd reference it back.

### `subscribe()` is synchronous, unlike the Node/Python SDKs

[](#subscribe-is-synchronous-unlike-the-nodepython-sdks)

PHP scripts typically run to completion rather than holding an event loop open, so `subscribe()` **blocks** the calling script until the OTP arrives or `$timeoutSeconds` elapses (default 90s) -- it doesn't return an unsubscribe handle. It returns the `OtpPush` (also passed to your callback), or `null` on timeout.

Polling instead of real-time push
---------------------------------

[](#polling-instead-of-real-time-push)

```
$result = $vc->sessions->waitForOtp($session->sessionToken, timeoutSeconds: 90);
if ($result->status === 'DELIVERED') {
    echo $result->otpCode;
}
```

Errors
------

[](#errors)

All non-2xx responses throw `Verixo\Exception\VerixoException` with `->status`, and usually `->errorCode`/`->detail` from the API's error body:

```
use Verixo\Exception\VerixoException;

try {
    $vc->numbers->purchase(['serviceSlug' => 'whatsapp', 'countryCode' => 'NG']);
} catch (VerixoException $e) {
    if ($e->status === 402) {
        echo "Insufficient wallet balance\n";
    }
}
```

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

[](#requirements)

PHP 8.1+, with the `curl` and `json` extensions (both enabled by default in most PHP installs).

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

[](#development)

```
composer install
composer exec phpstan analyse   # static analysis, level 8
php examples/quickstart.php     # requires VC_API_KEY env var, see file header
```

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance91

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

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 ~0 days

Total

2

Last Release

45d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9696e4fee2755920a87b7645c5cd9c3df175011ebaf176e84d13ede3d23be754?d=identicon)[titicodes](/maintainers/titicodes)

---

Tags

otpsms verificationphone verificationverixo

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/verixo-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/verixo-sdk/health.svg)](https://phpackages.com/packages/verixo-sdk)
```

PHPackages © 2026

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