WhatsApp

Все запросы следует выполнять методом POST по адресу:

https://cloud.controller.touch-api.com/api/{METHOD_NAME}

Тело передавать в JSON, ответ также будет JSON-объект.

Тело запроса обязательно должно содержать поле:

{
    "source": "whatsapp"
}

Если в ответе есть поле "error", значит произошла какая то ошибка, и в этом поле содержится ее текстовое описание. Так же будет возвращен uuid, который необходимо указать при обращении в техническую поддержку.

{
    "uuid": 3928420,
    "error": "Some error text goes here"
}

Добавить аккаунт

Добавить новый WhatsApp аккаунт

POST https://cloud.controller.touch-api.com/api/addAccount

После успешного вызова можно сразу вызвать setState для запуска аккаунта

Request Body

{
    "status": "ok",
    "uuid": "62441448-e337-4288-9a0b-5496a81b2e25"
}

Обновить аккаунт

POST https://cloud.controller.touch-api.com/api/updateAccount

Перед вызовом данного метода аккаунт должен находит в выклюенном состоянии ( state : false ), после успешного выполнения необходимо выполнить /setState со значением state : true .

UPD: С 04.12.2023 нет необходимости устанавливать setState: TRUE || FALSE для обновления вебхуков

Чтобы удалить вебхуки - передайте пустой массив в параметре webhooksUrls

Request Body

{
    "status": "ok",
    "uuid": "62441448-e337-4288-9a0b-5496a81b2e25"
}

Добавить вебхук в массив вебхуков

POST https://cloud.controller.touch-api.com/api/addWehook

Метод добавляет вебхук для приема сообщений на заданный Url

Чтобы удалить вебхуки - передайте пустой массив в параметре webhooksUrls /updateAccount

Request Body

Удалить аккаунт

POST https://cloud.controller.touch-api.com/api/deleteAccount

Request Body

{
    "status": "ok",
    "uuid": "62441448-e337-4288-9a0b-5496a81b2e25"
}

setBeta

Устаревший метод.

POST https://cloud.controller.touch-api.com/api/setBeta

Актаулен только если аккаунт был создан до 01.08.2022 и beta не был задан true

Отправлять запрос с остановленным аккаунтом (перед вызовом сделать forceStop) для избежания конфликтов

Request Body

{
    "status": "ok"
}

Изменить состояние (запуск/остановка)

POST https://cloud.controller.touch-api.com/api/setState

Если сервер не отвечает после setState, возможно есть проблема с вашим прокси. Пожалуйста, обратитесь для проверки в техническую поддержку

Request Body

{
    "status": "ok"
}

После успешного вызова /setState можно сразу запросить QR-код методом GET:

GET https://cloud.controller.touch-api.com/api/screenshot

пример: https://controller.touch-api.com/api/screenshot?token={token}&login={login}&source=whatsapp

Path Parameters

Возвращает изображение (скриншот) с QR кодом для авторизации

Полученный QR код нужно отсканировать приложением WhatsApp в телефоне

Настройки -> WhatsApp Web

Если сервер не отвечает после setState, возможно есть проблема с вашим прокси. Пожалуйста, обратитесь для проверки в техническую поддержку.

Если скриншот не грузит и ваши сервера расположены в России, можно ко всем GET запросам передать дополнительный параметр useAlternativeAddress=1, который решит эту проблему

Получить данные по токену

POST https://cloud.controller.touch-api.com/api/getInfoByToken

Получении информации об аккаунтах, приязанных к токену

Request Body

{
    "clients": [
        {
            "activated": false,
            "defaultState": true,
            "apiV": "beta/s30",
            "additional": {
                "isBeta": false,
                "_id": "6390ea93cf925c28d7883875",
                "config": {
                    "_id": "6390ea93cf925c28d7883876",
                    "services": {
                        "outgoingOnlyHook": false,
                        "_id": "6390ea93cf925c28d7883877",
                        "stateHook": false
                    },
                    "conflict": {
                        "_id": "6390ea93cf925c28d7883878",
                        "takeover": false,
                        "takeoverTimeoutMs": 10000
                    }
                }
            },
            "_id": "6390ea93cf925c28d7883874",
            "owner": "73375e42-efdf-4129-8068-0894d39ff98e",
            "login": "81231239944",
            "proxyString": "http://tizwrnqy:4ex8l9xcb2m7@5.183.60.151:7163/",
            "addedTime": 1670441619182,
            "__v": 0,
            "state": true,
            "step": {
                "message": "QR code received",
                "value": 2.2
            }
        }
    ],
    "summary": {
        "active": 1,
        "activated": 0,
        "demo": 1,
        "count": 1,
        "payment": {
            "mode": "per month",
            "balance": 0
        }
    },
    "errors": [],
    "status": "ok",
    "uuid": "07c88bf7-3286-431a-b738-c02b1cfbbf37"
}

Получить данные по аккаунту

POST https://cloud.controller.touch-api.com/api/getIngo

Получение информации о подключенном аккаунте. Актуально в случае куар авторизации.

Request Body

Принудительная остановка

POST https://cloud.controller.touch-api.com/api/forceStop

Метод принудительной остановки аккаунта может быть полезен в случае, если были ошибки во время запуска или setState:false выполняется с ошибкой

Request Body

{
    "status": "ok",
    "uuid": "62441448-e337-4288-9a0b-5496a81b2e25"
}

Получить строку QR кода

POST https://cloud.controller.touch-api.com/api/getQr

Если аккаунт находится в степе 2.2, то это актуальная ссылка. Если в степе 2.3, то ссылка не актуальна - нужно перезапускать

После получения ответа из значения value необходимо сформировать QR и отсканировать его через приложение WhatsApp

Код обновлеяется каждые 10 секунд, если пользователь не успел подключиться необходимо сформировать код заново

Request Body

Описание авторизации по коду для ввода в приложении вместо сканирования QR

На данный момент функция получения кода может занимать больше времени чем получения QR кода в связи со спецификой установки соединения с WhatsApp и получения кода авторизации, ниже список действий для авторизации по коду.

На данный момент этот способ не рекомендуется использовать как основной, только если пользователь не может авторизиваться по QR

  1. Установить setState: false методом /setState

  2. Очистить текущую сессию /сlearSession

  3. Получить новый проки /getNewProxy

  4. Переключить аккаунт в режим входа по коду /enablePhoneAuth

  5. Установить setState: true методом /setState

  6. Дождаться окончания загрузки и получить код /getAuthCode

  7. Ввести полученный код на телефоне в приложении WhatsApp, в разделе Linked Diveces

Включить авторизацию по коду

POST https://cloud.controller.touch-api.com/api/enablePhoneAuth

Активация авторизации по коду, если нет возможности отсканировать QR

Request Body

Получить код для входа

POST https://cloud.controller.touch-api.com/api/getAuthCode

Получить код для ввода в приложении WhatsApp

Request Body

Выключить авторизацию по коду

POST https://cloud.controller.touch-api.com/api/disablePhoneAuth

Request Body

Очистка сессии

POST https://cloud.controller.touch-api.com/api/clearSession

Метод используется для очистки данныйх сессии. Перед очисткой необходимо остановить аккаунт, после успешной очистки запустить аккаунт.

Request Body

{
    "forceStop": true,
    "clearSession": true,
    "getNewProxy": true
}

Получить информацию о пользователе

POST https://cloud.controller.touch-api.com/api/getUserInfo

Request Body

{
    "number": 380999999999,
    "isBusiness": false,     
    "isEnterprise": false,
    "labels": [],
    "name": "Name",
    "pushname": "iv",
    "shortName": "Name",
    "statusMute": false,
    "type": "in",
    "isMe": false,
    "isUser": true,
    "isGroup": false,
    "isWAContact": true,
    "isMyContact": true,
    "status": "ok"
}

Получечение информации об аккаунте

POST https://cloud.controller.touch-api.com/api/getInfo

Request Body

 {
	"source": "whatsapp",
	"login": "String",
	"owner": "String",
	"activated": true // or false,
	"addedTime": "timestamp",
	"webhookUrl": "String",
	"proxyString": "String",	
	"defaultState": true // or false,
	"APIv": "String",
	"state": true // or false,
	"step": {
		"message": "String",
		"value": 1 // number
	}
}

Отправить сообщение

POST https://cloud.controller.touch-api.com/api/sendMessage

Request Body

{
  "to": "String",
  "text": "String" // or null. required if content is empty
  "content": [  // required if text is empty
    {
      "type": "String",  
      "src": "String",  // media url
    }
  ]
}

Таблица состояний аккаунта

Возможные content (в хуках, /sendMessage и /getChatMessages)

* file используется в случае когда не удалось распознать картинку, видео или аудио

** красным выделено то, что еще не добавлено в апи

Last updated