Conversations

WhatsApp Two-Way Messaging API

The WhatsApp two-way messaging API enables real-time conversations between your team and your customers. Unlike one-way notifications, the WhatsApp inbound message API allows customers and agents to respond—all managed through a unified inbox or programmatically via the Messages API.

Overview

Dexatel Conversations aggregates inbound and outbound WhatsApp messages into threaded conversation views. You can manage conversations through the Dexatel web dashboard or build custom workflows via the REST API.

Key Features

  • Unified inbox — WhatsApp, SMS, and Viber messages in one place
  • Agent assignment — route conversations to specific team members
  • Conversation history — full message thread with timestamps and delivery status
  • Search and filters — find conversations by number, date, or status
  • Multi-brand support — manage multiple WhatsApp senders from one account

The 24-Hour Messaging Window

Important: WhatsApp Messaging Rules

The WhatsApp 24-hour window API restricts outbound messages to users who have not initiated contact within the last 24 hours. Within this window, you can reply freely without a pre-approved template.

  • Within 24 hours of a user message: You can send any content freely (no template required)
  • After 24 hours of inactivity: You must use a pre-approved template to re-engage the user

This window resets every time the customer sends a message to you.

Sending a Reply (Within the 24-Hour Window)

When a customer sends you a WhatsApp message, you have a 24-hour window to reply freely with any content. Use the same POST /v1/messages endpoint:

curl -X POST "https://api.dexatel.com/v1/messages" \
  -H "X-Dexatel-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "channel": "WHATSAPP",
      "from": "MyBusiness",
      "to": ["14155552671"],
      "type": "text",
      "text": "Hi Sarah! Thanks for reaching out. Your refund of $29.99 has been processed and will appear within 3-5 business days."
    }
  }'

Sending a Re-engagement Message (Template Required)

To proactively contact a user who has not messaged you in the last 24 hours, use an approved re-engagement template:

curl -X POST "https://api.dexatel.com/v1/messages" \
  -H "X-Dexatel-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "channel": "WHATSAPP",
      "from": "MyBusiness",
      "to": ["14155552671"],
      "template": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  }'

Blacklist Management

Users who opt out of WhatsApp messages should be added to the sender's blacklist to prevent future messages. This is managed per sender.

Add a Number to the Blacklist

curl -X POST "https://api.dexatel.com/v1/senders/{sender_id}/blockers" \
  -H "X-Dexatel-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "number": "14155552671"
    }
  }'

Remove a Number from the Blacklist

curl -X DELETE "https://api.dexatel.com/v1/senders/{sender_id}/blockers/14155552671" \
  -H "X-Dexatel-Key: YOUR_API_KEY"

Blacklists are scoped per sender. A number blocked on one WhatsApp sender is not automatically blocked on other senders or on SMS/Viber senders.

Conversation Message Statuses

sent

Message accepted and queued

enroute

Being delivered to WhatsApp network

delivered

Confirmed delivered to device

read

User has opened the message

failed

Permanent delivery failure

unsubscribed

User has opted out — do not re-message