The official PHP SDK for the seven.io SMS Gateway API
Documentation β’ API Reference β’ Support β’ Dashboard
composer require seven.io/apiDownload the latest release as ZIP file and include it in your project.
<?php
require 'vendor/autoload.php';
use Seven\Api\Client;
use Seven\Api\Resource\Sms\SmsParams;
use Seven\Api\Resource\Sms\SmsResource;
// Initialize the client with your API key
$client = new Client('YOUR_API_KEY');
// Create SMS resource
$smsResource = new SmsResource($client);
// Send SMS
$response = $smsResource->dispatch(
    new SmsParams('Hello from seven.io!', '+491234567890')
);
echo "SMS sent successfully! ID: " . $response->getMessages()[0]->getId();- β Send SMS to single or multiple recipients
- β Bulk SMS support
- β Flash SMS
- β Unicode support
- β Delivery reports
- β Schedule messages
- β Text-to-Speech calls
- β Voice message broadcasts
- β HLR (Home Location Register) lookup
- β Number format validation
- β Carrier information
- β Number portability check
- β Balance inquiry
- β Pricing information
- β Webhook management
- β Contact management
- β Analytics & Journal
$params = (new SmsParams('Your message here', '+491234567890'))
    ->setFrom('YourBrand')
    ->setUnicode(true)
    ->setFlash(false);
    
$response = $smsResource->dispatch($params);$params = new SmsParams(
    'Bulk message to multiple recipients',
    ['+491234567890', '+491234567891', '+491234567892']
);
$response = $smsResource->dispatch($params);$params = (new SmsParams('Scheduled message', '+491234567890'))
    ->setDelay(new \DateTime('+1 hour'));
    
$response = $smsResource->dispatch($params);use Seven\Api\Resource\Lookup\LookupResource;
$lookupResource = new LookupResource($client);
$result = $lookupResource->hlr('+491234567890');
echo "Carrier: " . $result->getCarrier();
echo "Country: " . $result->getCountry();use Seven\Api\Resource\Balance\BalanceResource;
$balanceResource = new BalanceResource($client);
$balance = $balanceResource->get();
echo "Current balance: β¬" . $balance->getAmount();use Seven\Api\Resource\Voice\VoiceResource;
use Seven\Api\Resource\Voice\VoiceParams;
$voiceResource = new VoiceResource($client);
$params = new VoiceParams('+491234567890', 'Hello, this is a test call');
$response = $voiceResource->call($params);$client = new Client(
    apiKey: 'YOUR_API_KEY',
    signingSecret: 'YOUR_SIGNING_SECRET'
);use Seven\Api\Exception\InvalidApiKeyException;
use Seven\Api\Exception\InsufficientBalanceException;
try {
    $response = $smsResource->dispatch($params);
} catch (InvalidApiKeyException $e) {
    echo "Invalid API key provided";
} catch (InsufficientBalanceException $e) {
    echo "Not enough balance to send SMS";
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}Run the test suite with your API credentials:
# Using production API key
SEVEN_API_KEY=your_api_key php vendor/bin/phpunit tests
# Using sandbox API key
SEVEN_API_KEY_SANDBOX=your_sandbox_key php vendor/bin/phpunit tests# Test only SMS functionality
php vendor/bin/phpunit tests/SmsTest.php
# Test with verbose output
php vendor/bin/phpunit tests --verboseThe SDK provides access to all seven.io API endpoints:
| Resource | Description | 
|---|---|
| AnalyticsResource | Analytics and statistics | 
| BalanceResource | Account balance | 
| ContactsResource | Contact management | 
| HooksResource | Webhook management | 
| JournalResource | Message history | 
| LookupResource | Number lookup & validation | 
| PricingResource | Pricing information | 
| RcsResource | RCS messaging | 
| SmsResource | SMS messaging | 
| StatusResource | Delivery reports | 
| SubaccountsResource | Subaccount management | 
| ValidateForVoiceResource | Voice number validation | 
| VoiceResource | Voice calls | 
| Variable | Description | 
|---|---|
| SEVEN_API_KEY | Your production API key | 
| SEVEN_API_KEY_SANDBOX | Your sandbox API key for testing | 
| SEVEN_SIGNING_SECRET | Webhook signing secret | 
- PHP 8.1 or higher
- Composer (for installation)
- ext-curl
- ext-json
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
- π API Documentation
- π¬ Contact Support
- π Report Issues
- π‘ Feature Requests
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ by seven.io