Gå till innehållet

SMSBAT RESTful API-guide

Komplett guide till SMSBAT RESTful API – allt du behöver veta.

Senast uppdaterad: 29 augusti 2025

SMSBAT RESTful API låter dig skicka olika meddelandetyper: Viber-karusell, Viber-enkät, Viber-promo (bilder, video), Viber affärschattar, OTP-meddelanden (Viber OTP, Flash Call) och deras reservvarianter.

Obs: Detta är det förenade HTTP-API:et för utgående meddelanden. Om du behöver integrationer med inkommande bots (Viber Bot / Telegram Bot), se Cascade API.


1. Protokoll

  • Protokoll: HTTPS
  • Request Body: JSON-objekt som innehåller en array av "meddelanden".
  • Metoder:
  • "GET" för att hämta data (meddelandestatus, saldo, etc.)
  • "POST" för att skapa objekt (t.ex. initiera en sändning/utskick)
  • PATCH för att ändra objekt

2. Auktorisering

Vi tillhandahåller flera auktoriseringsmetoder för din bekvämlighet: - Grundläggande HTTP-autentisering (inloggning och lösenord från din instrumentpanel). - Anpassad HTTP-rubrik "X-Authorization-Key" som innehåller ett API-token. - HTTP Basic Authentication-lösenordsfält som innehåller API-token (passera @ som inloggning).

API-token kan genereras i Dashboard under Användarprofil.

Begär exempel

Med grundläggande autentisering:

curl -H "Content-Type: application/json" \
  -X POST -d @/path/to/data.json https://api.smsbat.com/bat/messagelist \
  --user user:password

Med X-Authorization-Key:

curl -H "X-Authorization-Key: <token>" \
  -H "Content-Type: application/json" \
  -X POST -d @/path/to/data.json https://api.smsbat.com/bat/messagelist


3. Skicka meddelanden

I SMSBAT-plattformen betraktas varje meddelandeutskick (även ett enda meddelande) som en "Broadcast" (meddelandelista).

Slutpunkt - Metod: POST - URL: https://api.smsbat.com/bat/messagelist - Rubriker: Content-Type: application/json

Grundläggande nyttolaststruktur:

{
  "messages": [
    {
      "from": "ALPHANAME",
      "to": "380936670003",
      "text": "Check out our new products!",
      "type": "viber_carousel",
      "ttl": 300,
      "messageData": { ... }
    }
  ]
}

Obligatoriska fält för varje meddelandeobjekt:

  • from: Verifierad avsändarens alfanamn.
  • till: Mottagarens telefonnummer (E.164-format).
  • typ: Meddelandetyp enum.
  • text: Huvudtexten i meddelandet (valfritt om typen inte kräver text).

Typvärden som stöds: - sms - viber_service (eller viber_trans) - viber_promo - viber_carousel - viber_survey - viber_otp - viber_session - flashcall_callback - flashcall

Valfria vanliga fält:

  • customerMessageId: Sträng-ID i ditt eget system (används för att spåra återuppringningar). Måste vara unikt per meddelande.
  • dtSend: ISO8601 Datum/tid för planerad framtida utskick.
  • dtExpire: ISO8601 Datum/tid för deadline för leverans.
  • ttl: Time-To-Live på några sekunder. (Om dtExpire inte tillhandahålls, beräknar API:et standardmappning från typen).

Standard-TTL (sekunder):

  • "sms" - 86400 (24h)
  • viber_trans / viber_service - 345600
  • "viber_promo" - 604800
  • viber_session - 604800

4. Reservrutt (Cascading)

Du kan ange en reservkö för att säkerställa meddelandeleverans om den primära kanalen misslyckas eller går ut.

{
  "messages": [
    {
      "from": "ALPHANAME",
      "to": "380500505051",
      "text": "test message",
      "type": "viber_service",
      "ttl": 60,
      "fallbacks": [
        {
          "from": "ALPHANAME",
          "to": "380936670003",
          "text": "test sms fallback message2",
          "type": "sms"
        }
      ]
    }
  ]
}
Fallbacks utlöses när leverantören avvisar huvudmeddelandet eller när TTL löper ut.


5. Översikt över meddelandetyper och meddelandedata

Komplexa meddelandetyper kräver ytterligare konfigurationer injicerade i "messageData"-egenskapen.

5.1 Viber-kampanj (viber_promo)

Endast bild

"messageData":{
  "img":"https://domain.com/image.png"
}

Text + knapp

"messageData":{
  "buttonText":"Save Now",
  "buttonAction":"https://help.smsbat.com"
}

Bild + text + knapp Kombinerar img, buttonText och buttonAction.

Video nyttolast:

"messageData":{
  "video": "https://domain.com/test.mp4",
  "thumbnail": "https://domain.com/carusel.png",
  "fileSize": 12000000,
  "duration": 30
}
(Du kan också kombinera videoegenskaper med buttonText och buttonAction).


5.2 Viber Transactional / Service (viber_trans, viber_service)

Om du har en godkänd mall som innehåller en bifogad fil:

"messageData": {
  "fileUrl": "https://domain.com/receipt.pdf",
  "fileName": "Receipt.pdf",
  "fileType": "pdf"
}


Kräver en "carousel.items"-array inuti "messageData".

Begränsningar: - Objektets längd: mellan 2 och 5 artiklar - Titel: 2 till 38 tecken - imageUrl: JPEG/PNG rekommenderad storlek 215x185

"messageData": {
  "carousel": {
    "items": [
      {
        "title": "50% Off Shoes!",
        "imageUrl": "https://domain.com/image1.png",
        "primaryButton": { "label": "Shop", "actionUrl": "..." },
        "secondaryButton": { "label": "Details", "actionUrl": "..." }
      }
    ]
  }
}

5.4 Viber-undersökning/lista (viber_survey)

Skapar en interaktiv omröstning i chattvyn.

"messageData": {
  "survey": {
    "options": [
      "Excellent", "Good", "Normal", "Bad", "Terrible"
    ]
  }
}
Meddelandets "text"-egenskap fungerar som undersökningens titel (Max 85 tecken). Du kan skicka mellan 2 och 5 alternativ, vardera max 50 tecken.


5.5 Viber OTP (viber_otp)

Använder förregistrerade lokaliserade Viber-mallar globalt.

"messageData": {
  "templateId": "6c929cef-29b4-4349-bc9d-2a07bdbb6e43",
  "templateLang": "uk",
  "templateParams": {
    "pin": "3211",
    "business_platform_name": "SMSBAT",
    "code_validity_time": 7
  }
}
Mallparametrar (pin, business_platform_name) är strikt skiftlägeskänsliga. API:et stöder olika ISO-kodspråksvarianter (EN, ES, RU, TR, UK, etc.).


5.6 Flash Call ('flashcall')

De sista siffrorna i uppringningsnumret (den genererade koden) måste skickas via parametern "text". Om text utelämnas, slumpas koden och du måste extrahera den från API:ets synkrona 200 OK Response-kropp (meddelanden/text).

{
  "from": "FLASHCALL",
  "to": "380500000000",
  "type": "flashcall",
  "text": "340"
}