Official PHP SDK for the Splashify Pro API — send WhatsApp messages, transactional emails, manage contacts and conversations, and fire Meta Conversions events from your PHP application (Laravel, Symfony, WordPress, plain PHP — all supported).
composer require splashifypro/sdkRequires PHP 8.1+.
-
Sign in to your Splashify Pro account at app.splashifypro.com. No account yet? Sign up free.
-
Open the Settings dialog (gear icon, top right) → click the Developer tile. Direct link: app.splashifypro.com/settings/developer
-
Under API Keys, click Generate Secret Key.
-
Copy the key shown (starts with
sk_live_…) and store it somewhere secure — it's shown only once. If you lose it, generate a new one and the old one stops working. -
Use it as the
SPLASHIFY_API_KEYenvironment variable in your app. Never commit it to git or paste it into client-side code — the key carries full account access.
Tip: Set up a webhook URL on the same page to receive delivery / read receipts and inbound message events.
The SDK uses HTTP Basic with the API key as the username:
<?php
require 'vendor/autoload.php';
use Splashifypro\Configuration;
use Splashifypro\Api\MessagesApi;
use GuzzleHttp\Client;
$config = Configuration::getDefaultConfiguration()
->setUsername(getenv('SPLASHIFY_API_KEY'));
$messages = new MessagesApi(new Client(), $config);$result = $messages->publicMessagePost([
'type' => 'Text',
'countryCode' => '+91',
'phoneNumber' => '9999999999',
'data' => ['message' => 'Hi! Thanks for reaching out 👋'],
]);
echo $result['id']; // message_id — use to poll status / correlate webhooks$messages->publicMessagePost([
'type' => 'Template',
'countryCode' => '+91',
'phoneNumber' => '9999999999',
'template' => [
'name' => 'order_confirmation',
'languageCode' => 'en',
'bodyValues' => ['Sayan', 'ORD-1042', '₹1,499'],
'buttonValues' => ['0' => ['https://shop.example.com/orders/1042']],
],
]);Requires a verified sender domain. Set up at https://app.splashifypro.com/settings/email-domain.
use Splashifypro\Api\EmailApi;
$email = new EmailApi(new Client(), $config);
$email->publicEmailSendPost([
'to' => 'customer@example.com',
'subject' => 'Your receipt for Order #1042',
'html' => '<h1>Thanks!</h1><p>Order #1042 confirmed.</p>',
'text' => 'Thanks! Order #1042 confirmed.',
'from_email' => 'billing@yourdomain.com',
'from_name' => 'Acme Inc.',
]);| Class | What it does |
|---|---|
MessagesApi |
Send WhatsApp messages (text, template, media, interactive) |
EmailApi |
Send transactional + templated emails |
ContactsApi |
List + filter contacts |
ConversationsApi |
Assign chats to team members |
MetaConversionsApi |
Fire Meta Pixel / Conversions API events |
Full reference, request/response shapes, and per-endpoint examples: https://docs.splashifypro.com/public-api
// In a service or controller
use Splashifypro\Configuration;
use Splashifypro\Api\MessagesApi;
use GuzzleHttp\Client;
class WhatsAppService
{
private MessagesApi $messages;
public function __construct()
{
$config = Configuration::getDefaultConfiguration()
->setUsername(config('services.splashifypro.key'));
$this->messages = new MessagesApi(new Client(), $config);
}
public function sendOtp(string $phone, string $code): void
{
$this->messages->publicMessagePost([
'type' => 'Template',
'phoneNumber' => $phone,
'template' => [
'name' => 'verification_code',
'languageCode' => 'en',
'bodyValues' => [$code],
],
]);
}
}Add to config/services.php:
'splashifypro' => [
'key' => env('SPLASHIFY_API_KEY'),
],use Splashifypro\ApiException;
try {
$result = $messages->publicMessagePost([...]);
} catch (ApiException $e) {
error_log("HTTP " . $e->getCode() . ": " . $e->getResponseBody());
}Per-key limits depend on your plan tier. Hitting the limit returns HTTP 429 —
the response body includes Retry-After. Tier and current consumption are
visible at https://app.splashifypro.com/settings/developer.
- Issues / bug reports: github.com/splashifypro/sdk-php/issues
- Documentation: docs.splashifypro.com/public-api
- Email support: support@splashifypro.in
This SDK is auto-generated from the official OpenAPI specification. Pull requests for SDK-side improvements (typing, ergonomic wrappers, framework adapters, etc.) are welcome; underlying API changes should be filed against the documentation site.