Multi-channel message delivery

Deliver on
every channel.

One API sends a templated message to a contact over WhatsApp, SMS, Viber, Telegram, or email. When a channel fails, connect falls through to the next one in your policy and tells you what happened on each.

1  Multi-channel

WhatsApp, SMS, Viber, Telegram, and email through a single API. A cascade policy orders the channels per organisation; a failed or timed-out attempt moves to the next one.

2  Templated

Write a template once per channel with placeholders, and send it with a data object. Every version is kept, and every message remembers the version it was sent with.

3  Asynchronous

Send returns at once with a message id. Delivery runs in the background, provider webhooks confirm it, and the dashboard shows every attempt on every channel.

The API

Four calls cover the common path. Authenticate with an API key from the dashboard.

POST/v1/contactsCreate contact▶
Request
curl -X POST https://connect.ataca.io/v1/contacts \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <api-key>" \
  -d '{
    "number": "+14155552671",
    "email": "[email protected]"
  }'
Response200 OK
{
  "status": "ok",
  "id": "c9g8h7kn5m4r3q2p1",
  "time": "2026-03-22T10:30:00Z",
  "request_id": "acme-b7k9m2n4p6"
}
GET/v1/contactsList contacts▶
Request
curl https://connect.ataca.io/v1/contacts \
  -H "Authorization: Bearer <api-key>"
Response200 OK
{
  "status": "ok",
  "time": "2026-03-22T10:30:00Z",
  "request_id": "acme-d4f6g8h2k4",
  "data": [
    {
      "id": "c9g8h7kn5m4r3q2p1",
      "number": "+14155552671",
      "email": "[email protected]",
      "reference": ""
    }
  ],
  "pagination": { "page": 1, "pageSize": 20, "hasMore": false }
}
POST/v1/sendSend message▶
Request
curl -X POST https://connect.ataca.io/v1/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <api-key>" \
  -d '{
    "contact_id": "c9g8h7kn5m4r3q2p1",
    "template": "welcome",
    "data": {"first_name": "Alice"}
  }'
Response200 OK
{
  "status": "ok",
  "id": "m3n5p7q9r1s3t5v7",
  "time": "2026-03-22T10:30:01Z",
  "request_id": "acme-j8k2m4n6p8"
}
GET/v1/templatesList templates▶
Request
curl https://connect.ataca.io/v1/templates \
  -H "Authorization: Bearer <api-key>"
Response200 OK
{
  "status": "ok",
  "time": "2026-03-22T10:30:00Z",
  "request_id": "acme-w2x4y6z8a1",
  "data": [
    {
      "id": "t5v7w9x1y3z5a7b9",
      "name": "welcome",
      "description": "First message after sign-up",
      "version": 3,
      "channels": ["WHATSAPP", "EMAIL"],
      "placeholders": [{ "name": "first_name", "required": true }],
      "createdAt": "2026-03-01T09:00:00Z",
      "updatedAt": "2026-03-20T16:12:00Z"
    }
  ],
  "pagination": { "page": 1, "pageSize": 20, "hasMore": false }
}

Bring your own provider accounts.

Use the platform's channels, or store your own WhatsApp, Viber, Telegram, Sinch, or Plivo credentials per organisation. They are encrypted with Vault and never leave the server.

Open the dashboard