انتقل للمحتوى

رسائل API

TOGETHER SMS / DEVELOPERS

خلّي تطبيقك يتواصل مع عملائك برسالة SMS.

اربط موقعك أو نظام شركتك بخدمة SMS API في مصر. أرسل رسائل التحقق والتنبيهات والمتابعات باسم شركتك، من الأحداث التي تحصل داخل تطبيقك.

HTTPS GETUTF-8رد نصي واضح
BALANCE REQUEST / EXAMPLE
GET /sendsms.php
  ?user=YOUR_USERNAME
  &password=YOUR_PASSWORD
  &action=get

Host: togethersms.com
3956.00مثال توضيحي لرد الرصيد، وليس بيانات حساب حقيقي.

ONE API. USEFUL CUSTOMER MOMENTS.

رسالة في الوقت المناسب، من داخل نظامك.

اختَر الحدث في تطبيقك، وجهّز الرسالة المناسبة، واترك لنظامك إرسالها عبر الربط البرمجي.

01

التحقق من أرقام الهواتف

أرسل رمز التحقق من تطبيقك، مع إدارة صلاحيته وعدد المحاولات داخل تطبيقك.

02

الفواتير والأقساط

ذكّر عميلك بالمبلغ والموعد وخطوة السداد التالية.

03

الطلبات والشحنات

اربط أحداث الطلب برسائل متابعة مفيدة للعميل.

04

المواعيد والحجوزات

قلّل نسيان المواعيد برسالة تذكير في الوقت المناسب.

05

نقاط الولاء

عرّف العميل برصيده أو مكافآته عند حدوث تغيّر في نظامك.

06

متابعات تسويقية

أرسل رسائل مناسبة لمن وافقوا على استقبالها.

START WITH A BALANCE CHECK

ابدأ بخطوات واضحة، قبل أول رسالة.

١. فعّل حسابك واسم المرسل

تواصل معنا لاستكمال بيانات الشركة والمستندات، والحصول على بيانات الربط واسم مرسل معتمد.

٢. اربط من السيرفر

احفظ بيانات الدخول في إعدادات آمنة على سيرفرك، ثم جرّب الاستعلام عن الرصيد.

٣. اختبر رسالة واحدة

استخدم رقم اختبار تملكه واسم المرسل المعتمد، ثم راجع القبول والتكلفة ووصول الرسالة.

نقطة الاتصال للربط الجديد

https://togethersms.com/sendsms.php

للاستعلام عن الرصيد: أرسل user وpassword وaction=get. الرد الصحيح قيمة رقمية نصية، وقد تتضمن كسورًا.

cURL / BALANCE
# Run on your server; load secrets from your environment.
curl --get 'https://togethersms.com/sendsms.php' \
  --connect-timeout 10 --max-time 20 \
  --data-urlencode "user=${TOGETHER_SMS_USER}" \
  --data-urlencode "password=${TOGETHER_SMS_PASSWORD}" \
  --data-urlencode 'action=get'

# Sending is a separate request. Use an approved test recipient.
# Add numbers, sender, message and lang; omit action=get.
الربط يتم من السيرفر فقط. لا تضع كلمة المرور داخل المتصفح أو تطبيق الموبايل، ولا تسجّل رابط الطلب الذي يحتوي عليها.

HTTP API REFERENCE

المعاملات والردود، بدون تخمين.

إرسال الرسائل يستخدم طلب HTTPS GET بمعاملات في الرابط. الجدول التالي خاص بطلب الإرسال؛ action=get مخصص لاستعلام الرصيد.

المعاملالقيمة المطلوبة
userاسم مستخدم حساب الـAPI.
passwordكلمة مرور حساب الـAPI؛ تحفظ على السيرفر.
numbersرقم دولي أو أرقام مفصولة بفواصل، بدون + أو مسافات.
senderاسم المرسل المعتمد والمفعّل لحسابك.
messageنص الرسالة UTF-8، مع ترميز كل قيمة مرة واحدة.
langen للإنجليزية، وar للعربية أو Unicode.
SEND REQUEST / PLACEHOLDERS
GET /sendsms.php?user=YOUR_USERNAME&password=YOUR_PASSWORD
    &numbers=YOUR_AUTHORIZED_TEST_NUMBER
    &sender=YOUR_APPROVED_SENDER
    &message=Your%20order%20is%20ready&lang=en
Host: togethersms.com

الأسطر السابقة للتوضيح؛ الطلب الفعلي رابط واحد. استخدم مكتبة HTTP لترميز القيم، واستبدل رقم الاختبار برقم تملكه.

اقرأ الرد كاملًا

الرد النصيالمعنى والخطوة التالية
1تم قبول الطلب؛ ليس تأكيد وصول للموبايل.
1:201001234567قبول مع قائمة أرقام؛ تحقق من صيغة الرد كاملة.
0رفض عام للطلب.
Invalid loginراجع بيانات الحساب بصورة آمنة.
Missing or Empty Fieldراجع المعاملات المطلوبة.
Insufficient Balanceراجع الرصيد والنقاط المطلوبة.
Invalid Senderراجع اسم المرسل المعتمد.
Sender name is not activatedاسم المرسل يحتاج استكمال التفعيل.
Invalid Message Languageراجع lang وترميز النص.
HTTP 200 وحده لا يعني نجاح الإرسال. الرد غير المعروف أو انتهاء المهلة نتيجة غير معروفة؛ راجع العملية قبل المحاولة مجددًا لتجنب التكرار.

BACKEND EXAMPLES

ابدأ باللغة التي يستخدمها فريقك.

أمثلة الاستعلام عن الرصيد تستخدم متغيرات بيئة لبيانات الدخول. لا تنفّذ الصفحة أي طلبات API نيابةً عنك.

cURL

cURL / BALANCE
# Run on your server; load secrets from your environment.
curl --get 'https://togethersms.com/sendsms.php' \
  --connect-timeout 10 --max-time 20 \
  --data-urlencode "user=${TOGETHER_SMS_USER}" \
  --data-urlencode "password=${TOGETHER_SMS_PASSWORD}" \
  --data-urlencode 'action=get'

# Sending is a separate request. Use an approved test recipient.
# Add numbers, sender, message and lang; omit action=get.

Node.js

Node.js / BALANCE
// Backend only. Never expose provider credentials in a browser.
const query = new URLSearchParams({
  user: process.env.TOGETHER_SMS_USER,
  password: process.env.TOGETHER_SMS_PASSWORD,
  action: 'get'
});
const response = await fetch(
  'https://togethersms.com/sendsms.php?' + query,
  { redirect: 'error', signal: AbortSignal.timeout(20000) }
);
const body = (await response.text()).trim();
if (!response.ok || !/^[0-9]+(?:\.[0-9]+)?$/.test(body)) {
  throw new Error('Balance request was not accepted');
}
// Keep decimal precision; do not log the request URL.

PHP

PHP / BALANCE
<?php
// Backend only. Secrets come from your deployment environment.
$query = http_build_query(array(
  'user' => getenv('TOGETHER_SMS_USER'),
  'password' => getenv('TOGETHER_SMS_PASSWORD'),
  'action' => 'get'
), '', '&', PHP_QUERY_RFC3986);
$ch = curl_init('https://togethersms.com/sendsms.php?' . $query);
curl_setopt_array($ch, array(
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_FOLLOWLOCATION => false,
  CURLOPT_CONNECTTIMEOUT => 10,
  CURLOPT_TIMEOUT => 20
));
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($body === false || $status < 200 || $status >= 300 ||
    !preg_match('/\A[0-9]+(?:\.[0-9]+)?\z/', trim($body))) {
  throw new RuntimeException('Balance request was not accepted');
}

Python

Python / BALANCE
# Backend only. Requires the requests package.
import os
import re
import requests

response = requests.get(
    'https://togethersms.com/sendsms.php',
    params={
        'user': os.environ['TOGETHER_SMS_USER'],
        'password': os.environ['TOGETHER_SMS_PASSWORD'],
        'action': 'get'
    },
    timeout=(10, 20),
    allow_redirects=False
)
body = response.text.strip()
if not (200 <= response.status_code < 300 and
        re.fullmatch(r'[0-9]+(?:\.[0-9]+)?', body)):
    raise RuntimeError('Balance request was not accepted')
# Timeout values are connect/read timeouts, not a strict total deadline.

C# / .NET

C# / .NET / BALANCE
// Backend only. Use a supported .NET runtime.
using var handler = new HttpClientHandler { AllowAutoRedirect = false };
using var client = new HttpClient(handler) {
    Timeout = TimeSpan.FromSeconds(20)
};
string user = Environment.GetEnvironmentVariable("TOGETHER_SMS_USER")!;
string password = Environment.GetEnvironmentVariable("TOGETHER_SMS_PASSWORD")!;
string url = "https://togethersms.com/sendsms.php?user=" +
    Uri.EscapeDataString(user) + "&password=" +
    Uri.EscapeDataString(password) + "&action=get";
using var response = await client.GetAsync(url);
string body = (await response.Content.ReadAsStringAsync()).Trim();
if (!response.IsSuccessStatusCode ||
    !System.Text.RegularExpressions.Regex.IsMatch(
        body, @"\A[0-9]+(?:\.[0-9]+)?\z")) {
    throw new InvalidOperationException("Balance request was not accepted");
}
Flutter وتطبيقات الموبايل: التطبيق يتصل بسيرفرك، وسيرفرك يتصل بـTogether SMS. تفاصيل الحماية والتعامل مع النتائج موجودة في الدليل.

DEVELOPER DOCUMENTATION / ENGLISH

دليل يحتفظ به فريقك ويرجع له وقت الحاجة.

مرجع الطلبات والردود، وأمثلة الربط، والتعامل مع الأخطاء، وخطوات الانتقال إلى العنوان الجديد.

PDF · v1.2 · 06 Nov 2026
تحميل دليل API بالإنجليزية
للعملاء المستخدمين للرابط القديم
https://sms.masrbokra.com/sendsms.php
موعد الانتقال المستهدف: 30 يونيو 2027. احتفظ بباقي المعاملات كما هي، واختبر بيانات حسابك والردود قبل تحديث بيئة الإنتاج. تابع إشعاراتنا لتأكيد خطة الإيقاف.

أسئلة يهم فريقك يعرف إجاباتها.

هل أضع بيانات الـAPI داخل تطبيق الموبايل؟

لا. تطبيق Flutter أو الويب يتصل بسيرفرك، وسيرفرك فقط يحتفظ ببيانات حساب SMS ويتصل بالبوابة.

هل الرد 1 يعني أن العميل استلم الرسالة؟

يعني قبول الطلب من البوابة. هذا العقد لا يوفّر تأكيد وصول للموبايل أو نقطة اتصال موثقة لتقارير التسليم.

ماذا أفعل لو انتهت مهلة طلب الإرسال؟

اعتبر النتيجة غير معروفة، وراجعها قبل الإرسال مجددًا. ربما استلمت البوابة الطلب بالفعل؛ إعادة المحاولة تلقائيًا قد تكرر الرسائل.

هل يمكن جدولة الرسائل من هذا الـAPI؟

الدليل المرفق لا يوثّق معاملًا للجدولة. يمكن لتطبيقك إدارة التوقيت؛ خصائص لوحة الموقع لا تعني تلقائيًا توافرها بنفس الشكل في الـAPI.

كم رقمًا أرسل في الطلب الواحد؟

يدعم العقد قائمة أرقام مفصولة بفواصل، لكن حدود العدد وطول الرابط ومعدل الطلبات تحتاج تأكيدًا مع فريقنا قبل الحملات الكبيرة.

هل الرابط القديم سيتوقف فورًا؟

لا. موعد الانتقال المستهدف هو 30 يونيو 2027. اختبر الرابط الجديد، وتابع إشعارات فريقنا قبل تغيير بيئة الإنتاج.

LET'S CONNECT YOUR BUSINESS

عندك تطبيق جاهز؟ نساعدك تبدأ الربط.

احكي لنا عن استخدامك، ونراجع معك تفعيل اسم المرسل ومتطلبات البداية.