# eCommunicate Omnichannel API

Build customer engagement at scale. Send WhatsApp templates, SMS, and manage live conversations — all through **one unified REST API**.

[Get Started](/guides/getting-started) [API Reference](/apis/omnichannel)

## Start building in minutes

Get from zero to your first delivered message in under 5 minutes. One API key, one endpoint, every channel.

cURL
```bash
curl -X POST https://api.payless4messaging.com/whatsapp-api-service/v2/messages \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "WHATSAPP",
    "payload": {
      "sender": "+27123456789",
      "templateName": "seasonal_promo_text",
      "templateId": "your-template-uuid",
      "messageType": "NOTIFICATION",
      "messages": [
        {
          "recipients": [{ "to": "+27987654321", "customerUserId": "ZA.1021033720668862" }],
          "components": [
            { "type": "body", "parameters": ["John"] }
          ]
        }
      ]
    }
  }'
```

Node.js
```javascript
const response = await fetch(
  'https://api.payless4messaging.com/whatsapp-api-service/v2/messages',
  {
    method: 'POST',
    headers: {
      'Authorization': process.env.ECOMM_API_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      channel: 'WHATSAPP',
      payload: {
        sender: '+27123456789',
        templateName: 'seasonal_promo_text',
        templateId: 'your-template-uuid',
        messageType: 'NOTIFICATION',
        messages: [
          {
            recipients: [{ to: '+27987654321' }],
            components: [{ type: 'body', parameters: ['John'] }],
          },
        ],
      },
    }),
  }
);

const data = await response.json();
console.log(data);
// { status: "ACCEPTED", requestId: "c3a1f8e2-...", channel: "WHATSAPP" }
```

Python
```python
import os
import requests

response = requests.post(
    "https://api.payless4messaging.com/whatsapp-api-service/v2/messages",
    headers={
        "Authorization": os.environ["ECOMM_API_KEY"],
        "Content-Type": "application/json",
    },
    json={
        "channel": "WHATSAPP",
        "payload": {
            "sender": "+27123456789",
            "templateName": "seasonal_promo_text",
            "templateId": "your-template-uuid",
            "messageType": "NOTIFICATION",
            "messages": [
                {
                    "recipients": [{"to": "+27987654321"}],
                    "components": [{"type": "body", "parameters": ["John"]}],
                }
            ],
        },
    },
)

print(response.json())
```

Java
```java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpResponse.BodyHandlers;

HttpClient client = HttpClient.newHttpClient();

String json = """
    {
      "channel": "WHATSAPP",
      "payload": {
        "sender": "+27123456789",
        "templateName": "seasonal_promo_text",
        "templateId": "your-template-uuid",
        "messageType": "NOTIFICATION",
        "messages": [
          {
            "recipients": [{ "to": "+27987654321" }],
            "components": [
              { "type": "body", "parameters": ["John"] }
            ]
          }
        ]
      }
    }
    """;

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.payless4messaging.com/whatsapp-api-service/v2/messages"))
    .header("Authorization", System.getenv("ECOMM_API_KEY"))
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();

HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
System.out.println(response.body());
```

**Response (202 Accepted):**

```json
{
  "status": "ACCEPTED",
  "message": "Request accepted",
  "requestId": "c3a1f8e2-4b6d-11ee-be56-0242ac120002",
  "channel": "WHATSAPP",
  "timestamp": "2026-01-15T10:30:00Z"
}
```

## Channels

WhatsApp Cloud
Meta's official Cloud API. Send pre-approved templates, session messages, and media with automatic SMS fallback and real-time delivery receipts.

[Messaging Guide](/guides/whatsapp-messaging)

WhatsApp Lite
Direct connection via QR code. No template restrictions — send any message at any time, manage groups, and sync contacts.

[API Reference](/apis/omnichannel)

SMS
Direct SMS with GSM 7-bit or Unicode encoding. Also works as automatic fallback when WhatsApp delivery fails.

[SMS Guide](/guides/sms-messaging)

Live Chat
Agent-based conversations with ticket management, team assignment, and full message history across WhatsApp, Web, and Facebook.

[Live Chat Guide](/guides/live-chat)

## Platform comparison

| Feature | WhatsApp Cloud | WhatsApp Lite | SMS |
|  --- | --- | --- | --- |
| Template messages | Yes | Yes | N/A |
| Session (chat) messages | Yes (24h window) | Yes (unrestricted) | N/A |
| SMS fallback | Yes | Yes | N/A |
| QR code connection | No | Yes | N/A |
| Group management | No | Yes | N/A |
| Contact sync | No | Yes | N/A |
| Direct messaging | N/A | N/A | Yes |
| Typing indicators | Yes | Yes | N/A |
| Delivery receipts | Yes | Yes | Yes |


## Everything you need to build

Template Messaging
Send pre-approved WhatsApp templates with dynamic variables, media headers, interactive buttons, and multi-card carousels.

Real-time Webhooks
Get notified instantly when messages are delivered, read, or when customers reply. Five webhook types cover every event.

Conversations API
Persistent WhatsApp conversations that stay open for days or months — not limited to the standard 24-hour session window.

Analytics & Reports
Track delivery rates, message volumes, and conversation metrics. Export reports as XLSX or CSV.

Batch Messaging
Send messages at scale with configurable throttling, daily schedules, and full control to pause, resume, or cancel batches.

Contact & Ticket Management
Manage customer records, support tickets with status workflows, and block/blacklist controls — all via API.

## Server environments

| Environment | Base URL | Channel |
|  --- | --- | --- |
| **Production** | `https://api.payless4messaging.com` | WhatsApp Cloud |
| **Production** | `https://api.payless4messages.com` | WhatsApp Lite |


## Explore the docs

| Resource | Description |
|  --- | --- |
| [Getting Started](/guides/getting-started) | Set up your account and send your first message |
| [Authentication](/guides/authentication) | API key management, security, and best practices |
| [WhatsApp Messaging](/guides/whatsapp-messaging) | Templates, media, buttons, carousels, and SMS fallback |
| [SMS Messaging](/guides/sms-messaging) | Direct SMS, encoding, and character limits |
| [Webhooks](/guides/webhooks) | Real-time delivery receipts and incoming message notifications |
| [Conversations](/guides/conversations) | Long-lived WhatsApp conversations beyond 24 hours |
| [Live Chat](/guides/live-chat) | Agent chat, tickets, and team management |
| [Error Handling](/guides/error-handling) | Status codes, error format, and troubleshooting |
| [Rate Limits](/guides/rate-limits) | Throughput limits, pagination, and best practices |


## Need help?

Our team is here to help you integrate.

- **Email** — [support@ecommunicate.co.za](mailto:support@ecommunicate.co.za)
- **Website** — [ecommunicate.co.za](https://www.ecommunicate.co.za/)
- **API Status** — Include the `requestId` from any error response when contacting support