שליחת קוד אימות (OTP) ב-SMS דרך API – תיעוד למפתחים

פורסם באוקטובר 2026

שליחת קוד אימות OTP ב-SMS דרך API - SMS4FREE
HTTPS אחד, JSON נכנס ו-JSON יוצא, בלי SDK חובה. הרשמה חינם עם 10 הודעות ניסיון.

בנית אתר או אפליקציה – אולי בעזרת Cursor, Lovable, Bolt, Replit, v0, Base44, Claude, ChatGPT, Gemini, n8n, Make וכדומה, או כל כלי אחר – ועכשיו צריך שהמשתמשים יאמתו את הטלפון? זה החלק הקל. אין SDK להתקין, אין חשבון מורכב לאשר, אין אנגלית טכנית לפענח: קריאה אחת לשרת שלנו, והקוד בטלפון של המשתמש תוך שניות. הרשמה חינם עם 10 הודעות ניסיון, בלי כרטיס אשראי.

ואם נתקעתם – יש כאן אנשים. שירות לקוחות אנושי, בעברית, בימים א׳–ה׳ 9:00–17:00: 072-256-9090. לא צ'אטבוט, לא כרטיס תמיכה באנגלית שנענה אחרי יומיים.

בונים עם AI?

אין צורך לקרוא את כל התיעוד. שלושה צעדים:

  1. העתיקו את הפרומפט מהחלון השחור.
  2. הדביקו אותו בכלי שבו אתם עובדים — Cursor, Lovable, Bolt, Claude, ChatGPT או כל כלי אחר.
  3. שימו את key, user ו-pass במשתני סביבה. ה-AI ייצור את שאר הקוד.
פרומפט להעתקה
הוסף לאפליקציה אימות טלפון ב-SMS (OTP) באמצעות SMS4FREE לפי התיעוד בכתובת
https://sms4free.co.il/docs/otp-api.html – צור קוד בן 6 ספרות עם תוקף 5 דקות,
שלח אותו דרך POST https://api.sms4free.co.il/ApiSMS/v2/SendSMS עם השדות
key, user, pass, sender, recipient, msg (JSON), ואמת את הקוד שהמשתמש מקליד.
קרא את key/user/pass ממשתני סביבה.

מחפשים הסבר עסקי (למה SMS, כמה זה עולה, מה החוק אומר)? – המאמר בבלוג עופריקס.

למפתחים – בקצרה

HTTPS אחד, JSON נכנס ו-JSON יוצא, בלי SDK חובה.

נקודת קצה
POST https://api.sms4free.co.il/ApiSMS/v2/SendSMS
Content-Type: application/json

1. איך עובד אימות ב-SMS (30 שניות)

  1. המשתמש מזין מספר נייד.
  2. השרת שלכם מייצר קוד אקראי (4–6 ספרות), שומר אותו עם תוקף (למשל 5 דקות) ומונה ניסיונות.
  3. השרת שולח את הקוד ב-SMS דרך ה-API של SMS4FREE (הקריאה שלמטה).
  4. המשתמש מקליד את הקוד; השרת משווה, מוחק את הקוד, ומסמן את המספר כמאומת.

הקוד נוצר ונבדק אצלכם. SMS4FREE מעביר את ההודעה. כך אתם שולטים בתוקף, בניסיונות ובנוסח – וכך זה נשאר פשוט.


2. אישורי גישה

פרמטרמה זהאיפה מוצאים
userמספר הנייד שאיתו נרשמתם (למשל 0501234567)–
passסיסמת החשבוןנשלחת במייל בהרשמה; ניתן לשנות באזור האישי
keyמפתח API אישיאזור אישי → "API"

אבטחה: אל תשימו את שלושת הערכים בקוד צד-לקוח (דפדפן / אפליקציה). הקריאה ל-API נעשית מהשרת שלכם בלבד. שמרו אותם במשתני סביבה.


3. שליחת קוד אימות – הקריאה

בקשה

POST /ApiSMS/v2/SendSMS HTTP/1.1
Host: api.sms4free.co.il
Content-Type: application/json

{
  "key":       "YOUR_API_KEY",
  "user":      "0501234567",
  "pass":      "YOUR_PASSWORD",
  "sender":    "MyApp",
  "recipient": "0541234567",
  "msg":       "קוד האימות שלך ל-MyApp הוא 482913. תקף ל-5 דקות."
}
שדהחובההערות
key, user, passכןראו סעיף 2
senderכן שם השולח שיופיע בטלפון. עם 10 ההודעות החינמיות – רק מספר הנייד שנרשמתם איתו (או מספר וירטואלי שלכם). אחרי רכישת חבילה – עד 11 תווים באנגלית ומספרים (בלי רווחים/פיסוק, למשל MyApp) או מספר מאומת. מספר שולח חדש דורש אימות ראשון דרך דף השליחה באתר. אם השדה ריק המערכת שולחת כ- ABC.
recipientכן מספר ישראלי. מתקבלים 05XXXXXXXX, 9725XXXXXXXX, +9725XXXXXXXX וגם 9 ספרות שמתחילות ב-5 (המערכת מנרמלת לפורמט מקומי). לכמה נמענים – מופרדים ב-; או ב-, (ל-OTP תמיד נמען אחד).
msgכןעד 134 תווים מחויב כהודעה אחת. כל מקטע נוסף של עד 67 תווים נוספים מחויב כהודעה נוספת.

תשובה

{ "status": 1, "message": "" }
statusמשמעות
מספר חיובימספר ההודעות שהתקבלו לשליחה (ל-OTP: 1)
0 או שלילישגיאה. message מכיל תיאור. ראו קודי שגיאה בסעיף 6

קוד HTTP 200 אינו אישור בפני עצמו – בדקו תמיד את status.


4. דוגמאות קוד

כל הדוגמאות שולחות את אותה הודעה. החליפו את האישורים במשתני סביבה.

using System.Net.Http.Json;
using System.Security.Cryptography;

public sealed class Sms4FreeOtp(HttpClient http)
{
    public async Task<string> SendAsync(string phone, CancellationToken ct = default)
    {
        var code = RandomNumberGenerator.GetInt32(100000, 1000000).ToString();
        var res = await http.PostAsJsonAsync("https://api.sms4free.co.il/ApiSMS/v2/SendSMS", new {
            key = Environment.GetEnvironmentVariable("SMS4FREE_API_KEY"),
            user = Environment.GetEnvironmentVariable("SMS4FREE_USER"),
            pass = Environment.GetEnvironmentVariable("SMS4FREE_PASS"),
            sender = "MyApp", recipient = phone,
            msg = $"קוד האימות שלך ל-MyApp הוא {code}. תקף ל-5 דקות."
        }, ct);
        var data = await res.Content.ReadFromJsonAsync<Sms4FreeResponse>(ct);
        if (data is null || data.status <= 0) throw new InvalidOperationException($"SMS4FREE error {data?.status}: {data?.message}");
        return code;
    }
    public sealed record Sms4FreeResponse(int status, string message);
}

5. בדיקת יתרה

תשובה: מספר שלם בגוף התשובה (לא אובייקט JSON) – כמות ההודעות הזמינות (למשל 9850). ערך שלילי = שגיאת אישורים (בדרך כלל -1).

using System.Net.Http.Json;

public sealed class Sms4FreeBalance(HttpClient http)
{
    public async Task<int> AvailableAsync(CancellationToken ct = default)
    {
        var res = await http.PostAsJsonAsync("https://api.sms4free.co.il/ApiSMS/AvailableSMS", new {
            key = Environment.GetEnvironmentVariable("SMS4FREE_API_KEY"),
            user = Environment.GetEnvironmentVariable("SMS4FREE_USER"),
            pass = Environment.GetEnvironmentVariable("SMS4FREE_PASS"),
        }, ct);
        var text = await res.Content.ReadAsStringAsync(ct);
        var balance = int.Parse(text);
        if (balance < 0) throw new InvalidOperationException($"SMS4FREE error {balance}");
        return balance;
    }
}

מומלץ להתריע אצלכם כשהיתרה יורדת מתחת לסף (למשל 500) – קוד אימות שלא נשלח = משתמש שלא נכנס.


6. קודי שגיאה

statusמשמעותמה לעשות
> 0ההודעה נשלחה בהצלחה אל מספר זה של נמענים—
0שגיאה כלליתלפנייה לשירות הלקוחות
-1מפתח, שם משתמש או סיסמה שגוייםמפתח ה־API / שם המשתמש / הסיסמה שהוזנו אינם תקינים
-2מזהה שולח (Sender) לא תקיןניתן לשנות את שם השולח רק לאחר רכישת חבילת SMS — לרכישה
-3לא נמצאו נמעניםיש להזין רשימת מספרי טלפון מופרדים בתו ;
-4לא ניתן לשלוח הודעה — יתרת הודעות פנויות נמוכהיש לרכוש חבילת SMS נוספת
-5הודעה לא מתאימהתוכן ההודעה אינו תקין לשליחה
-6מספר שולח לא עבר אימות ראשונייש לבצע אימות ע"י שליחת הודעה מדף השליחה — לאימות

7. מה שחשוב לדעת על OTP בישראל

  • זמן הגעה: שניות בודדות. הודעות API נשלחות בתור נפרד מקמפיינים, כך שקוד אימות לא ממתין מאחורי דיוור של 50,000 הודעות.
  • אורך: עד 134 תווים מחויב כהודעה אחת. כל מקטע נוסף של עד 67 תווים נוספים מחויב כהודעה נוספת. הודעת OTP סטנדרטית בעברית נכנסת בהודעה אחת – שמרו אותה קצרה.
  • טלפונים כשרים: המערכת מזהה מספר כשר אוטומטית וממירה לשיחה קולית שמקריאה את הקוד – בלי שינוי בקוד שלכם. אפשר גם לכפות המרה קולית לכל הנמענים עם "isVoice": true. אם ביטלתם שיחות קוליות בחשבון, הודעות למספרים כשרים לא יישלחו ולא יחויבו. פירוט חיוב: מספר וירטואלי לטלפון כשר ו- מחירון.
  • מילוי אוטומטי בדפדפן (WebOTP): כדי שהקוד יוכנס אוטומטית בכרום/אנדרואיד, סיימו את ההודעה בשורה @yourdomain.com #482913 ובטופס: <input autocomplete="one-time-code" inputmode="numeric">. מדריך גוגל.
  • הגנה מניצול לרעה (בצד שלכם): הגבלת קצב לכל מספר ולכל IP (למשל 3 קודים ל-10 דקות), תוקף 5 דקות, 5 ניסיונות הקלדה ואז קוד חדש, ואל תגלו בתשובה אם המספר קיים במערכת.
  • רגולציה: הודעת אימות שהמשתמש ביקש היא הודעת שירות, לא דיוור, ואינה דורשת הסכמה מראש לפי חוק התקשורת (תיקון 40). שם השולח חייב להיות מזוהה. ראו רגולציה 2020 לזיהוי שולח.

8. יכולות נוספות דרך ה-API

יכולתמצבפרטים
שליחה מרובת נמעניםזמין – recipient מופרד ב-; או ,–
שליחה מתוזמנתאותה נקודת קצה POST /ApiSMS/v2/SendSMSהוסיפו dateToSend (תאריך) ו-hourToSend (שעה). בלי שניהם – נשלח מייד.
דוחות מסירה (DLR / Webhook)זמין בשליחה העבירו returnUrl + usermsgid. אנחנו נשלח POST application/x-www-form-urlencoded לכתובת עם to, status, msgId. סטטוס נפוץ: 1 נמסר, 5 לא נמסר, 6 מספר כשר. סקירת API: שליחת SMS באמצעות API.
הודעות נכנסות / מספר וירטואליזמין במסלול מספר וירטואלי מגדירים כתובת הפניה במספר הווירטואלי; המערכת שולחת sender, receiver, msg. תיעוד: API להודעות נכנסות.
שם שולח דינמיאחרי רכישת חבילהעד 11 תווים באנגלית ומספרים, או מספר מאומת

9. התחלה ב-3 דקות

  1. הרשמה

    חינם, 10 הודעות, בלי כרטיס.

  2. העתיקו את ה-key

    אזור אישי → API → העתיקו את המפתח.

  3. שלחו הודעת ניסיון

    הריצו את דוגמת ה-cURL עם המספר שלכם.

יש לכם שאלה או בעיה?

אתם מוזמנים ליצור קשר כאן

או לחייג אלינו 072-256-9090


שאלות נפוצות

כמה זמן לוקח לקוד אימות להגיע?

שניות בודדות. הודעות API נשלחות בתור נפרד מקמפיינים, כך שקוד אימות לא ממתין מאחורי דיוור המוני.

כמה זה עולה?

ההרשמה חינם וכוללת 10 הודעות ניסיון. לאחר מכן רוכשים חבילת הודעות לפי המחירון באתר, ללא דמי מנוי.

האם זה עובד גם למשתמשים עם טלפון כשר?

כן. SMS4FREE מזהה מספר כשר וממיר את ההודעה לשיחה קולית שמקריאה את הקוד, בלי שינוי בקוד שלכם.

אני לא מתכנת – בניתי אפליקציה עם כלי AI. זה מתאים לי?

כן. העתיקו את הפרומפט שבראש הדף לכלי שבו בניתם, והוא ייצור את החיבור. ואם נתקעתם – שירות לקוחות אנושי בעברית, א׳–ה׳ 9:00–17:00.

איך הקוד מתמלא אוטומטית בטלפון?

סיימו את ההודעה בשורה @yourdomain.com #קוד ובטופס השתמשו ב-autocomplete="one-time-code" (תקן WebOTP).

דלג לתוכן הראשי