PHPackages                             sms-proxima/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. [Mail &amp; Notifications](/categories/mail)
4. /
5. sms-proxima/sdk

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

sms-proxima/sdk
===============

Official PHP SDK for the SMS Proxima API — send SMS, track delivery receipts and manage blacklists

v1.2.0(1mo ago)0111MITPHPPHP &gt;=7.4

Since Mar 3Pushed 1mo agoCompare

[ Source](https://github.com/SMS-Proxima/sms-proxima-php-sdk)[ Packagist](https://packagist.org/packages/sms-proxima/sdk)[ Docs](https://sms-proxima.com/api-sms)[ RSS](/packages/sms-proxima-sdk/feed)WikiDiscussions main Synced today

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

SMS Proxima PHP SDK
===================

[](#sms-proxima-php-sdk)

SDK PHP officiel pour l'[API SMS Proxima](https://sms-proxima.com/api-sms).

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

[](#installation)

```
composer require sms-proxima/sdk
```

**Prérequis :** PHP &gt;= 7.4, extensions `curl` et `json`.

---

Démarrage rapide
----------------

[](#démarrage-rapide)

```
use SmsProxima\SmsProxima;

$sms = new SmsProxima('VOTRE_TOKEN');

// Envoyer un SMS
$result = $sms->send('33612345678', 'BOUTIQUE', 'Votre commande est confirmée.');

echo $result['ticket'];  // api-42-1712345678
echo $result['credits']; // crédits restants
```

---

Utilisation
-----------

[](#utilisation)

### Test de connexion

[](#test-de-connexion)

```
$response = $sms->ping();
// ['message' => 'Authentifié avec succès', 'user' => [...]]
```

### Crédits disponibles

[](#crédits-disponibles)

```
$credits = $sms->credits(); // int
```

### Envoi SMS

[](#envoi-sms)

```
// Envoi simple
$sms->send('33612345678', 'EXPEDITEUR', 'Votre message');

// Envoi multiple — même message pour tous
$sms->send(['33612345678', '33687654321'], 'EXPEDITEUR', 'Votre message');

// Envoi multiple — message personnalisé par destinataire
// Les messages doivent être finalisés avant d'appeler le SDK
// (toute substitution de variables est à faire en amont)
$sms->send(
    ['33612345678', '33687654321'],
    'BOUTIQUE',
    ['Bonjour Marie, votre offre vous attend !', 'Bonjour Paul, votre offre vous attend !']
);

// Avec options
$sms->send('33612345678', 'EXPEDITEUR', 'Votre message', [
    'stop'           => 1,                 // Mention STOP (défaut : 1)
    'timeToSend'     => '2026-03-15 10:00', // Envoi programmé
    'sandbox'        => 1,                 // Mode test (aucun SMS envoyé, aucun crédit débité)
    'ucs2'           => 1,                 // Encodage Unicode — requis pour les emojis et caractères non latins
    'idempotencyKey' => 'uuid-v4-ici',     // Anti double-envoi
]);
```

> **Note `ucs2` :** Sans ce paramètre, un message contenant des emojis ou des caractères non latins (arabe, cyrillique…) retournera une erreur `INVALID_ENCODING`. La capacité par segment passe de 160 à 70 caractères (67 en multi-segments).

### Comptage de caractères

[](#comptage-de-caractères)

```
$count = $sms->count('Mon message');
// ['nb_sms' => 1, 'nb_caracteres' => 147]
```

### Historique des campagnes

[](#historique-des-campagnes)

```
$campaigns = $sms->campaigns();
$campaigns = $sms->campaigns(2); // page 2
```

### Accusés de réception par destinataire

[](#accusés-de-réception-par-destinataire)

```
$deliveries = $sms->deliveries('api-42-1712345678');
// Retourne la liste paginée des AR reçus pour ce ticket
```

### Blacklist

[](#blacklist)

```
// Lister
$list = $sms->getBlacklist();

// Ajouter
$sms->addToBlacklist('33612345678');

// Supprimer (impossible si le numéro a répondu STOP)
$sms->removeFromBlacklist('33612345678');
```

---

Gestion des erreurs
-------------------

[](#gestion-des-erreurs)

```
use SmsProxima\SmsProxima;
use SmsProxima\Exceptions\AuthenticationException;
use SmsProxima\Exceptions\ConflictException;
use SmsProxima\Exceptions\InsufficientCreditsException;
use SmsProxima\Exceptions\InvalidSenderException;
use SmsProxima\Exceptions\MobileBlacklistedException;
use SmsProxima\Exceptions\ValidationException;
use SmsProxima\Exceptions\SmsProximaException;

try {
    $result = $sms->send('33612345678', 'BOUTIQUE', 'Votre commande est confirmée.');

} catch (InsufficientCreditsException $e) {
    echo 'Crédits insuffisants. Disponibles : ' . $e->getAvailableCredits();
    echo ' / Requis : ' . $e->getRequiredCredits();

} catch (AuthenticationException $e) {
    echo 'Clé API invalide ou compte non validé.';

} catch (MobileBlacklistedException $e) {
    echo 'Numéro en liste noire (STOP reçu).';

} catch (InvalidSenderException $e) {
    echo 'Expéditeur invalide : ' . $e->getMessage();

} catch (ConflictException $e) {
    // Ex : numéro déjà en blacklist (HTTP 409)
    echo 'Conflit : ' . $e->getMessage();

} catch (ValidationException $e) {
    echo 'Erreur de validation : ' . $e->getMessage();
    print_r($e->getErrors());

} catch (SmsProximaException $e) {
    echo 'Erreur API : ' . $e->getMessage();
    echo ' (code : ' . $e->getApiCode() . ')';
}
```

---

Webhook — accusés de réception
------------------------------

[](#webhook--accusés-de-réception)

Configurez votre URL webhook depuis votre [espace API](https://sms-proxima.com/dashboard/api). SMS Proxima enverra un `POST JSON` sur votre endpoint à chaque accusé de réception.

**Exemple de payload reçu :**

```
{
  "version": "v1",
  "event": "delivery.receipt",
  "event_id": "1711175235",
  "emitted_at": "2026-03-01T10:00:00+00:00",
  "campaign_id": 1234,
  "message": {
    "to": "33612345678"
  },
  "delivery": {
    "status": "delivered",
    "status_code": "0",
    "error_code": "000",
    "received_at": "2026-03-01T09:59:55+00:00"
  }
}
```

**Votre endpoint doit répondre HTTP 2xx dans les 6 secondes.**En cas d'échec, la requête est rejouée jusqu'à 8 fois sur 24h. Utilisez `event_id` pour détecter les doublons éventuels.

---

Changelog
---------

[](#changelog)

### v1.2.0

[](#v120)

- `send()` : `$message` accepte désormais `string|array` pour les envois personnalisés (un message par destinataire)
- `send()` : ajout de l'option `ucs2` pour les emojis et caractères non latins
- Nouvelle exception `ConflictException` pour les erreurs HTTP 409 (ex : numéro déjà en blacklist)
- Gestion explicite des erreurs HTTP 400 (requête malformée)

### v1.1.0

[](#v110)

- Ajout des méthodes `deliveries()`, `campaigns()`, `getBlacklist()`, `addToBlacklist()`, `removeFromBlacklist()`
- Exceptions typées : `InvalidSenderException`, `MobileBlacklistedException`

### v1.0.0

[](#v100)

- Version initiale : `send()`, `credits()`, `ping()`, `count()`

---

Licence
-------

[](#licence)

MIT — voir [LICENSE](LICENSE)

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance90

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 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

Every ~36 days

Total

3

Last Release

50d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/72754815?v=4)[Laurent Martinolle](/maintainers/SMS-Proxima)[@SMS-Proxima](https://github.com/SMS-Proxima)

---

Top Contributors

[![SMS-Proxima](https://avatars.githubusercontent.com/u/72754815?v=4)](https://github.com/SMS-Proxima "SMS-Proxima (5 commits)")

---

Tags

apifrancenotificationsphpsdksmsphpapinotificationsmsproxima

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[gr8shivam/laravel-sms-api

A modern, flexible Laravel package for integrating any SMS gateway with REST API support

10240.5k](/packages/gr8shivam-laravel-sms-api)[joetannenbaum/phpushbullet

PHP API wrapper for Pushbullet.

3048.4k4](/packages/joetannenbaum-phpushbullet)[ghasedak/php

ghasedak sms gateway package for PHP

2045.5k7](/packages/ghasedak-php)[ghanem/laravel-smsmisr

Send SMS and SMS Notification via SMS Misr for Laravel

205.0k](/packages/ghanem-laravel-smsmisr)

PHPackages © 2026

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