Send SMS from your application using the Esendex API

v2.1.0 2017-04-27 08:56 UTC


Build Status Latest Stable Version Latest Unstable Version License



  • PHP >= 5.3.0
  • ext-curl enabled

The esendex-php-sdk is available to install through several methods as well as from source.


    "require": {
        "esendex/sdk": "2.*.*"

Composer is not included within the repository, so you will need to retrieve it using the following command:

curl -sS | php

For installation on other platforms see

We're in the default Packagist repository so just run

$ php composer.phar require esendex/sdk:2.*.*

or add the package above to your composer.json

Then just include the generated autoload.php somewhere in your code;

require_once 'path/to/vendor/autoload.php';


Our package requires version 1.9.3 or newer

$ pear config-set auto_discover 1
$ pear install

We provide a PSR-0 autoloader you can use for your convenience;

require_once 'Esendex/autoload.php';


Download the current version here

Our autoloader may be included somewhere in your application;

require_once 'path/to/downloaded/Esendex/autoload.php';

Getting Started

Sending SMS

$message = new \Esendex\Model\DispatchMessage(
    "WebApp", // Send from
    "01234567890", // Send to any valid number
    "My Web App is SMS enabled!",
$authentication = new \Esendex\Authentication\LoginAuthentication(
    "EX000000", // Your Esendex Account Reference
    "", // Your login email address
    "password" // Your password
$service = new \Esendex\DispatchService($authentication);
$result = $service->send($message);

print $result->id();
print $result->uri();

Retrieving Inbox Messages

$authentication = new \Esendex\Authentication\LoginAuthentication(
    "EX000000", // Your Esendex Account Reference
    "", // Your login email address
    "password" // Your password
$service = new \Esendex\InboxService($authentication);

$result = $service->latest();

print "Total Inbox Messages: {$result->totalCount()}";
print "Fetched: {$result->count()}";
foreach ($result as $message) {
    print "Message from: {$message->originator()}, {$message->summary()}";

Track Message Status

$authentication = new \Esendex\Authentication\LoginAuthentication(
    "EX000000", // Your Esendex account reference
    "", // Your login email
    "password" // Your password
$headerService = new \Esendex\MessageHeaderService($authentication);
$message = $headerService->message("messageId");

Retrieving Full Message Body

$messageId = "unique-id-of-message";
$authentication = new \Esendex\Authentication\LoginAuthentication(
    "EX000000", // Your Esendex Account Reference
    "", // Your login email address
    "password" // Your password
$service = new \Esendex\MessageBodyService($authentication);

$result = $service->getMessageBodyById($messageId);

print $result;

Would you like to know more?

Full REST API documentation can be found @


Unit Tests

You will need to install composer in order to acquire the pre-requisites. This can be achieved by the following command:

$ curl -sS | php

To retrieve said pre-requisites execute the following:

$ composer.phar install

A suite of tests can be found in the test directory. To run them use the phing build utility. e.g.

$ php vendor/bin/phing

Credentials Test

You can check your account credentials using a phing task we have provided. First, ensure dependencies have been installed with composer:

$ composer.phar install

Run the check-access script:

$ vendor/bin/phing check-access
Buildfile: /home/developer/esendex-php-sdk/build.xml

EsendexSDK > check-access:

Esendex Username ?
Esendex Password ? secret
Account Reference? EX000000

    Account credentials OK!


Total time: 10.0000 seconds


We hope you don't run into any issues but if you should please make use of the issue tracker on github or send an email to


Let us know what you think @esendex