SMS senden simulieren (Testumgebung)
Diese Schnittstelle simuliert die Antwort der API auf den SMS Versand, überträgt aber keine SMS ins Mobilfunknetz und verursacht keine Kosten. Die Schnittstelle kann zum Testen im Integrationsprozess verwendet werden. Der Parameter uuid hat immer den Rückgabewert 11111111-2222-3333-4444-55555555555. Die Daten werden bei LOX24 nicht gespeichert, dadurch ist eine Abfrage der übertragenen Daten mit GET /sms/{id} nicht möglich. DLR Zustellberichte werden wie für richtige SMS an Ihre URL oder Mail zurückübertragen, wobei der Status 0 ist.
Authorizations
Abschnitt betitelt „Authorizations “Request Body required
Abschnitt betitelt „Request Body required “The new sms resource
SMS
object
Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8.
Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist.
Für Sprachnachrichten (text2speech, text2speech_ssml): Wenn sender_id nicht dem E.164-Format entspricht (z. B. fehlendes führendes +, nicht-numerische Zeichen), wird die Nachricht von der Systemstandardnummer +493075435114 gesendet. Einige nachgelagerte Telefonieanbieter können die benutzerdefinierte Absenderrufnummer überschreiben oder nicht berücksichtigen — die tatsächlich beim Empfänger angezeigte Rufnummer hängt von den Fähigkeiten des Anbieters ab.
Zielrufnummer:
- +491701234567 (E.164)
- 00491701234567
- 491701234567
- 01701234567 (wenn Ihr Account in Deutschland registriert ist) wird es konvertiert zu +491701234567
Wenn Sie Ihre Rufnummer nicht im E.164 Format übertragen, versucht unser System die Rufnummer anhand Ihres Firmensitzes aus Ihren Profildaten in E.164 Format zu konvertieren. Um Probleme bei der automatischen Konvertierung zu vermeiden, nutzen Sie bitte bevorzugt das E.164 Format.
Um Ihre SMS später besser im Einzelverbindungsnachweis identifizieren zu können, gibt es die Möglichkeit eine individuelle nummerische (integer) ID mitzugeben.
Definiert ob Sie eine normale GSM 03.38 SMS oder eine Unicode SMS verschicken möchten:
- GSM: is_unicode = false
- Unicode: is_unicode = true
- Auto-Detect: is_unicode = NULL
Sprache der Sprachnachricht. Mögliche Werte: null (automatische Erkennung) oder einer der folgenden Codes: EN (Englisch), DE (Deutsch), FR (Französisch), IT (Italienisch), ES (Spanisch), PL (Polnisch), NL (Niederländisch), RO (Rumänisch), PT (Portugiesisch), CS (Tschechisch), HU (Ungarisch), SV (Schwedisch), DA (Dänisch), FI (Finnisch), SK (Slowakisch), HR (Kroatisch), TR (Türkisch), RU (Russisch), BG (Bulgarisch), UK (Ukrainisch).
Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen.
Maximale Anzahl an Zustellversuchen für Sprachdienste (text2speech, text2speech_ssml). Zulässige Werte: null, 1, 2 oder 3 für text2speech/text2speech_ssml; für andere Dienste muss der Wert null sein.
Examples
Einfache SMS-Nachricht
Beispiel einer einfachen SMS-Nachricht mit nur erforderlichen Feldern
{ "text": "Hallo! Das ist eine Test-SMS.", "sender_id": "+491701234567", "phone": "+14155552671"}Sprachnachricht mit Klartext
Beispiel einer Text-zu-Sprache Sprachnachricht mit Klartextinhalt
{ "text": "Hallo, diese Nachricht wird in Sprache umgewandelt und als Sprachanruf zugestellt.", "sender_id": "+491701234567", "phone": "+14155552671", "service_code": "text2speech", "voice_lang": "EN"}Sprachnachricht mit SSML
Beispiel für Text-zu-Sprache mit SSML-Markup für erweiterte Sprachsynthese
{ "text": "<speak>Ihr Bestätigungscode ist <say-as interpret-as=\"characters\">A1B2C3</say-as>.<break time=\"1s\"/>Bitte geben Sie ihn jetzt ein.</speak>", "sender_id": "+491701234567", "phone": "+14155552671", "service_code": "text2speech", "voice_lang": "EN"}Unicode-SMS-Nachricht
Beispiel einer SMS mit Unicode-Zeichen (Emojis, Sonderzeichen, nicht-lateinische Schriften)
{ "text": "\\ud83c\\udf89 Willkommen! Welcome! \\u6b22\\u8fce\\u5149\\u4e34! \\u0645\\u0631\\u062d\\u0628\\u0627 \\u0628\\u0643\\u0645!", "sender_id": "+491701234567", "phone": "+14155552671", "is_unicode": true}Transliterierte Nachricht
Beispiel einer Nachricht mit Transliteration von nicht-GSM Zeichen zu einer reinen GSM SMS (siehe Antwortbeispiel)
{ "text": "Nicht alle Sonderzeichen sind im GSM Zeichensatz enthalten, z.B. nur das richtige Apostroph: Anna's Auto geht, aber nicht Max`s Haus. Akzente gehen teilweise: André, jedoch nicht alle: Háns. Normale Bindestriche - gehen, nicht allerdings längere: –", "sender_id": "Test", "phone": "+14155552671", "is_unicode": false}Nachricht mit Textlöschung
Beispiel einer SMS, bei der der Nachrichtentext nach der Zustellung aus Sicherheits-/Datenschutzgründen gelöscht wird
{ "text": "Ihr Bestätigungscode lautet: 123456. Diese Nachricht wird nach der Zustellung gelöscht.", "sender_id": "+491701234567", "phone": "+14155552671", "is_text_deleted": true}SMS mit Callback-Daten
Beispiel einer SMS mit Callback-Daten für Zustellstatusbenachrichtigungen und individuelles Tracking
{ "text": "Ihre Bestellung #12345 wurde versandt und ist unterwegs!", "sender_id": "+491701234567", "phone": "+14155552671", "callback_data": "order_12345_shipping_notification"}Responses
Abschnitt betitelt „ Responses “Sms resource created
SMS
object
JSON-LD ID
JSON-LD type
Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8.
Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist.
Für Sprachnachrichten (text2speech, text2speech_ssml): Wenn sender_id nicht dem E.164-Format entspricht (z. B. fehlendes führendes +, nicht-numerische Zeichen), wird die Nachricht von der Systemstandardnummer +493075435114 gesendet. Einige nachgelagerte Telefonieanbieter können die benutzerdefinierte Absenderrufnummer überschreiben oder nicht berücksichtigen — die tatsächlich beim Empfänger angezeigte Rufnummer hängt von den Fähigkeiten des Anbieters ab.
Zielrufnummer:
- +491701234567 (E.164)
- 00491701234567
- 491701234567
- 01701234567 (wenn Ihr Account in Deutschland registriert ist) wird es konvertiert zu +491701234567
Wenn Sie Ihre Rufnummer nicht im E.164 Format übertragen, versucht unser System die Rufnummer anhand Ihres Firmensitzes aus Ihren Profildaten in E.164 Format zu konvertieren. Um Probleme bei der automatischen Konvertierung zu vermeiden, nutzen Sie bitte bevorzugt das E.164 Format.
Unix-timestamp einer zeitversetzten SMS. Wenn gleich 0, wird die SMS sofort verschickt.
Status der SMS, für mehr Informationen: SMS status codes
Timestamp der Übertragung der SMS an den Netzbetreiber
Um Ihre SMS später besser im Einzelverbindungsnachweis identifizieren zu können, gibt es die Möglichkeit eine individuelle nummerische (integer) ID mitzugeben.
IP-Adresse des Hosts, der die Anfrage gesendet hat
Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde
Definiert ob Sie eine normale GSM 03.38 SMS oder eine Unicode SMS verschicken möchten:
- GSM: is_unicode = false
- Unicode: is_unicode = true
- Auto-Detect: is_unicode = NULL
Eindeutige Entitäts-UUID
Ländercode
Sprache der Sprachnachricht. Mögliche Werte: null (automatische Erkennung) oder einer der folgenden Codes: EN (Englisch), DE (Deutsch), FR (Französisch), IT (Italienisch), ES (Spanisch), PL (Polnisch), NL (Niederländisch), RO (Rumänisch), PT (Portugiesisch), CS (Tschechisch), HU (Ungarisch), SV (Schwedisch), DA (Dänisch), FI (Finnisch), SK (Slowakisch), HR (Kroatisch), TR (Türkisch), RU (Russisch), BG (Bulgarisch), UK (Ukrainisch).
Anzahl der SMS Teile
Anzahl der SMS Zeichen
Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen.
Bulk ID
API-Schlüssel-Kennung
Service code definiert ob Sie eine text2speech oder direct sms verschicken. Wir empfehlen direct sms für eine sichere Zustellung (see /me)
Löschen von Nachrichtentext nach Zustellung der SMS
Preis
True - SMS wurde bereits versendet, False - SMS wurde noch nicht versendet
Link zu allen Anfragen über eine SMS-Liste
Link zur Zählung der Anfrage durch einen kurzen Link
Maximale Anzahl an Zustellversuchen für Sprachdienste (text2speech, text2speech_ssml). Zulässige Werte: null, 1, 2 oder 3 für text2speech/text2speech_ssml; für andere Dienste muss der Wert null sein.
Examples
Basic sms Message response
API response for a successfully request with minimum parameters
{ "@context": "/contexts/sms", "@id": "/sms/11111111-2222-3333-4444-555555555555", "@type": "sms", "text": "Hello! This is a test SMS message.", "sender_id": "+19388888025", "phone": "+14155552671", "delivery_at": 0, "status_code": 0, "gateway_sent_at": 0, "source": 0, "dlr_code": 0, "ip": "10.1.1.1", "created_at": 1755868416, "is_unicode": false, "uuid": "11111111-2222-3333-4444-555555555555", "iso2": "US", "voice_lang": null, "parts_count": 1, "chars_count": 34, "callback_data": null, "bulk_id": null, "key_id": 8291, "service_code": "direct", "is_text_deleted": false, "price": 0.056, "is_sent": false, "requests": "/sms/11111111-2222-3333-4444-555555555555/requests", "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"}Transliterated message response
API response for a successfully sent transliterated SMS message
{ "@context": "/contexts/sms", "@id": "/sms/11111111-2222-3333-4444-555555555555", "@type": "sms", "text": "Nicht alle Sonderzeichen sind im GSM Zeichensatz enthalten, z.B. nur das richtige Apostroph: Anna's Auto geht, aber nicht Max's Haus. Akzente gehen teilweise: André, jedoch nicht alle: Hans. Normale Bindestriche - gehen, nicht allerdings längere: -", "sender_id": "Test", "phone": "+491701234567", "delivery_at": 0, "status_code": 100, "gateway_sent_at": 1755780931, "source": 0, "dlr_code": 16, "ip": "1.1.1.1", "created_at": 1755780931, "is_unicode": false, "uuid": "11111111-2222-3333-4444-555555555555", "iso2": "DE", "voice_lang": "DE", "parts_count": 2, "chars_count": 248, "callback_data": null, "bulk_id": null, "key_id": 200100, "service_code": "direct", "is_text_deleted": false, "price": 0.13, "is_sent": true, "requests": "/sms/11111111-2222-3333-4444-555555555555/requests", "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"}Message with text deletion response
API response for a successfully sent SMS with text deletion enabled
{ "@context": "/contexts/sms", "@id": "/sms/11111111-2222-3333-4444-555555555555", "@type": "sms", "text": "", "sender_id": "USSender", "phone": "+14155552671", "delivery_at": 0, "status_code": 100, "gateway_sent_at": 1755783151, "source": 0, "dlr_code": 0, "ip": "10.1.1.1", "created_at": 1755783151, "is_unicode": false, "uuid": "11111111-2222-3333-4444-555555555555", "iso2": "US", "voice_lang": null, "parts_count": 1, "chars_count": 79, "callback_data": null, "bulk_id": null, "key_id": 8207, "service_code": "direct", "is_text_deleted": true, "price": 0.07, "is_sent": true, "requests": "/sms/11111111-2222-3333-4444-555555555555/requests", "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"}SMS
object
Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8.
Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist.
Für Sprachnachrichten (text2speech, text2speech_ssml): Wenn sender_id nicht dem E.164-Format entspricht (z. B. fehlendes führendes +, nicht-numerische Zeichen), wird die Nachricht von der Systemstandardnummer +493075435114 gesendet. Einige nachgelagerte Telefonieanbieter können die benutzerdefinierte Absenderrufnummer überschreiben oder nicht berücksichtigen — die tatsächlich beim Empfänger angezeigte Rufnummer hängt von den Fähigkeiten des Anbieters ab.
Zielrufnummer:
- +491701234567 (E.164)
- 00491701234567
- 491701234567
- 01701234567 (wenn Ihr Account in Deutschland registriert ist) wird es konvertiert zu +491701234567
Wenn Sie Ihre Rufnummer nicht im E.164 Format übertragen, versucht unser System die Rufnummer anhand Ihres Firmensitzes aus Ihren Profildaten in E.164 Format zu konvertieren. Um Probleme bei der automatischen Konvertierung zu vermeiden, nutzen Sie bitte bevorzugt das E.164 Format.
Unix-timestamp einer zeitversetzten SMS. Wenn gleich 0, wird die SMS sofort verschickt.
Status der SMS, für mehr Informationen: SMS status codes
Timestamp der Übertragung der SMS an den Netzbetreiber
Um Ihre SMS später besser im Einzelverbindungsnachweis identifizieren zu können, gibt es die Möglichkeit eine individuelle nummerische (integer) ID mitzugeben.
IP-Adresse des Hosts, der die Anfrage gesendet hat
Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde
Definiert ob Sie eine normale GSM 03.38 SMS oder eine Unicode SMS verschicken möchten:
- GSM: is_unicode = false
- Unicode: is_unicode = true
- Auto-Detect: is_unicode = NULL
Eindeutige Entitäts-UUID
Ländercode
Sprache der Sprachnachricht. Mögliche Werte: null (automatische Erkennung) oder einer der folgenden Codes: EN (Englisch), DE (Deutsch), FR (Französisch), IT (Italienisch), ES (Spanisch), PL (Polnisch), NL (Niederländisch), RO (Rumänisch), PT (Portugiesisch), CS (Tschechisch), HU (Ungarisch), SV (Schwedisch), DA (Dänisch), FI (Finnisch), SK (Slowakisch), HR (Kroatisch), TR (Türkisch), RU (Russisch), BG (Bulgarisch), UK (Ukrainisch).
Anzahl der SMS Teile
Anzahl der SMS Zeichen
Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen.
Bulk ID
API-Schlüssel-Kennung
Service code definiert ob Sie eine text2speech oder direct sms verschicken. Wir empfehlen direct sms für eine sichere Zustellung (see /me)
Löschen von Nachrichtentext nach Zustellung der SMS
Preis
True - SMS wurde bereits versendet, False - SMS wurde noch nicht versendet
Link zu allen Anfragen über eine SMS-Liste
Link zur Zählung der Anfrage durch einen kurzen Link
Maximale Anzahl an Zustellversuchen für Sprachdienste (text2speech, text2speech_ssml). Zulässige Werte: null, 1, 2 oder 3 für text2speech/text2speech_ssml; für andere Dienste muss der Wert null sein.
Examples
Basic sms Message response
API response for a successfully request with minimum parameters
{ "text": "Hello! This is a test SMS message.", "sender_id": "+19388888025", "phone": "+14155552671", "delivery_at": 0, "status_code": 0, "gateway_sent_at": 0, "source": 0, "dlr_code": 0, "ip": "10.1.1.1", "created_at": 1755868416, "is_unicode": false, "uuid": "11111111-2222-3333-4444-555555555555", "iso2": "US", "voice_lang": null, "parts_count": 1, "chars_count": 34, "callback_data": null, "bulk_id": null, "key_id": 8291, "service_code": "direct", "is_text_deleted": false, "price": 0.056, "is_sent": false, "requests": "/sms/11111111-2222-3333-4444-555555555555/requests", "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"}Antwort auf transliterierte Nachricht
API-Antwort für eine erfolgreich gesendete transliterierte SMS-Nachricht
{ "text": "Nicht alle Sonderzeichen sind im GSM Zeichensatz enthalten, z.B. nur das richtige Apostroph: Anna's Auto geht, aber nicht Max's Haus. Akzente gehen teilweise: André, jedoch nicht alle: Hans. Normale Bindestriche - gehen, nicht allerdings längere: -", "sender_id": "Test", "phone": "+491701234567", "delivery_at": 0, "status_code": 100, "gateway_sent_at": 1755780931, "source": 0, "dlr_code": 16, "ip": "1.1.1.1", "created_at": 1755780931, "is_unicode": false, "uuid": "11111111-2222-3333-4444-555555555555", "iso2": "DE", "voice_lang": "DE", "parts_count": 2, "chars_count": 248, "callback_data": null, "bulk_id": null, "key_id": 200100, "service_code": "direct", "is_text_deleted": false, "price": 0.13, "is_sent": true, "requests": "/sms/11111111-2222-3333-4444-555555555555/requests", "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"}Antwort auf Nachricht mit Textlöschung
API-Antwort für eine erfolgreich gesendete SMS mit aktivierter Textlöschung
{ "text": "", "sender_id": "USSender", "phone": "+14155552671", "delivery_at": 0, "status_code": 100, "gateway_sent_at": 1755783151, "source": 0, "dlr_code": 0, "ip": "10.1.1.1", "created_at": 1755783151, "is_unicode": false, "uuid": "11111111-2222-3333-4444-555555555555", "iso2": "US", "voice_lang": null, "parts_count": 1, "chars_count": 79, "callback_data": null, "bulk_id": null, "key_id": 8207, "service_code": "direct", "is_text_deleted": true, "price": 0.07, "is_sent": true, "requests": "/sms/11111111-2222-3333-4444-555555555555/requests", "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"}Ungültige Eingabe
Kunden-Nr oder API Key sind ungültig oder inaktiv!
Account ist noch nicht innerhalb von 24h nach Registrierung aktiviert. Bitte warten oder Support kontaktieren
Die Anfrage war korrekt formatiert, konnte aber aufgrund semantischer Fehler nicht verarbeitet werden
Die IP-Adresse wurde vorübergehend blockiert, da in kurzer Zeit viele Anfragen mit ungültigen Anmeldeinformationen gesendet wurden. Bitte warten Sie und versuchen Sie es später.
Code Samples
#!/usr/bin/env bashcurl -X POST https://api.lox24.eu/sms/dryrun \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx' \ -d '{ "sender_id": "My Sender", "phone": "+49751234567", "source": 111, "service_code": "direct", "text": "Test message", "delivery_at": 1573724611, "is_unicode": true, "callback_data": "123456", "voice_lang": "DE"}'using Newtonsoft.Json;using Newtonsoft.Json.Linq;using System;using System.IO;using System.Net;using System.Text;
namespace Lox24.Api{ class client { static void Main() { string key = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"; string url = "https://api.lox24.eu/sms/dryrun";
var data = new { sender_id = "My Sender", text = "Test message", service_code = "direct", phone = "+49751234567", delivery_at = 1573724611, is_unicode = true, voice_lang = "DE" };
string postdata = JsonConvert.SerializeObject(data);
Console.WriteLine("Post data: {0}", postdata);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); httpWebRequest.ReadWriteTimeout = 100000; httpWebRequest.ContentType = "application/json; charset=utf-8"; httpWebRequest.Accept = "application/json"; // or application/ld+json httpWebRequest.Method = "POST"; httpWebRequest.KeepAlive = true; httpWebRequest.Headers.Add("X-LOX24-AUTH-TOKEN", key); httpWebRequest.Credentials = CredentialCache.DefaultNetworkCredentials;
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(postdata); streamWriter.Flush(); streamWriter.Close(); } try { using (HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse()) { if(resp.StatusCode == HttpStatusCode.Created) { Console.WriteLine("Success:{0} {1}", (int)resp.StatusCode, "sms resource created in dryrun mode"); } else { Console.WriteLine("Error: wrong response code {0} on create sms", (int)resp.StatusCode); }
Stream respStream = resp.GetResponseStream(); using (StreamReader sr = new StreamReader(respStream, Encoding.UTF8)) { string responseText = sr.ReadToEnd(); Console.WriteLine("responseText : {0}", responseText); } }
} catch (System.Net.WebException ex) { var webResponse = ex.Response as System.Net.HttpWebResponse; Console.WriteLine("Error:{0}", webResponse.StatusCode);
switch (webResponse.StatusCode) { case HttpStatusCode.BadRequest: // 400 Console.WriteLine("Error:400 Invalid input"); break; case HttpStatusCode.Unauthorized: // 401 Console.WriteLine("Error:401 Client ID or API key isn't active or invalid!"); break; case HttpStatusCode.Forbidden: // 403 Console.WriteLine("Error:403 Account isn't activated. Please wait or contact to support!"); break; case HttpStatusCode.InternalServerError: // 500 case HttpStatusCode.BadGateway: //502 case HttpStatusCode.ServiceUnavailable: // 503 case HttpStatusCode.GatewayTimeout: // 504 Console.WriteLine("System error! Please contact to LOX24 support!"); break; } } } }package main
import ( "bytes" "encoding/json" "fmt" "io/ioutil" "log" "net/http")
func main() {
const Method = "POST" const URL = "https://api.lox24.eu/sms/dryrun" const Token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"
payload := map[string]interface{}{ "sender_id": "My Sender", "phone": "+49751234567", "source": 111, "service_code": "direct", "text": "Test message", "delivery_at": 1593724611, "is_unicode": true, "voice_lang": "DE", }
jsonPayload, _ := json.Marshal(payload)
client := &http.Client{}
req, err := http.NewRequest(Method, URL, bytes.NewBuffer(jsonPayload)) if err != nil { log.Fatal(err) }
req.Header.Add("X-LOX24-AUTH-TOKEN", Token) req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req) if err != nil { log.Fatal(err) }
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body) if err != nil { log.Fatal(err) }
switch res.StatusCode { case 201: fmt.Println((string(body))) case 400: fmt.Println("Error: code = 400 - Invalid input") case 401: fmt.Println("Error: code = 401 - Client ID or API key isn't active or invalid!") case 403: fmt.Println("Error: code = 403 - Account isn't activated. Please wait or contact to support!") default: fmt.Printf("Error: code = %d\n", res.StatusCode) }}package eu.lox24.doc.sms;
import org.json.JSONObject;
import java.io.IOException;import java.net.HttpURLConnection;import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;
public class PostSmsCollection {
public static void main(String[] args) {
var key = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"; var url = "https://api.lox24.eu/sms/dryrun";
var json = new JSONObject(); json.put("sender_id", "My Sender"); json.put("text", "Test message"); json.put("service_code", "direct"); json.put("phone", "+49751234567"); json.put("delivery_at", 1573724611); json.put("is_unicode", true); json.put("voice_lang", "DE");
var postData = json.toString();
System.out.println("Post data: " + postData);
var httpRequest = HttpRequest.newBuilder(URI.create(url)) .timeout(Duration.ofMillis(100000)) .setHeader("Content-Type", "application/json; charset=utf-8") .setHeader("Accept", "application/json") // or application/ld+json .setHeader("X-LOX24-AUTH-TOKEN", key) .POST(HttpRequest.BodyPublishers.ofString(postData)) .build();
var client = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_1_1) // Http 1.1 clients are kept alive be default .build();
try { var httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() == HttpURLConnection.HTTP_CREATED) { System.out.println("Success:" + httpResponse.statusCode() + " " + "sms resource created"); System.out.println("Response text : \n" + httpResponse.body());
} else {
System.out.println("Error: wrong response code " + httpResponse.statusCode() + " on create sms");
switch (httpResponse.statusCode()) {
case HttpURLConnection.HTTP_BAD_REQUEST: // 400 System.out.println("Error:400 Invalid input"); break; case HttpURLConnection.HTTP_UNAUTHORIZED: // 401 System.out.println("Error:401 Client ID or API key isn't active or invalid!"); break; case HttpURLConnection.HTTP_FORBIDDEN: // 403 System.out.println("Error:403 Account isn't activated. Please wait or contact to support!"); break; case HttpURLConnection.HTTP_INTERNAL_ERROR: // 500 case HttpURLConnection.HTTP_BAD_GATEWAY: //502 case HttpURLConnection.HTTP_UNAVAILABLE: // 503 case HttpURLConnection.HTTP_GATEWAY_TIMEOUT: // 504 System.out.println("System error! Please contact to LOX24 support!"); break; }
}
} catch (IOException | InterruptedException e) { e.printStackTrace(); } }}const host = 'api.lox24.eu';const token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx";
var postObj = { sender_id: 'My Sender', text: 'Test message', service_code: 'direct', phone: '+49751234567', delivery_at: 1573724611, is_unicode: true, voice_lang: "DE"};
var postdata = JSON.stringify(postObj);
const https = require('https');const options = { hostname: host, path: '/sms/dryrun', method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Content-Length': postdata.length, 'X-LOX24-AUTH-TOKEN': token }}
const req = https.request(options, res => { if (res.statusCode == 201) { console.log("Success: code = 201 - sms resource created"); res.on('data', d => { process.stdout.write(d) }) } else if (res.statusCode == 400) { console.log("Error: code = 400 - Invalid input"); } else if (res.statusCode == 401) { console.log("Error: code = 401 - Client ID or API key isn't active or invalid!"); } else if (res.statusCode == 402) { console.log("Error: code = 402 - There are not enough funds on your account!"); } else if (res.statusCode == 403) { console.log("Error: code = 403 - Account isn't activated. Please wait or contact to support!"); } else { console.log("Error: code = " + res.statusCode ); }})
req.on('error', error => { console.error(error)})req.write(postdata);req.end();<?php
$uri = 'https://api.lox24.eu/sms/dryrun';
$token = '1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx';
$body = [ 'sender_id' => 'My Sender', 'text' => "First line\nSecond line", 'service_code' => 'direct', 'phone' => '+49751234567', 'delivery_at' => 1573724611, 'is_unicode' => true, 'voice_lang' => 'DE',];
;if(!$body = json_encode($body)) { die('JSON encoding error!');}
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_POST => true, CURLOPT_URL => $uri, CURLOPT_POSTFIELDS => $body, CURLOPT_HTTPHEADER => [ "X-LOX24-AUTH-TOKEN: {$token}", 'Accept: application/json', // or application/ld+json 'Content-Type: application/json', ], CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 20, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,]);
$response = curl_exec($curl);$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);curl_close($curl);
$data = json_decode($response, JSON_OBJECT_AS_ARRAY);
if(201 === $code) { echo 'Success: response data = ' . var_export($data, true);} else { echo "Error: code = {$code}, data = " . var_export($data, true);}import jsonimport requests
token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"
url = 'https://api.lox24.eu/sms/dryrun'
data = { 'sender_id': "My Sender", 'text' : "Test message", 'service_code' : "direct", 'phone': "+49751234567", 'delivery_at': 1573724611, 'is_unicode': True, 'callback_data' => '123456', 'voice_lang' => 'DE'}
headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', 'X-LOX24-AUTH-TOKEN': token,}
print("Post data : ", json.dumps(data, indent=4))
try: # timeout is 100 seconds, the payload is automatically converted to json format res = requests.post(url, headers=headers, json=data, timeout=100) if res.status_code != 201: # Created print("Error: Wrong response code on create sms") res.raise_for_status() else: print(f'Success: code = {res.status_code} - sms resource created') print("Response: ", json.dumps(res.json(), indent=4))
except requests.HTTPError: if res.status_code == 400: print("Error:400 Invalid input") elif res.status_code == 401: print("Error: code = 401 - Client ID or API key isn't active or invalid!") elif res.status_code == 402: print("Error:402 There are not enough funds on your account!") elif res.status_code == 403: print("Error: code = 403 - Account isn't activated. Please wait or contact to support!") elif res.status_code == 404: print("Error:404 Resource not found") elif res.status_code in (500, 502, 503, 504): print("System error! Please contact to LOX24 support!") else: print(f"Error: code {res.status_code}") print(json.dumps(res.json(), indent=4))