رمز تحقق عند الطلب
ساعد العميل يكمل إنشاء الحساب أو تأكيد الدخول برمز يطلبه من تطبيقك.
TOGETHER SMS · SMS API في مصر
اربط تطبيقك أو متجرك بخدمة SMS API في مصر، واجعل أحداث نظامك تتحول إلى رسائل واضحة لعملائك: رمز دخول، تأكيد طلب، تذكير موعد أو متابعة شحنة. ربط HTTPS من السيرفر، ورصيد واحد لخدمة API والرسائل الجماعية.
الفكرة ببساطة
الرسائل الخدمية تجعل المعلومة المهمة في مكان يسهل الرجوع إليه. يحدد نظامك المستلم والنص والتوقيت؛ وتستدعي البوابة لإرسال الرسالة. تطبيقك يظل مسؤولًا عن إنشاء رمز OTP وصلاحيته وحدود المحاولات.
ابدأ من احتياج نشاطك
ساعد العميل يكمل إنشاء الحساب أو تأكيد الدخول برمز يطلبه من تطبيقك.
أبلغ العميل بتأكيد الطلب أو بحالة السداد المسجلة بالفعل في نظامك.
شارك تحديث الشحنة عندما يسجّل نظامك تغيير حالتها، مع الخطوة التالية.
أرسل تذكيرًا بموعد الزيارة أو انتهاء الاشتراك من جدول تطبيقك.
من الفكرة للرسالة
بعد تأكيد الطلب داخل المتجر، يستدعي السيرفر خدمة SMS لإرسال ملخص قصير. اذكر رقم الطلب والخطوة التالية، وتجنب إرسال كلمات مرور أو بيانات دفع في الرسالة.
خطوات واضحة
نراجع المستندات ونستكمل اعتماد اسم المرسل قبل الإرسال باسمه.
يحفظ فريقك بيانات الدخول على السيرفر ويبدأ باستعلام الرصيد.
اختبر على رقم تملكه وراجع الرد والنقاط ووصول الرسالة.
اربط الأحداث المناسبة بالرسائل وتابع النتائج دون إعادة تلقائية عند نتيجة مجهولة.
التكلفة قبل القرار
تفعيل اسم المرسل مرة واحدة لخدمتي Bulk SMS وAPI، ثم اختيار باقة الرصيد. لا تخلط رسوم التفعيل مع تكلفة الرسائل المستهلكة.
2,150 جنيه
غير شامل 14% ضريبة؛ الإجمالي 2,451 جنيه.
الهدية بعد الاعتماد والتفعيل وفق العرض، للاستخدام عبر API أو Bulk SMS.
استخدم نفس رصيد الحساب من نظامك عبر API أو من لوحة الرسائل الجماعية. الحد الأدنى لشراء الرصيد 1000 وحدة.
| الوحدات | السعر بالجنيه | للوحدة |
|---|---|---|
| 1,000 | 270 | 0.270 |
| 5,000 | 1,350 | 0.270 |
| 10,000 | 2,650 | 0.265 |
| 20,000 | 5,200 | 0.260 |
| 50,000 | 12,750 | 0.255 |
| 100,000 | 25,000 | 0.250 |
| 150,000 | 36,750 | 0.245 |
الأسعار غير شاملة 14% ضريبة. الجزء الواحد لكل مستلم يستهلك وحدة؛ الرسائل الطويلة والترميز قد يغيران عدد الوحدات.
قبل ما تبدأ
نعم، الربط يتم من السيرفر باستخدام مكتبة HTTP في لغة فريقك. نوفر دليلًا وأمثلة cURL وPHP وNode.js وPython وC#، ويمكن إرسال الحملات من لوحة Bulk SMS دون برمجة.
الرصيد واحد على الحساب، وهدية 1000 رسالة تضاف بعد اعتماد اسم المرسل وتفعيل الخدمة وفق العرض.
كل جزء من الرسالة لكل مستلم يستهلك وحدة. راجع اللغة والطول قبل الإرسال؛ النص العربي حتى 70 حرفًا والإنجليزي GSM-7 حتى 160 حرفًا في الجزء الواحد، وقد تغيّر الرموز والترميز عدد الأجزاء.
TOGETHER SMS
أرسل نوع التطبيق، الاستخدام المتوقع وحجم الرسائل التقريبي. نراجع التفعيل والباقة ونوجه فريقك إلى دليل الربط المناسب.
START WITH A BALANCE CHECK
تواصل معنا لاستكمال بيانات الشركة والمستندات، والحصول على بيانات الربط واسم مرسل معتمد.
احفظ بيانات الدخول في إعدادات آمنة على سيرفرك، ثم جرّب الاستعلام عن الرصيد.
استخدم رقم اختبار تملكه واسم المرسل المعتمد، ثم راجع القبول والتكلفة ووصول الرسالة.
https://togethersms.com/sendsms.phpللاستعلام عن الرصيد: أرسل user وpassword وaction=get. الرد الصحيح قيمة رقمية نصية، وقد تتضمن كسورًا.
# 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، مع ترميز كل قيمة مرة واحدة. |
lang | en للإنجليزية، وar للعربية أو Unicode. |
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 وترميز النص. |
BACKEND EXAMPLES
أمثلة الاستعلام عن الرصيد تستخدم متغيرات بيئة لبيانات الدخول. لا تنفّذ الصفحة أي طلبات API نيابةً عنك.
# 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.// 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
// 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');
}# 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.// 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");
}DEVELOPER DOCUMENTATION / ENGLISH
مرجع الطلبات والردود، وأمثلة الربط، والتعامل مع الأخطاء، وخطوات الانتقال إلى العنوان الجديد.
PDF · v1.2 · 06 Nov 2026لا. تطبيق Flutter أو الويب يتصل بسيرفرك، وسيرفرك فقط يحتفظ ببيانات حساب SMS ويتصل بالبوابة.
يعني قبول الطلب من البوابة. هذا العقد لا يوفّر تأكيد وصول للموبايل أو نقطة اتصال موثقة لتقارير التسليم.
اعتبر النتيجة غير معروفة، وراجعها قبل الإرسال مجددًا. ربما استلمت البوابة الطلب بالفعل؛ إعادة المحاولة تلقائيًا قد تكرر الرسائل.
الدليل المرفق لا يوثّق معاملًا للجدولة. يمكن لتطبيقك إدارة التوقيت؛ خصائص لوحة الموقع لا تعني تلقائيًا توافرها بنفس الشكل في الـAPI.
يدعم العقد قائمة أرقام مفصولة بفواصل، لكن حدود العدد وطول الرابط ومعدل الطلبات تحتاج تأكيدًا مع فريقنا قبل الحملات الكبيرة.
لا. موعد الانتقال المستهدف هو 30 يونيو 2027. اختبر الرابط الجديد، وتابع إشعارات فريقنا قبل تغيير بيئة الإنتاج.
LET'S CONNECT YOUR BUSINESS
احكي لنا عن استخدامك، ونراجع معك تفعيل اسم المرسل ومتطلبات البداية.