sms77/api

This package is abandoned and no longer maintained. The author suggests using the seven.io/api package instead.

Official API Client for requesting the seven.io messaging Gateway.

v7.0.0 2025-07-15 20:14 UTC

README

seven.io PHP SDK

Latest Stable Version Total Downloads License PHP Version

The official PHP SDK for the seven.io SMS Gateway API

Documentation โ€ข API Reference โ€ข Support โ€ข Dashboard

๐Ÿ“ฆ Installation

Via Composer (recommended)

composer require seven.io/api

Manual Installation

Download the latest release as ZIP file and include it in your project.

๐Ÿš€ Quick Start

Send your first SMS

<?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();

๐Ÿ“ฑ Features

SMS Messaging

  • โœ… Send SMS to single or multiple recipients
  • โœ… Bulk SMS support
  • โœ… Flash SMS
  • โœ… Unicode support
  • โœ… Delivery reports
  • โœ… Schedule messages

Voice Calls

  • โœ… Text-to-Speech calls
  • โœ… Voice message broadcasts

Number Lookup

  • โœ… HLR (Home Location Register) lookup
  • โœ… Number format validation
  • โœ… Carrier information
  • โœ… Number portability check

Other Features

  • โœ… Balance inquiry
  • โœ… Pricing information
  • โœ… Webhook management
  • โœ… Contact management
  • โœ… Analytics & Journal

๐Ÿ’ป Usage Examples

Send SMS with custom sender

$params = (new SmsParams('Your message here', '+491234567890'))
    ->setFrom('YourBrand')
    ->setUnicode(true)
    ->setFlash(false);
    
$response = $smsResource->dispatch($params);

Send bulk SMS

$params = new SmsParams(
    'Bulk message to multiple recipients',
    ['+491234567890', '+491234567891', '+491234567892']
);

$response = $smsResource->dispatch($params);

Schedule SMS for later

$params = (new SmsParams('Scheduled message', '+491234567890'))
    ->setDelay(new \DateTime('+1 hour'));
    
$response = $smsResource->dispatch($params);

Perform HLR lookup

use Seven\Api\Resource\Lookup\LookupResource;

$lookupResource = new LookupResource($client);
$result = $lookupResource->hlr('+491234567890');

echo "Carrier: " . $result->getCarrier();
echo "Country: " . $result->getCountry();

Check account balance

use Seven\Api\Resource\Balance\BalanceResource;

$balanceResource = new BalanceResource($client);
$balance = $balanceResource->get();

echo "Current balance: โ‚ฌ" . $balance->getAmount();

Text-to-Speech call

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);

๐Ÿ”ง Advanced Configuration

Initialize with signing secret (for webhook validation)

$client = new Client(
    apiKey: 'YOUR_API_KEY',
    signingSecret: 'YOUR_SIGNING_SECRET'
);

Error Handling

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();
}

๐Ÿงช Testing

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

Run specific tests

# Test only SMS functionality
php vendor/bin/phpunit tests/SmsTest.php

# Test with verbose output
php vendor/bin/phpunit tests --verbose

๐Ÿ“š API Resources

The 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

๐Ÿ”‘ Environment Variables

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

๐Ÿ“„ Requirements

  • PHP 8.1 or higher
  • Composer (for installation)
  • ext-curl
  • ext-json

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ†˜ Support

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

Made with โค๏ธ by seven.io