xaxumessageAPI
Методы API

Подключение номера

Привязка номера к телефону: по QR-коду или по коду подтверждения. Результат приходит событием account.state → authorized.

QR-код для привязки

GET/v1/accounts/:id/qr
API-ключ клиентаУспех: 200

Возвращает QR-код, который владелец телефона сканирует в приложении мессенджера (WhatsApp: «Связанные устройства»). QR живёт около 20 секунд — запрашивайте заново каждые несколько секунд, пока state номера не станет authorized (придёт событие account.state).

message — PNG-картинка в base64: покажите её как data:image/png;base64,<message>. Если номер уже привязан, придёт {"type": "alreadyLogged"}.

WhatsAppдаTelegramдаMAXда

Параметры пути

iduuidобязательно
id номера

Ошибки

404not_foundномера нет или он принадлежит другому клиенту
502upstream_errorпровайдер мессенджера не ответил или ответил ошибкой — повторите позже
Запрос
curl "https://msg.xaxu.am/v1/accounts/{id}/qr" \
  -H "Authorization: Bearer $XM_API_KEY"
Ответ 200
{
  "type": "qrCode",
  "message": "iVBORw0KGgoAAAANSUhEUgAA…"
}

Привязка по номеру телефона

POST/v1/accounts/:id/authorization/phone
API-ключ клиентаУспех: 200

WhatsApp: возвращает 8-значный код — его вводят в WhatsApp на телефоне («Связать по номеру телефона»).

Telegram и MAX: мессенджер присылает код в SMS или в приложение — передайте его методом authorization/code.

WhatsAppдаTelegramдаMAXда

Параметры пути

iduuidобязательно
id номера

Тело запроса

phonestringобязательно
номер телефона аккаунта в международном формате

Ошибки

404not_foundномера нет или он принадлежит другому клиенту
502upstream_errorпровайдер мессенджера не ответил или ответил ошибкой — повторите позже
Запрос
curl -X POST "https://msg.xaxu.am/v1/accounts/{id}/authorization/phone" \
  -H "Authorization: Bearer $XM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+7 999 123-45-67"}'
Ответ 200
{
  "status": true,
  "code": "ABCD1234"
}

Ввести код подтверждения

POST/v1/accounts/:id/authorization/code
API-ключ клиентаУспех: 200

Telegram и MAX: код, пришедший после привязки по номеру. Если у аккаунта Telegram облачный пароль, его можно передать сразу в password или следом отдельным методом.

Параметры пути

iduuidобязательно
id номера

Тело запроса

codestring 2…20обязательно
код из SMS или приложения
passwordstring
облачный пароль Telegram

Ошибки

404not_foundномера нет или он принадлежит другому клиенту
502upstream_errorпровайдер мессенджера не ответил или ответил ошибкой — повторите позже
Запрос
curl -X POST "https://msg.xaxu.am/v1/accounts/{id}/authorization/code" \
  -H "Authorization: Bearer $XM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"12345"}'
Ответ 200
{
  "status": true
}

Облачный пароль Telegram

POST/v1/accounts/:id/authorization/password
API-ключ клиентаУспех: 200

Когда номер в состоянии pendingPassword: вход принят, но аккаунт Telegram защищён облачным паролем (двухэтапная проверка). До этого отправка отвечает 409 account_not_ready.

Параметры пути

iduuidобязательно
id номера

Тело запроса

passwordstringобязательно
облачный пароль

Ошибки

404not_foundномера нет или он принадлежит другому клиенту
502upstream_errorпровайдер мессенджера не ответил или ответил ошибкой — повторите позже
Запрос
curl -X POST "https://msg.xaxu.am/v1/accounts/{id}/authorization/password" \
  -H "Authorization: Bearer $XM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"password":"••••••••"}'
Ответ 200
{
  "status": true
}

Отвязать номер от телефона

POST/v1/accounts/:id/logout
API-ключ клиентаУспех: 200

Выходит из аккаунта мессенджера. Номер остаётся у вас — его можно привязать заново (тот же или другой телефон).

Параметры пути

iduuidобязательно
id номера

Ошибки

404not_foundномера нет или он принадлежит другому клиенту
502upstream_errorпровайдер мессенджера не ответил или ответил ошибкой — повторите позже
Запрос
curl -X POST "https://msg.xaxu.am/v1/accounts/{id}/logout" \
  -H "Authorization: Bearer $XM_API_KEY"
Ответ 200
{
  "isLogout": true
}

Перезапустить номер

POST/v1/accounts/:id/reboot
API-ключ клиентаУспех: 200

Перезапуск у провайдера, когда номер «завис». Привязка сохраняется.

Номер, который висит в starting дольше 5 минут, шлюз перезапускает сам (потом каждые 10 минут до 3 раз, дальше раз в час); не помогло за 3 раза — тревога оператору.

Параметры пути

iduuidобязательно
id номера

Ошибки

404not_foundномера нет или он принадлежит другому клиенту
502upstream_errorпровайдер мессенджера не ответил или ответил ошибкой — повторите позже
Запрос
curl -X POST "https://msg.xaxu.am/v1/accounts/{id}/reboot" \
  -H "Authorization: Bearer $XM_API_KEY"
Ответ 200
{
  "isReboot": true
}

Переотправить настройки провайдеру

POST/v1/accounts/:id/sync-settings
API-ключ клиентаУспех: 200

Заново прописывает у провайдера адрес приёма входящих и нужные уведомления. Шлюз делает это сам при подключении; вручную — если входящие перестали приходить.

Параметры пути

iduuidобязательно
id номера

Ошибки

404not_foundномера нет или он принадлежит другому клиенту
502upstream_errorпровайдер мессенджера не ответил или ответил ошибкой — повторите позже
Запрос
curl -X POST "https://msg.xaxu.am/v1/accounts/{id}/sync-settings" \
  -H "Authorization: Bearer $XM_API_KEY"
Ответ 200
{
  "ok": true
}