Nexmo / nexmo-laravel by SecondeJK

Laravel Package for Nexmo's PHP Client
Package Data
Maintainer Username: SecondeJK
Maintainer Contact: (James Seconde)
Package Create Date: 2016-07-20
Package Last Update: 2022-05-18
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2022-05-19 03:25:18
Package Statistics
Total Downloads: 2,065,631
Monthly Downloads: 53,623
Daily Downloads: 2,438
Total Stars: 300
Total Watchers: 43
Total Forks: 79
Total Open Issues: 12


This is a simple Laravel Service Provider providing access to the Nexmo PHP Client Library.


To install the PHP client library using Composer:

composer require nexmo/laravel

Alternatively, add these two lines to your composer require section:

    "require": {
        "nexmo/laravel": "^1.0"

Laravel 5.5+

If you're using Laravel 5.5 or above, the package will automatically register the Nexmo provider and facade.

Laravel 5.4 and below

Add Nexmo\Laravel\NexmoServiceProvider to the providers array in your config/app.php:

'providers' => [
    // Other service providers...


If you want to use the facade interface, you can use the facade class when needed:

use Nexmo\Laravel\Facade\Nexmo;

Or add an alias in your config/app.php:

'aliases' => [
    'Nexmo' => Nexmo\Laravel\Facade\Nexmo::class,

Using Nexmo-Laravel with Lumen

Nexmo-Laravel works with Lumen too! You'll need to do a little work by hand to get it up and running. First, install the package using composer:

composer require nexmo/laravel

Next, we have to tell Lumen that our library exists. Update bootstrap/app.php and register the NexmoServiceProvider:


Finally, we need to configure the library. Unfortunately Lumen doesn't support auto-publishing files so you'll have to create the config file yourself by creating a config directory and copying the config file out of the package in to your project:

mkdir config
cp vendor/nexmo/laravel/config/nexmo.php config/nexmo.php

At this point, set NEXMO_KEY and NEXMO_SECRET in your .env file and it should be working for you. You can test this with the following route:

$router->get('/', function () use ($router) {


You can use artisan vendor:publish to copy the distribution configuration file to your app's config directory:

php artisan vendor:publish

Then update config/nexmo.php with your credentials. Alternatively, you can update your .env file with the following:


Optionally, you could also set an application_id and private_key if required:



To use the Nexmo Client Library you can use the facade, or request the instance from the service container:

    'to'   => '14845551244',
    'from' => '16105552344',
    'text' => 'Using the facade to send a message.'


$nexmo = app('Nexmo\Client');

    'to'   => '14845551244',
    'from' => '16105552344',
    'text' => 'Using the instance to send a message.'

If you're using private key authentication, try making a voice call:

    'to' => [[
        'type' => 'phone',
        'number' => '14155550100'
    'from' => [
        'type' => 'phone',
        'number' => '14155550101'
    'answer_url' => [''],
    'event_url' => ['']

For more information on using the Nexmo client library, see the official client library repository.