Hilfebereich GMS-API-Kompatibilität

GMS-API-Kompatibilität

SMSBAT unterstützt eine Kompatibilitätsschicht mit der GMS-API. Dadurch können Sie Ihre vorhandenen, für GMS entwickelten Integrationen direkt zu SMSBAT migrieren, ohne Ihre Nachrichtenroutingschemata, Nutzlaststrukturen oder Rückruf-Listener ändern zu müssen.


Verbindungseinstellungen

Um Anfragen über SMSBAT weiterzuleiten, aktualisieren Sie die Basis-URL und die Authentifizierungsdaten in Ihrer Integration:

  • Basis-URL: https://restapi.smsbat.com
  • Endpunkt: POST /api/GMSMessage/send_message
  • Anfrageformat: application/json
  • Authentifizierung: HTTP-Basisauthentifizierung (verwendet Ihre SMSBAT-API-Anmeldeinformationen)

Parameter anfordern

Die GMS-Kompatibilitäts-API akzeptiert ein JSON-Objekt mit den folgenden Parametern der obersten Ebene:

ParameterGeben Sieein ErforderlichBeschreibung
TelefonnummerZeichenfolgeJaTelefonnummer des Empfängers im internationalen Format (z. B. „380501234567“).
TagZeichenfolgeJaRegistrierter Absendername/Alphaname.
KanäleArrayJaListe der auszuprobierenden Kanäle in der Reihenfolge ihrer Priorität. Unterstützte Werte: „viber“, „sms“, „push“. Z. B. „[„viber“, „sms“]“.
channel_optionsObjektJaKarte mit Optionen für jeden aktiven Kanal (siehe unten).
extra_idZeichenfolgeNeinIhre interne kundenseitige Nachrichten-ID.
callback_urlZeichenfolgeNeinEndpunkt-URL auf Ihrem System zum Empfangen von Rückrufen zum Lieferstatus.
division_codeZeichenfolgeNeinOptionaler Bereichscode-Bezeichner (standardmäßig „main“).

Kanaloptionen-Einstellungen

Das Objekt „channel_options“ enthält kanalspezifische Konfigurationen.

=== „Viber-Nachricht“

Wird verwendet, wenn „viber“ im Array „channels“ aufgeführt ist.

| Parameter | Geben Sie | ein Erforderlich | Beschreibung |
| :--- | :--- | :--- | :--- |
| `Text` | Zeichenfolge | **Ja** | Nachrichtentext. |
| `ttl` | Ganzzahl | **Ja** | Time-To-Live in Sekunden. |
| `img` | Zeichenfolge | Nein | Öffentliche HTTPS-URL des anzuzeigenden Bildes. |
| `Beschriftung` | Zeichenfolge | Nein | Schaltflächentextbeschriftung. |
| „Aktion“ | Zeichenfolge | Nein | Ziel-URL, wenn auf die Schaltfläche geklickt wird. |
| `survey_options` | Array | Nein | Array von Zeichenfolgen (2 bis 5 Elemente), die als Umfrageoptionen angezeigt werden sollen. |
| `carousel_items` | Array | Nein | Array von Folienobjekten zur Anzeige als Viber-Karussell (siehe Struktur auf der Registerkarte). |

**Beispiel für eine Viber-Anfrage:**
```json
{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["viber"],
  "channel_options": {
    "viber": {
      "text": "Hello from SMSBAT!",
      "ttl": 60,
      "img": "https://www.example.com/image.png",
      "caption": "Open",
      "action": "https://www.example.com"
    }
  }
}
```

=== „Viber mit SMS-Fallback“

Ermöglicht Viber-Messaging mit einem automatischen SMS-Fallback, wenn die Viber-Zustellung innerhalb der TTL fehlschlägt.

**Beispiel für eine Fallback-Anfrage:**
```json
{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["viber", "sms"],
  "channel_options": {
    "viber": {
      "text": "Your order is ready!",
      "ttl": 60,
      "caption": "Details",
      "action": "https://www.example.com/order"
    },
    "sms": {
      "text": "Your order is ready: https://www.example.com/order",
      "alpha_name": "MySender",
      "ttl": 60,
      "ctr": false
    }
  }
}
```

Wird verwendet, wenn „sms“ im Array „channels“ aufgeführt ist.

ParameterGeben Sieein ErforderlichBeschreibung
TextZeichenfolgeJaNachrichtentext.
alpha_nameZeichenfolgeJaAlphaname des Absenders.
ttlGanzzahlJaTime-To-Live in Sekunden.
ctrboolescher WertNeinAktivieren Sie die CTR-Klickverfolgung für Links im Text („true“/„false“).

Beispiel für eine SMS-Anfrage:

{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["sms"],
  "channel_options": {
    "sms": {
      "text": "Your verification code is 1234",
      "alpha_name": "MySender",
      "ttl": 60,
      "ctr": false
    }
  }
}

=== „Viber-Umfrage“

Wird zum Erstellen von Viber-Umfragen und Umfragen verwendet.

Warning

Die Viber-Umfragekonfiguration muss zwischen **2 und 5 Optionen** in „survey_options“ enthalten.

Beispiel für eine Umfrageanfrage:

{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["viber"],
  "channel_options": {
    "viber": {
      "text": "Please rate our service:",
      "ttl": 60,
      "survey_options": [
        "Excellent",
        "Good",
        "Bad"
      ]
    }
  }
}

=== „Viber-Karussell“

Wird zum Versenden von wischbaren Bild-Diakarten verwendet. Jede Folie unterstützt Bilder, Titel und Schaltflächen.

**Beispiel für eine Karussell-Anfrage:**
```json
{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["viber"],
  "channel_options": {
    "viber": {
      "text": "Choose an offer",
      "ttl": 60,
      "carousel_items": [
        {
          "title": "Offer 1",
          "image_url": "https://www.example.com/offer-1.png",
          "primary_label": "Open",
          "primary_url": "https://www.example.com/offer-1",
          "secondary_label": "More",
          "secondary_url": "https://www.example.com/offers"
        },
        {
          "title": "Offer 2",
          "image_url": "https://www.example.com/offer-2.png",
          "primary_label": "Open",
          "primary_url": "https://www.example.com/offer-2"
        }
      ]
    }
  }
}
```

=== „Push-Nachricht“

Wird verwendet, wenn „push“ im Array „channels“ aufgeführt ist.

| Parameter | Geben Sie | ein Erforderlich | Beschreibung |
| :--- | :--- | :--- | :--- |
| `Titel` | Zeichenfolge | **Ja** | Titeltext der Push-Benachrichtigung. |
| `Text` | Zeichenfolge | **Ja** | Nachrichtentext. |
| `ttl` | Ganzzahl | **Ja** | Time-To-Live in Sekunden. |
| `img` | Zeichenfolge | Nein | Öffentliche HTTPS-URL des anzuzeigenden Bildes. |
| `Beschriftung` | Zeichenfolge | Nein | Schaltflächentextbeschriftung. |
| „Aktion“ | Zeichenfolge | Nein | Ziel-URL, wenn auf die Schaltfläche geklickt wird. |
| `ctr` | boolescher Wert | Nein | Aktivieren Sie die Klickverfolgung. |

**Beispiel für eine Push-Anfrage:**
```json
{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["push"],
  "channel_options": {
    "push": {
      "title": "Order update",
      "text": "Your order is ready for pickup!",
      "ttl": 60,
      "img": "https://www.example.com/push.png",
      "caption": "Open",
      "action": "https://www.example.com/order",
      "ctr": false
    }
  }
}
```

Antwortformat

Der Endpunkt gibt Antworten im JSON-Format mit dem Statuscode „HTTP 200 OK“ zurück.

Erfolgreiche Antwort

{
  "MessageId": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
  "ErrorCode": null,
  "ErrorText": null
}

Fehlerantworten

Wenn die Validierung oder Verarbeitung fehlschlägt, wird eine Fehlerantwort mit einem „ErrorCode“ ungleich Null und einem detaillierten „ErrorText“ zurückgegeben.

=== „Nicht unterstützter Kanal/Option“ json { "MessageId": "00000000-0000-0000-0000-000000000000", "ErrorCode": 10221, "ErrorText": "This type of Message is not supported by the system" }

=== „Ungültige Anzahl der Umfrageoptionen“ json { "MessageId": "00000000-0000-0000-0000-000000000000", "ErrorCode": 10221, "ErrorText": "There can be from 2 to 5 survey options." }

=== „Nicht registrierter Alpha-Name“ json { "MessageId": "00000000-0000-0000-0000-000000000000", "ErrorCode": 400, "ErrorText": "Cannot send to international number: alpha name 'ALPHA' is not registered." }

=== „Interner Verarbeitungsfehler“ json { "MessageId": "00000000-0000-0000-0000-000000000000", "ErrorCode": 500, "ErrorText": "Internal server error." }


Rückruf-Übermittlungsformat

Wenn „callback_url“ in der Anfrage angegeben wurde, sendet SMSBAT Aktualisierungen des Lieferstatus als JSON POST-Nutzlast an Ihren Endpunkt.

Beispiel für eine Rückrufanfrage

POST /your-callback-endpoint HTTP/1.1
Host: yoursystem.com
Content-Type: application/json

{
  "number": "380501234567",
  "time": 1719237600000,
  "status": 2,
  "substatus": 23,
  "hyber_status": 23033,
  "message_id": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
  "extra_id": "ORDER-12345",
  "sent_via": "viber",
  "matching_template_id": 0
}

Beschreibung der Rückruffelder

FeldGeben Sieein Beschreibung
NummerZeichenfolgeTelefonnummer des Empfängers.
„Zeit“NummerEreigniszeitstempel in Unix-Millisekunden.
StatusNummerVereinfachte Statuskennung (siehe Statuscodetabelle).
UnterstatusNummerDetaillierte Statuskennung (siehe Substatus-Codetabelle).
hyber_statusNummerDetaillierter SMSBAT-interner Statuscode (siehe Hyber-Statustabelle).
message_idZeichenfolgeSMSBAT-Nachrichten-ID (GUID), die beim Senden generiert wird.
extra_idZeichenfolgeKundenseitige ID, die in der ursprünglichen Anfrage angegeben wurde.
sent_viaZeichenfolgeKanal, der die Nachricht verarbeitet hat: „viber“, „sms“ oder „rcs“.
matching_template_idNummerÜbereinstimmungsstatus der Viber-Vorlage (sofern zutreffend).

Statuszuordnungen

1. Vereinfachter Status („Status“)

CodeBedeutung
1Nachricht angenommen oder zugestellt.
2Nachricht zugestellt.
3Verarbeitungs- oder Lieferfehler.

2. Detaillierter Status („Substatus“)

CodeBedeutung
12Zur Bearbeitung angenommen.
23Geliefert.
24Gesehen/gelesen.
35Nicht innerhalb der TTL geliefert (abgelaufen).
36Lieferfehler.

3. Kanaltyp („sent_via“)

KanalBeschreibung
viberVom Viber-Kanal erstellter Status.
„SMS“Vom SMS-Kanal erzeugter Status.
rcsVom RCS-Kanal erzeugter Status.

4. Detaillierter SMSBAT-Status („hyber_status“)

CodeKanalStatusUnterstatusBedeutung
23033viber223Viber-Nachricht zugestellt.
24013viber224Viber-Nachricht vom Empfänger gelesen (Gesehen).
36013viber336Interner Viber-Fehler.
36023viber336Ungültige oder nicht verfügbare Viber-Dienst-ID.
36033viber336Ungültige Viber-Nutzlastdaten.
36037viber336Viber-Bild-URL zu lang.
36038viber336Ungültige Viber-Bild-URL.
36039viber336Viber-Text zu lang.
36044viber336Leerer Viber-Text.
36053viber336Nicht unterstützter Viber-Nachrichtentyp.
36063viber336Ungültige Viber-Parameter.
36073viber336Zeitüberschreitung beim Viber-Anbieter.
36083viber336Viber-Absender vom Empfänger blockiert.
36093viber336Der Empfänger ist nicht als Viber-Benutzer registriert.
36103viber336Kein Android/iOS-Gerät mit Viber-Unterstützung gefunden.
36113viber336Unautorisierte IP-Adresse für Viber-Versand.
36123viber336Doppelte Viber-Nachricht erkannt.
36143viber336Viber-Abrechnungsfehler.
36153viber336Nachricht durch Plattform-Blacklist blockiert.
36163viber336Interner Verarbeitungsfehler der Viber-Plattform.
36173viber336Falsches oder fehlendes Viber-Label.
36183viber336Ungültiger Viber-TTL-Wert.
12011sms / rcs112SMS/RCS akzeptiert.
36011sms / rcs112SMS/RCS unterwegs.
23011sms / rcs223SMS/RCS zugestellt.
35015sms / rcs335SMS/RCS abgelaufen (nicht innerhalb der TTL zugestellt).
36021sms / rcs336SMS/RCS-Nachricht gelöscht.
36031sms / rcs336SMS/RCS können nicht zugestellt werden.
36041sms / rcs336Unbekannter SMS/RCS-Zustellungsstatus.
36051sms / rcs336SMS/RCS-Nachricht abgelehnt.