MM Lite versus Cloud API

Main Difference: Just the Endpoint!

Let’s see how sending a marketing message works with the Cloud API — and how easy it is to do the same with MM Lite:

Product comparison

Feature
Cloud API
MM Lite

Delivery Optimization

Not supported

✅ Equal or better delivery rates

TTL for Marketing Messages

Not supported

✅ Supported (exclusive to MM Lite)

Risk of Delivery Restrictions

Same as current usage

✅ Lower risk of flagging

Best Use Cases

Basic or operational campaigns

✅ High-volume, performance-driven campaigns

Performance Insights

Basic delivery stats only

✅ Advanced performance metrics (see details)

Technical comparison

Feature
Cloud API
MM Lite

Base URL

https://waba-v2.360dialog.io

Identical

Endpoint to be used

/messages

/marketing_messages

Authentication

Same API Key

Same API Key

Payload Format

Identical

Identical

Webhook Behavior

Same structure

Same structure1

  1. Additional details related to the cost of MM Lite are included as an informative property.


Try It Yourself

We recommend running your own tests by switching your endpoint and observing the results.

✅ No need to change payloads ✅ No need to change webhook logic ✅ Keep your existing token

Start small: test one flow, and evaluate performance gains. MM Lite is designed to make your life easier!

Sending a marketing message using the Cloud API

curl --location 'https://waba-v2.360dialog.io/messages' \
--header 'D360-API-KEY: <api_key>' \
--header 'Content-Type: application/json' \
--data '{
  "to": "<end_client_number>",
  "type": "template",
  "template": {
    "name": "<template_name>",
    "language": {
      "code": "<template_language_code>"
    },
    "components": []
  },
  "messaging_product": "whatsapp"
}'

As you may know, we typically expect to receive three webhooks: sent, delivered, and read.

However, when a user clicks the link inside a marketing template message sent via the Cloud API, no webhooks are triggered at all. The webhook events received are the following:

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "BUSINESS_DISPLAY_PHONE_NUMBER",
              "phone_number_id": "BUSINESS_PHONE_NUMBER_ID"
            },
            "statuses": [
              {
                "id": "<WHATSAPP_MESSAGE_ID>",
                "status": "sent",
                "timestamp": "TIMESTAMP",
                "recipient_id": "<CUSTOMER_PHONE_NUMBER>",
                "conversation": {
                  "id": "<conversation_id>",
                  "expiration_timestamp": "TIMESTAMP",
                  "origin": {
                    "type": "marketing"
                  }
                },
                "pricing": {
                  "billable": true,
                  "pricing_model": "CBP",
                  "category": "marketing"
                }
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

Now let´s see how it works when we send the same marketing template message using the MM Lite API:

Sending a marketing message using the MM Lite API

curl --location 'https://waba-v2.360dialog.io/marketing_messages' \
--header 'D360-API-KEY: <API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
    "messaging_product": "whatsapp",
    "recipient_type": "individual",
    "to": "<end_client_number>",
    "type": "template",
    "template": {
        "name": "<template_name>",
        "language": {
            "policy": "deterministic",
            "code": "<template_language_code>"
        }
    },
    "message_activity_sharing":true 
}'

If you see, we only need to use a different endpoint; nothing else is required. The same webhooks are returned, but with a big change: we collect the click events:

It includes the value "marketing_lite" to indicate that it was sent using the MM Lite API

{
"object": "whatsapp_business_account",
"entry": [
{
"id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
"changes": [
{
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "BUSINESS_DISPLAY_PHONE_NUMBER",
"phone_number_id": "BUSINESS_PHONE_NUMBER_ID"
},
"statuses": [
{
"id": "<WHATSAPP_MESSAGE_ID>",
"status": "sent",
"timestamp": "TIMESTAMP",
"recipient_id": "<CUSTOMER_PHONE_NUMBER>",
"conversation": {
"id": "<conversation_id>",
"expiration_timestamp": "TIMESTAMP",
"origin": {
"type": "marketing_lite"
}
},
"pricing": {
"billable": true,
"pricing_model": "CBP",
"category": "marketing_lite"
}}]},
"field": "messages"
}]}]}

Last updated

Was this helpful?