Custom Messages Delivery
Wenn Sie auf der OTP-Plattform eigene Vorlageninhalte erstellt haben, können Sie diese API nutzen, um individuelle Nachrichteninhalte zu versenden.
API-Endpunkt
POST https://otp.api.engagelab.cc/v1/custom-messages
Authentifizierung
Zur Authentifizierung wird HTTP Basic Authentication verwendet. Fügen Sie den Authorization-Header in die HTTP-Anfrage ein:
Authorization: Basic ${base64_auth_string}
Der base64_auth_string wird nach folgendem Schema generiert: base64(dev_key:dev_secret)
Anfrageformat
Anfrage-Header
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Anfrage-Body
{
"to": "+8618701235678",
"template":{
"id":"test-template-1",
"params": {
"code": "codevalue",
"var1":"value1"
}
}
}
Anfrageparameter
Das Anfrageobjekt wird im JSON-Format übermittelt; daher muss der Header Content-Type: application/json enthalten sein.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| to | String | Ja | Empfänger (Telefonnummer oder E-Mail-Adresse), z. B. +8613800138000 oder support@engagelab.com. |
| template | JSON-Objekt | Ja | Vorlageninformationen. Siehe Unterparameter unten. |
| |_ id | String | Ja | Vorlagen-ID. |
| |_ params | JSON-Objekt | Optional | Vorlagenparameter. |
| _ |_ code | String | Optional | Erforderlich, wenn der Vorlagentyp ein Verifizierungscode ist. |
| _ |_ var | String | Optional | Werte für benutzerdefinierte Vorlagenvariablen. Wenn Variablen bei der Erstellung der Vorlage definiert wurden, hier deren Werte übergeben. Wird kein Wert übergeben, wird der Variablenname als Platzhalter (z. B. {{var1}}) gesendet. |
Hinweise zu params:
Für vordefinierte Variablen wie {{brand_name}}, {{ttl}} und {{pwa_url}} müssen keine Werte übergeben werden – das System ersetzt diese automatisch durch die bei der Vorlagenerstellung festgelegten Inhalte.
Handelt es sich um einen Verifizierungscode, muss die Variable {{code}} übergeben werden, andernfalls tritt ein Fehler auf.
Für benutzerdefinierte Variablen, die im Vorlageninhalt definiert wurden, müssen Werte über params zugewiesen werden. Beispiel: Ist der Vorlageninhalt „Hi {{name}}, your verify code is {{code}}“, sollte params:{"name":"Bob"} übergeben werden.
Anfragebeispiele
1. Versand eines individuellen Verifizierungscodes:
{
"to": "+8618701235678",
"template":{
"id":"code-template",
"params": {
"code": "123456"
}
}
}
2. Versand einer individuellen Benachrichtigung:
{
"to": ["+8618701235678"],
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
3. Versand individueller Marketinginhalte:
{
"to": ["+8618701235678"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
Antwortparameter
Erfolgreiche Antwort
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| message_id | String | Ja | Die eindeutige ID der Nachricht. |
| send_channel | String | Ja | Verwendeter Versandkanal. Mögliche Werte: whatsapp, sms, email, voice. |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Hinweis: Der zurückgegebene Wert von send_channel gibt nicht den endgültigen Zustellkanal an, sondern nur den aktuell verwendeten Kanal. Ist beispielsweise eine Strategie konfiguriert, bei der nach einem WhatsApp-Fehlschlag automatisch auf SMS umgestellt wird, gibt die API zunächst whatsapp zurück. Bei Fehlschlag erfolgt die Zustellung automatisch per SMS.
Fehlgeschlagene Antwort
Der HTTP-Statuscode ist 4xx oder 5xx; der Antwortkörper enthält folgende Felder:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| code | int | Fehlercode. Details siehe Fehlercodes. | |
| message | String | Ja | Fehlerdetails. |
{
"code": 5001,
"message": "sms send fail"
}
| Fehlercode | http code | Beschreibung |
|---|---|---|
| 1000 | 500 | Interner Fehler. |
| 2001 | 401 | Authentifizierung fehlgeschlagen: ungültiges oder fehlendes Token. |
| 2002 | 401 | Authentifizierung fehlgeschlagen: Token abgelaufen oder deaktiviert. |
| 2004 | 403 | Keine Berechtigung für diesen API-Aufruf. |
| 3001 | 400 | Ungültiges Anfrageparameter-Format. Stellen Sie sicher, dass der JSON-Inhalt dem erforderlichen Format entspricht. |
| 3002 | 400 | Ungültige Anfrageparameter. Prüfen Sie, ob die Parameter den Anforderungen entsprechen. |
| 3003 | 400 | Geschäftliche Validierung fehlgeschlagen. Details siehe message-Feld. |
| 3004 | 400 | Rate-Limit überschritten. Für dieselbe Vorlage und Empfänger kann während der Gültigkeitsdauer kein weiterer Verifizierungscode versendet werden. |
| 4001 | 400 | Ressource nicht gefunden (z. B. wurde eine nicht existierende Vorlage verwendet). |
| 5001 | 400 | Senden fehlgeschlagen (allgemein/andere Gründe) |
| 5011 | 400 | Ungültiges Telefonnummernformat |
| 5012 | 400 | Ziel nicht erreichbar |
| 5013 | 400 | Nummer zur Sperrliste hinzugefügt |
| 5014 | 400 | Inhalt entspricht nicht den Vorschriften |
| 5015 | 400 | Nachricht blockiert/abgelehnt |
| 5016 | 400 | Internes Sendeproblem |
| 5017 | 400 | Keine Berechtigung zum Senden in der Region China |
| 5018 | 400 | Telefonfehler (ausgeschaltet/deaktiviert) |
| 5019 | 400 | Benutzer hat abbestellt |
| 5020 | 400 | Nummer nicht registriert/ungültige Nummer |

