О как! Эмодзи счастливого человека Полнофункциональная песочница для разработчиков — навсегда бесплатно! Регистрация
Сценарий использования — WhatsApp LID в номер телефона

Преобразуйте WhatsApp @lid в номер телефона

WhatsApp может присылать @lid вместо номера телефона — в ответах API, вебхуках, при экспорте групп или в полях CRM. Но вашему стек технологий всё равно нужен стандартный номер. API Whapi.Cloud решает эту проблему: подключите аккаунт WhatsApp один раз, а затем определяйте номера по @lid через GET /contacts/ids/{ContactLID} — с четкой обработкой ситуаций, когда сопоставление еще не готово.

Безопасный поиск без риска блокировки Бесплатный Sandbox
WhatsApp LID to phone number use case
Декоративный пузырь
Подключите WhatsApp один раз — ваш канал будет автоматически сохранять сопоставления @lid ↔ номер

Быстрый старт за 3 шага

Register and pair WhatsApp via QR

1. Подключите номер по QR-коду

Зарегистрируйтесь бесплатно, откройте ваш канал Sandbox и отсканируйте QR-код через мобильное приложение WhatsApp (как при входе в WhatsApp Web). Ваш канал начнет собирать сопоставления @lid ↔ номер из текущего трафика.

Copy API token

2. Скопируйте API-токен

Скопируйте Bearer-токен вашего канала и изучите возможности REST API с помощью cURL, Postman или Swagger еще до первого запроса на определение LID.

Call getIdByLid API

3. Определите номер по @lid

Выполните запрос GET /contacts/ids/{ContactLID}, передав @lid, полученный из сообщения, вебхука или ответа API. Авторизуйте запрос с помощью вашего Bearer-токена.

Обзор сценария использования

Превратите @lid в номер телефона, понятный вашим инструментам

WhatsApp может передавать Linked ID (@lid) там, где ваша CRM, скрипты или сценарии автоматизации ожидают стандартный номер телефона. Подключенный аккаунт WhatsApp выступает в роли канала, который автоматически собирает сопоставления @lid ↔ номер из входящего и исходящего трафика. Whapi определяет номер по @lid, если в кэше канала уже есть это сопоставление. Если его нет, API возвращает честный HTTP 404 — в этом случае просто сохраните @lid и повторите запрос позже: нужный номер телефона может появиться в данных канала со временем.

  • Получение полного номера телефона, если ваш канал уже взаимодействовал с этим контактом

  • Один GET-запрос — поиск выполняется исключительно по кэшу канала, без отправки новых запросов в WhatsApp

  • HTTP 404 — сохраните @lid и попробуйте снова позже; сопоставление может появиться по мере накопления трафика

Открыть Sandbox и начать сопоставление
Результат

Один запрос к API: @lid → номер телефона

154662208577626@lidGET /contacts/ids/{ContactLID}[email protected]

Запрос (cURL)

curl --request GET \
  --url "https://gate.whapi.cloud/contacts/ids/154662208577626%40lid" \
  --header "authorization: Bearer <CHANNEL_TOKEN>"

HTTP 200

{
  "id": "[email protected]"
}

HTTP 404

{
  "error": "User not found"
}
Что делать после получения @lid

Номер телефона или @lid — работают оба варианта

В отличие от неофициальных библиотек, эмулирующих работу браузера, Whapi.Cloud функционирует через прямое сокет-соединение с вашим подключенным аккаунтом WhatsApp. Определение номеров происходит исключительно по данным, которые ваш канал уже собрал из входящих сообщений, групповых чатов и другого трафика в рамках текущей сессии. Статус 404 не означает ошибку интеграции — это лишь указывает на то, что WhatsApp еще не передал информацию о номере телефона для этой сессии.

1

Вы получаете @lid из вебхука, экспорта группы или поля CRM — это ваши входные данные для запроса.

2

Вызовите метод getIdByLid на том канале, который зафиксировал исходное событие или сообщение.

3

HTTP 200 — вы получаете полный идентификатор чата WhatsApp (например, [email protected]). Теперь вы можете связать его с существующей карточкой клиента в CRM.

4

HTTP 404 — сохраните @lid в качестве первичного ключа. Whapi.Cloud позволяет без проблем отправлять сообщения и автоматизировать работу, используя @lid, пока реальный номер телефона не появится в данных канала.

Безопасно для ваших рабочих номеров

  • Никаких отправлений сообщений или скрытых пингов пользователей — каждый запрос обращается только к локальному кэшу
  • Никаких прямых запросов к серверам WhatsApp при каждом вызове GET — у систем защиты от спама нет поводов для блокировки

BSUID и @lid функционируют по схожему принципу — это приватные идентификаторы с разным форматом. Данный метод определения номеров подходит для обоих типов. Узнать больше о BSUID

Определяйте номера по @lid на любом языке программирования

curl --request GET \
     --url https://gate.whapi.cloud/contacts/ids/154662208577626%40lid \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/contacts/ids/154662208577626%40lid",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import requests

url = "https://gate.whapi.cloud/contacts/ids/154662208577626%40lid"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
const url = 'https://gate.whapi.cloud/contacts/ids/154662208577626%40lid';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/contacts/ids/154662208577626%40lid")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/contacts/ids/154662208577626%40lid");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
Двустороннее сопоставление

Определяйте данные как по @lid, так и по номеру телефона

Используйте любой идентификатор, который уже доступен в вашем вебхуке или CRM-системе — один и тот же Bearer-токен, один и тот же кэш канала.

На входе @lid → нужно получить номер телефона

GET /contacts/ids/{ContactLID} (getIdByLid)

Вебхук, экспорт группы или поле в CRM содержат @lid — используйте для объединения данных с записями по номеру телефона

На входе номер телефона → нужно получить @lid

GET /contacts/lids/{ContactID} (getLidById)

Исходящий API требует передачи @lid, но в вашей CRM сохранен только номер телефона. Используйте с осторожностью: метод getLidById может инициировать прямой запрос к серверам WhatsApp — в отличие от полностью безопасного getIdByLid, работающего только с локальным кэшем канала. Добавляйте задержки между вызовами.

Выберите эндпоинт под ваши входные данные — со временем вы сможете настроить обработку в обоих направлениях на одном канале.

Почему это важно

Единый профиль контакта в CRM — даже если номер телефона скрыт

Когда WhatsApp присылает @lid вместо номера телефона, CRM-системы часто создают дубликаты контактов, из-за чего теряется история общения. Программное определение идентификатора позволяет автоматически объединять данные в одной карточке клиента.

До интеграции

В полученных данных содержится только 154662208577626@lid — CRM ошибочно создает новый пустой контакт.

После интеграции

API возвращает реальный номер телефона 34604252681 — CRM автоматически updates существующую карточку клиента.

  • Связывайте полученные @lid с существующими записями клиентов в CRM и сервисах поддержки

  • Накапливайте базу соответствий номер ↔ @lid на уровне вашего канала для мгновенных будущих проверок

  • Сохраняйте историю заказов, обращений и переписки в едином профиле клиента

CRM workflow with WhatsApp LID resolution
Часто задаваемые вопросы

Популярные вопросы об определении номеров по LID

Нет, не всегда. Успешное определение зависит от того, успел ли ваш подключенный канал зафиксировать номер телефона для данного @lid в рамках текущей сессии. Если API возвращает статус HTTP 404, продолжайте использовать @lid в качестве первичного ключа и повторите запрос позже — номер телефона может автоматически появиться в кэше, когда WhatsApp передаст его вашей сессии. Пожалуйста, не настраивайте частые автоматические опросы API (polling) по таймеру.
Исключено. Каждый запрос ищет информацию исключительно в тех данных, которые ваш подключенный канал уже получил от WhatsApp в ходе обычной работы (сообщения, групповые чаты, вебхуки). Метод GET /contacts/ids/{ContactLID} не отправляет никаких сообщений, не инициирует внешних запросов к серверам WhatsApp и не пытается получить данные, которыми WhatsApp еще не поделился с вашим аккаунтом. Дополнительный подозрительный трафик отсутствует, поэтому данный эндпоинт полностью безопасен для использования на рабочих номерах.
Для этого используется метод GET https://gate.whapi.cloud/contacts/ids/{ContactLID} (идентификатор операции: getIdByLid). Для авторизации запроса передайте Bearer-токен вашего канала. Не забудьте закодировать символ @ в URL-адресе как %40.
Данное решение предназначено для стандартных идентификаторов формата @lid, которые приходят в ответах API, вебхуках и данных групп. Для обработки некоторых специфических или устаревших типов идентификаторов могут потребоваться другие методы интеграции — подробные примеры разобраны в нашем руководстве для разработчиков.
Сохраните полученный @lid в вашей базе данных, при необходимости продолжайте отправку сообщений через этот @lid (наше API это поддерживает) и повторите запрос на определение номера позже. Фиксированного интервала ожидания нет. Также учитывайте, что некоторые @lid из закрытых сообществ или крупных групп могут принципиально не иметь открытых сопоставлений с номерами телефонов.
Зарегистрируйтесь бесплатно на сайте panel.whapi.cloud, создайте новый канал, отсканируйте QR-код для подключения вашего номера WhatsApp, скопируйте полученный токен и выполните запрос GET /contacts/ids/{ContactLID} с Bearer-авторизацией. Подключение аккаунта инициализирует канал, по накопленным данным которого и будет производиться поиск.
Ваш подключенный аккаунт WhatsApp является источником данных для API-канала. Whapi.Cloud сохраняет сопоставления @lid ↔ номер телефона на основе реального трафика этой сессии (сообщения, чаты групп, вебхуки). Без активного подключения каналу просто неоткуда брать данные для поиска. Сканирование QR-кода — это этап настройки инфраструктуры, а не сам поиск. Как только канал активен, вы можете свободно отправлять запросы GET /contacts/ids/{ContactLID} к его кэшу.