Maytapi/Документация/Руководство PHP
Руководство PHPОколо 10 минутКак отправить сообщение WhatsApp на PHP
Отправляйте текст и медиа из PHP одним HTTP-запросом и получайте ответы на свой webhook. Обычный REST и JSON — без SDK и одобрения шаблонов.
Обновлено:
- PHP
- REST + JSON
- без SDK
- ответы через webhook
<?php
$pid = "your-pid";
$phoneId = "your-phone-id";
$token = "your-token";
$ch = curl_init("https://api.maytapi.com/api/$pid/$phoneId/sendMessage");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["x-maytapi-key: $token", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"to_number" => "7916xxxxx67",
"type" => "text",
"message" => "Hello from PHP!",
]),
]);
echo curl_exec($ch);Что понадобится
Четыре вещи — всё доступно в консоли за пару минут.
-
аккаунт
Аккаунт Maytapi
Зарегистрируйтесь и начните бесплатный пробный период — карта не нужна.
-
телефон
Подключённый номер
Отсканируйте QR-код в WhatsApp на телефоне. Номер продолжит работать как обычно.
-
токен
pid и токен
Скопируйте их на странице токена в консоли; phone_id указан рядом с номером.
-
PHP
Среда PHP
Достаточно актуальной версии PHP и стандартного HTTP-клиента.
Отправьте текстовое сообщение на PHP
Отправьте POST с JSON-телом на /sendMessage, передав токен в заголовке x-maytapi-key. Сообщение встаёт в очередь телефона, ответ приходит сразу.
- ✓to_number в международном формате, например 7916xxxxx67
- ✓type: text и текст сообщения
- ✓В ответе — id сообщения
curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"to_number": "7916xxxxx67", "type": "text", "message": "Hello from PHP!"}'{
"success": true,
"data": {
"chatId": "7916xxxxx67@c.us",
"msgId": "3EB065B353B9493D00C9"
}
}Отправьте изображение, видео или документ
Используйте тот же эндпоинт с type media и публичным URL файла или data URI в base64. Можно добавить подпись и имя файла.
- ✓Изображения, видео, аудио, PDF и другие документы
- ✓Подпись — в поле text
- ✓Data URI в base64 работают так же, как URL
$ch = curl_init("https://api.maytapi.com/api/$pid/$phoneId/sendMessage");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["x-maytapi-key: $token", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"to_number" => "7916xxxxx67",
"type" => "media",
"message" => "https://example.com/invoice-10482.pdf",
"text" => "Your invoice for order #10482",
"filename" => "invoice-10482.pdf",
]),
]);
echo curl_exec($ch);Получайте ответы через webhook на PHP
Зарегистрируйте URL webhook один раз. Входящие сообщения и статусы доставки и прочтения приходят в JSON; отвечайте через reply-URL из каждого события.
- ✓Сразу возвращайте 200, затем обрабатывайте событие
- ✓Пропускайте свои сообщения по fromMe
- ✓Отвечайте в тот же чат через event.reply
$ch = curl_init("https://api.maytapi.com/api/$pid/setWebhook");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["x-maytapi-key: $token", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["webhook" => "https://example.com/maytapi/webhook"]),
]);
echo curl_exec($ch);<?php
// webhook.php
$event = json_decode(file_get_contents("php://input"), true);
http_response_code(200);
if (($event["type"] ?? "") === "message" && !$event["message"]["fromMe"]) {
$ch = curl_init($event["reply"]);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["x-maytapi-key: $token", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"to_number" => $event["conversation"],
"type" => "text",
"message" => "Thanks! We received your message.",
]),
]);
curl_exec($ch);
}FAQ: WhatsApp API на PHP
Задайте любой вопрос поддержке в WhatsApp. Среднее время ответа — меньше 24 часов.
Центр помощи →Есть ли официальный SDK для PHP?
Он не нужен. API — это REST с JSON, поэтому хватает стандартного HTTP-клиента PHP, как в примерах на этой странице.
Можно ли писать в группы из PHP?
Да. Укажите id группы (оканчивается на @g.us) в to_number; эндпоинты групп доступны на всех тарифах.
Почему сообщение не дошло?
Проверьте, что статус телефона активен, затем посмотрите очередь и логи в консоли. Новые номера нужно прогреть перед массовой отправкой.
Другие возможности WhatsApp API

Получите ключ и отправьте первое сообщение за десять минут
Без одобрения, без шаблонов, без карты. Все эндпоинты открыты на три дня.