kimulisiraj / sms-speeda-mobile-php
Send SMS using speed mobile api
Fund package maintenance!
kimulisiraj
Installs: 1 423
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 2
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.9
- pestphp/pest: ^1.21
- pestphp/pest-plugin-mock: ^1.0
This package is auto-updated.
Last update: 2025-07-14 00:02:29 UTC
README
This is where your description should go. Try and limit it to a paragraph or two. Consider adding a small example.
Installation
You can install the package via composer:
composer require kimulisiraj/sms-speeda-mobile-php
Usage
Send single message
$client = new \Kimulisiraj\SmsSpeedaMobile\SmsSpeedaMobile( apiKey:"your-username", apiSecret: "your-password", ); $response = $client->send( to: 2567xxxxxxxx, mesage:'Hello, Kimulisiraj!' ) return $response;
From the response you can access:
$response->getStatus(); // OK | FAILED $response->getMessage(); // Message sent successfully $response->hasError(); // true | false $response->getMessageId(); // I.E 12345
Chaining
$client = Kimulisiraj\SmsSpeedaMobile::config([ 'apiKey' => 'your-api-key', //You can set and use env('SPEEDAMOBILE_SMS_API_ID') 'apiPassword' => 'your-api-password', ////You can set and use env('SPEEDAMOBILE_SMS_API_PASSWORD') ]); $response = $client->mesage('Hello, Kimulisiraj!') ->to('2567xxxxxxxx') ->send(); return $response
Query Delivery Report / Message Status
$client = new \Kimulisiraj\SmsSpeedaMobile\SmsSpeedaMobile( apiKey:"your-username", apiSecret: "your-password" ); $response = $client->messageStatus( messageId: 'xxxxxxx' //Message ID You Received at The Time of Submit E.G 4234 ); return response()->json([ 'messageId' => $response->getMessageId(), 'phoneNumber' => $response->getPhoneNumber(), 'messageBody' => $response->getMessageBody(), 'MessageType' => $response->getMessageType(), 'messageLength' => $response->getMessageLength(), 'messageParts' => $response->getMessageParts(), 'messageCost' => $response->getMessageCost(), 'deliveryStatus' => $response->getDeliveryStatus(), 'uniqueId' => $response->getUniqueId(), 'errorCode' => $response->getErrorCode(), 'errorDescription' => $response->getErrorDescription(), 'sentDateTime' => $response->getSentDateTime(), 'remarks' => $response->getRemarks(), ]);
From the response you can access:
$response->getMessageId(), // Message ID of the request $response->getPhoneNumber(), // Phone Number to which message was sent $response->getMessageBody(), // Text of the SMS message $response->getMessageType(), // Message Encoding $response->getMessageLength(), // Length of Message $response->getMessageParts(), // No of Message parts $response->getMessageCost(), // Amount Deducted from account $response->getDeliveryStatus(), // Delivery Status Can Be One Of the following (Pending, Delivered, Undeliverable, Acknowledged, Expired, Accepted, Rejected, Unknown, Failed, DND) $response->getUniqueId(), // Carrier Generated SMS ID $response->getErrorCode(), // Error Code If Any $response->getErrorDescription(), // Error Description If Any $response->getSentDateTime(), // SMS Sent Date Time in UTC (Universal TimeCoordinate) $response->getRemarks(), // Remarks for the Request
Get balance
$client = new \Kimulisiraj\SmsSpeedaMobile\SmsSpeedaMobile( apiKey:"your-username", apiSecret: "your-password", ); $client->getBalance(); // ['BalanceAmount' => 1000, 'CurrenceCode' => 'UGX'],
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.