Gå til indholdet

GMS API-kompatibilitet

SMSBAT understøtter et kompatibilitetslag med GMS API. Dette giver dig mulighed for at migrere dine eksisterende integrationer designet til GMS direkte til SMSBAT uden at skulle ændre dine beskedrutingsskemaer, nyttelaststrukturer eller tilbagekaldslyttere.


Forbindelsesindstillinger

For at dirigere anmodninger gennem SMSBAT skal du opdatere basis-URL'en og godkendelsesoplysningerne i din integration:

  • Basis-URL: https://restapi.smsbat.com
  • Endpunkt: POST /api/GMSMessage/send_message
  • Request Format: application/json
  • Godkendelse: HTTP Basic Authentication (bruger dine SMSBAT API-legitimationsoplysninger)

Anmodningsparametre

GMS-kompatibilitets-API'en accepterer et JSON-objekt med følgende parametre på øverste niveau:

Parameter Skriv Påkrævet Beskrivelse
telefonnummer streng Ja Modtagerens telefonnummer i internationalt format (f.eks. "380501234567").
tag streng Ja Registreret afsendernavn / alfanavn.
kanaler række Ja Liste over kanaler, der skal prøves, i prioriteret rækkefølge. Understøttede værdier: "viber", "sms", "push". F.eks. ["viber", "sms"].
kanal_indstillinger objekt Ja Kort med muligheder for hver aktiv kanal (se nedenfor).
ekstra_id streng Nej Dit interne meddelelses-id på kundesiden.
callback_url streng Nej Endpoint URL på dit system for at modtage tilbagekald med leveringsstatus.
divisionskode streng Nej Valgfri divisionskodeidentifikator (standard til "hoved").

Kanalindstillinger Indstillinger

Objektet channel_options indeholder kanalspecifikke konfigurationer.

Bruges, når 'viber' er opført i arrayet 'kanaler'.

Parameter Skriv Påkrævet Beskrivelse
tekst streng Ja Beskedens brødtekst.
ttl heltal Ja Time-To-Live på få sekunder.
img streng Nej Offentlig HTTPS-URL for billedet, der skal vises.
billedtekst streng Nej Knap tekst etiket.
handling streng Nej Destinations-URL, når der trykkes på knappen.
survey_options række Nej Array af strenge (2 til 5 elementer) til visning som undersøgelsesmuligheder.
karrusel_varer række Nej Array af diasobjekter, der skal vises som en Viber-karrusel (se struktur i fanen).

Eksempel på Viber-anmodning:

{
  "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"
    }
  }
}

Aktiverer Viber-beskeder med en automatisk SMS-faldback, hvis Viber-levering mislykkes inden for TTL.

Eksempel på anmodning om tilbagefald:

{
  "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
    }
  }
}

Bruges, når 'sms' er opført i arrayet 'kanaler'.

Parameter Skriv Påkrævet Beskrivelse
tekst streng Ja Beskedens brødtekst.
alpha_name streng Ja Afsenderens alfanavn.
ttl heltal Ja Time-To-Live på få sekunder.
ctr boolsk Nej Aktiver CTR-kliksporing på links i tekst ('true'/'false').

Eksempel på SMS-anmodning:

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

Bruges til at lave Viber-afstemninger og undersøgelser.

Advarsel

Viber-undersøgelseskonfigurationen skal have mellem 2 og 5 muligheder inde i survey_options.

Eksempel på undersøgelsesanmodning:

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

Bruges til at sende slide-kort med billeder. Hvert dias understøtter billede, titel og knapper.

Eksempel på karruselanmodning:

{
  "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"
        }
      ]
    }
  }
}

Bruges, når 'push' er opført i arrayet 'kanaler'.

Parameter Skriv Påkrævet Beskrivelse
titel streng Ja Titeltekst på push-meddelelsen.
tekst streng Ja Beskedens brødtekst.
ttl heltal Ja Time-To-Live på få sekunder.
img streng Nej Offentlig HTTPS-URL for billedet, der skal vises.
billedtekst streng Nej Knap tekst etiket.
handling streng Nej Destinations-URL, når der trykkes på knappen.
ctr boolsk Nej Aktiver kliksporing.

Eksempel på push-anmodning:

{
  "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
    }
  }
}


Svarformat

Slutpunktet returnerer svar i JSON-format med en "HTTP 200 OK"-statuskode.

Vellykket svar

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

Fejlsvar

Hvis validering eller behandling mislykkes, returneres et fejlsvar med en "ErrorCode" uden nul og detaljeret "ErrorText".

{
  "MessageId": "00000000-0000-0000-0000-000000000000",
  "ErrorCode": 10221,
  "ErrorText": "This type of Message is not supported by the system"
}
{
  "MessageId": "00000000-0000-0000-0000-000000000000",
  "ErrorCode": 10221,
  "ErrorText": "There can be from 2 to 5 survey options."
}
{
  "MessageId": "00000000-0000-0000-0000-000000000000",
  "ErrorCode": 400,
  "ErrorText": "Cannot send to international number: alpha name 'ALPHA' is not registered."
}
{
  "MessageId": "00000000-0000-0000-0000-000000000000",
  "ErrorCode": 500,
  "ErrorText": "Internal server error."
}

Tilbagekaldsleveringsformat

Hvis "callback_url" blev angivet i anmodningen, sender SMSBAT leveringsstatusopdateringer som en JSON POST-nyttelast til dit slutpunkt.

Eksempel på anmodning om tilbagekald

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
}

Tilbagekaldsfelter Beskrivelse

Felt Skriv Beskrivelse
nummer streng Modtagerens telefonnummer.
'tid' nummer Hændelsestidsstempel i Unix millisekunder.
status nummer Forenklet statusidentifikation (se Statuskodetabel).
understatus nummer Detaljeret statusidentifikator (se Understatuskodetabel).
hyber_status nummer Detaljeret SMSBAT intern statuskode (se tabellen Hyber Status).
meddelelses-id streng SMSBAT-meddelelses-id (GUID) genereret ved afsendelse.
ekstra_id streng Kundeside-id angivet i den oprindelige anmodning.
sendt_via streng Kanal, der behandlede beskeden: 'viber', 'sms' eller 'rcs'.
matching_template_id nummer Viber skabelon match status (hvor relevant).

Statuskortlægninger

1. Forenklet status ("status")

Kode Betydning
1 Beskeden accepteret eller bliver leveret.
2 Besked leveret.
3 Behandlings- eller leveringsfejl.

2. Detaljeret status ("understatus")

Kode Betydning
12 Accepteret til behandling.
23 Leveret.
24 Set/læst.
35 Leveres ikke inden for TTL (Udløbet).
36 Leveringsfejl.

3. Kanaltype (sendt_via)

Kanal Beskrivelse
'viber' Status produceret af Viber-kanalen.
sms Status produceret af SMS-kanal.
rcs Status produceret af RCS-kanal.

4. Detaljeret SMSBAT-status ("hyber_status")

Kode Kanal Status Understatus Betydning
23033 'viber' 2 23 Viber besked leveret.
24013 'viber' 2 24 Viber besked læst af modtager (Set).
36013 'viber' 3 36 Viber intern fejl.
36023 'viber' 3 36 Ugyldigt eller utilgængeligt Viber-tjeneste-id.
36033 'viber' 3 36 Ugyldige Viber-nyttelastdata.
36037 'viber' 3 36 Viber-billedwebadressen er for lang.
36038 'viber' 3 36 Ugyldig webadresse til Viber-billede.
36039 'viber' 3 36 Viber-teksten er for lang.
36044 'viber' 3 36 Tom Viber-tekst.
36053 'viber' 3 36 Ikke-understøttet Viber-meddelelsestype.
36063 'viber' 3 36 Ugyldige Viber-parametre.
36073 'viber' 3 36 Viber udbyder timeout.
36083 'viber' 3 36 Viber-afsender blokeret af modtageren.
36093 'viber' 3 36 Modtager er ikke registreret som Viber-bruger.
36103 'viber' 3 36 Ingen Android/iOS-enhed med Viber-understøttelse fundet.
36113 'viber' 3 36 Uautoriseret IP-adresse til Viber-afsendelse.
36123 'viber' 3 36 Dublet Viber-meddelelse fundet.
36143 'viber' 3 36 Viber faktureringsfejl.
36153 'viber' 3 36 Meddelelse blokeret af platformens sortliste.
36163 'viber' 3 36 Viber platform intern behandlingsfejl.
36173 'viber' 3 36 Forkert eller manglende Viber-label.
36183 'viber' 3 36 Ugyldig Viber TTL-værdi.
12011 sms / rcs 1 12 SMS/RCS accepteret.
36011 sms / rcs 1 12 SMS/RCS på vej.
23011 sms / rcs 2 23 SMS/RCS leveret.
35015 sms / rcs 3 35 SMS/RCS udløbet (leveres ikke inden for TTL).
36021 sms / rcs 3 36 SMS/RCS besked slettet.
36031 sms / rcs 3 36 SMS/RCS kan ikke leveres.
36041 sms / rcs 3 36 Ukendt SMS/RCS leveringsstatus.
36051 sms / rcs 3 36 SMS/RCS besked afvist.