Naar de inhoud

Berichttypen

Negen berichttypen, één request-body

Een verzendverzoek noemt een kanaal, een ontvanger en een type, met de inhoud onder een sleutel die naar het type is genoemd. Deze pagina toont elk type, de body die het oplevert en waar het wordt ondersteund.

Ondersteuningsmatrix

Welk kanaal accepteert welk type

Een kanaal meldt in capabilities wat het accepteert. Als je een type verstuurt dat een kanaal niet ondersteunt, krijg je 400 unsupported_message_type terug en wordt er niets afgerekend.

Ondersteuning van berichttypen per kanaaltype
TypeWhatsAppSMSSMS OTPTelegramMessengerInstagramTikTok
TeksttextOndersteundOndersteundOndersteundOndersteundOndersteundOndersteundOndersteund
BijlagenattachmentsOndersteundOndersteundNiet ondersteundOndersteundOndersteundOndersteundOndersteund
SjabloontemplateOndersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteund
AntwoordknoppenbuttonOndersteundNiet ondersteundNiet ondersteundOndersteundOndersteundOndersteundOndersteund
LijstlistOndersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteund
URL-knopcta_urlOndersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteundNiet ondersteund
LocatielocationOndersteundNiet ondersteundNiet ondersteundOndersteundNiet ondersteundNiet ondersteundNiet ondersteund
ContactencontactsOndersteundNiet ondersteundNiet ondersteundOndersteundNiet ondersteundNiet ondersteundNiet ondersteund
PeilingpollNiet ondersteundNiet ondersteundNiet ondersteundOndersteundNiet ondersteundNiet ondersteundNiet ondersteund
type: "text"

Tekst

Platte tekst, geaccepteerd door elk kanaaltype. Stel preview_url in om het kanaal een linkvoorbeeld te laten tonen.

body: 1 tot 4.096 tekens.

  • WhatsApp Business
  • SMS
  • SMS OTP
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "Je bestelling #1042 is verzonden. Volg je pakket via https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}
type: "attachments"

Bijlagen

Eén media-item per bericht, waarnaar je verwijst met een https-URL: afbeelding, video, document, audio, spraakbericht of sticker, met een optioneel bijschrift.

Precies één item. caption: maximaal 1.024 tekens.

  • WhatsApp Business
  • SMS
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "attachments",
  "attachments": [
    {
      "type": "image",
      "url": "https://example.com/receipts/1042.jpg",
      "caption": "Je bon voor bestelling #1042."
    }
  ]
}
type: "template"

Sjabloon

Een goedgekeurd WhatsApp-sjabloon met variabelen. Sjablonen zijn de enige berichten die WhatsApp accepteert buiten het klantenservicevenster van 24 uur.

name en language moeten overeenkomen met een goedgekeurd sjabloon van het kanaal.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "template",
  "template": {
    "name": "order_out_for_delivery",
    "language": {
      "code": "en"
    },
    "components": [
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "Sanne"
          },
          {
            "type": "text",
            "text": "#1042"
          },
          {
            "type": "text",
            "text": "18:00"
          }
        ]
      }
    ]
  }
}
type: "button"

Antwoordknoppen

Een bericht met maximaal drie snelle antwoorden. De ID van de aangetikte knop komt terug op je webhook in een message.received-event.

1 tot 3 knoppen. title: maximaal 20 tekens.

  • WhatsApp Business
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "button",
  "button": {
    "body": {
      "text": "Je tafel voor twee staat gereserveerd voor vanavond 19:30. Red je het nog?"
    },
    "action": {
      "buttons": [
        {
          "reply": {
            "id": "confirm",
            "title": "Bevestigen"
          }
        },
        {
          "reply": {
            "id": "reschedule",
            "title": "Verzetten"
          }
        },
        {
          "reply": {
            "id": "cancel",
            "title": "Boeking annuleren"
          }
        }
      ]
    }
  }
}
type: "list"

Lijst

Een menu dat opent vanuit één knop, met rijen die zijn gegroepeerd in secties met een titel.

action.button: maximaal 20 tekens.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "list",
  "list": {
    "body": {
      "text": "Welk team kan je vandaag helpen?"
    },
    "action": {
      "button": "Kies een team",
      "sections": [
        {
          "title": "Teams",
          "rows": [
            {
              "id": "orders",
              "title": "Bestellingen",
              "description": "Bezorging, retouren en terugbetalingen"
            },
            {
              "id": "billing",
              "title": "Facturering",
              "description": "Facturen en betaalmethoden"
            },
            {
              "id": "technical",
              "title": "Technische support",
              "description": "Installatie en probleemoplossing"
            }
          ]
        }
      ]
    }
  }
}
type: "cta_url"

URL-knop

Een bericht met één knop die een URL opent, voor trackingpagina’s, betalingen en inloglinks.

Eén knop per bericht.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "cta_url",
  "cta_url": {
    "body": {
      "text": "Je pakket is onderweg. Volg het in realtime."
    },
    "action": {
      "parameters": {
        "display_text": "Bestelling volgen",
        "url": "https://example.com/t/1042"
      }
    }
  }
}
type: "location"

Locatie

Een speld met een naam en een adres, die opent in de kaartenapp van de ontvanger.

latitude en longitude zijn decimale graden.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "location",
  "location": {
    "latitude": 25.2048,
    "longitude": 55.2708,
    "name": "Afhaalpunt",
    "address": "Coolsingel 40, Rotterdam"
  }
}
type: "contacts"

Contacten

Een of meer contactkaarten. De array wordt ongewijzigd doorgestuurd naar het kanaal en gebruikt dus het eigen contactformaat van de aanbieder.

Het voorbeeld toont het contactformaat van WhatsApp.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "contacts",
  "contacts": [
    {
      "name": {
        "formatted_name": "Klantenservice",
        "first_name": "Klantenservice"
      },
      "phones": [
        {
          "phone": "+971800123456",
          "type": "WORK"
        }
      ]
    }
  ]
}
type: "poll"

Peiling

Een native Telegram-peiling met een vraag en een reeks opties.

Alleen Telegram.

  • Telegram
POST /v1/messages
{
  "channel": "ch_4Tn8rW2yK6dF9sA1mQ5v",
  "to": "584201337",
  "type": "poll",
  "poll": {
    "question": "Wanneer zullen we je bestelling bezorgen?",
    "options": [
      "Ochtend, 09:00 tot 12:00",
      "Middag, 12:00 tot 17:00",
      "Avond, 17:00 tot 21:00"
    ]
  }
}

Probeer elk type in de sandbox

Elk account heeft een sandboxkanaal voor elk kanaaltype. Verstuur met een testsleutel elk type dat het kanaal ondersteunt; er wordt niets afgeleverd of afgerekend.