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
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
Technical comparison
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
Additional details related to the cost of MM Lite are included as an informative property.
Try It Yourself
✅ 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:
{
"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?