Система подтверждения отправляет клиенту 6-значный код по SMS или Email по одному POST-запросу на ваш персональный вебхук. Платформа сама генерирует код, подставляет его в шаблон и отправляет через настроенные каналы. В ответе код возвращается вам: сверяете его на своей стороне.
Доступно на платном тарифе. Система создаётся в личном кабинете: Связки → Подтверждение личности.
#Как подключить
- Откройте Связки → Подтверждение личности в личном кабинете.
- Создайте систему: задайте название, выберите канал или каналы (SMS и/или Email) и шаблон сообщения с плейсхолдером
{{code}}. - Скопируйте вебхук-URL вида
https://back.tuk-tuk.online/api/verify/ВАШ-ТОКЕН. - Отправляйте на него POST-запросы из своего сервиса: в ответе придёт
{ "success": true, "code": "..." }.
Авторизация: сам токен в URL. Заголовков не нужно, токен держите в секрете.
#Эндпоинт
#POST/api/verify/:token
Сгенерировать код и отправить его получателю по SMS или Email. Авторизация по токену в пути, заголовки авторизации не нужны.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
token (в пути) | string | да | Персональный токен вебхука из кабинета |
recipient | string | да | Телефон (для SMS) или email (для Email) получателя |
recipientName | string | нет | Имя получателя для персонализации |
text | string | нет | Свой текст сообщения. Применяется только если содержит {{code}} |
rawEmail | boolean | нет | EMAIL: true, отправить письмо как есть, без обёртки и футера с отпиской |
Запрос
await fetch("https://back.tuk-tuk.online/api/verify/ВАШ-ВЕБХУК-ТОКЕН", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
recipient: "+79991234567",
text: "Ваш код подтверждения: {{code}}",
}),
});$ch = curl_init("https://back.tuk-tuk.online/api/verify/ВАШ-ВЕБХУК-ТОКЕН");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"recipient" => "+79991234567",
"text" => "Ваш код подтверждения: {{code}}",
]),
]);
$json = json_decode(curl_exec($ch), true);
echo $json["code"];import requests
r = requests.post(
"https://back.tuk-tuk.online/api/verify/ВАШ-ВЕБХУК-ТОКЕН",
json={
"recipient": "+79991234567",
"text": "Ваш код подтверждения: {{code}}",
},
)
print(r.json()["code"])Ответ
{ "success": true, "code": "123456" }Сохраните code у себя и попросите клиента ввести его.
Ошибки
{ "success": false, "error": "Описание ошибки" }#Своё сообщение в поле text
По умолчанию текст берётся из шаблона, заданного в системе. Поле text в запросе заменяет его: так удобно отправлять письмо, собранное на вашей стороне.
Для Email-каналов text может быть HTML: платформа определит разметку, обернёт её в адаптивный шаблон и добавит футер отписки (подробнее в REST API v1, поле rawEmail). Чтобы отправить письмо ровно как есть, без обёртки и футера, добавьте "rawEmail": true: уйдёт только ваш HTML, вёрстка и ссылка на отписку на вашей стороне. Тот же режим включается один раз в редакторе системы тумблером «Отправлять письмо как есть», тогда флаг в каждом запросе не нужен.
HTML-письмо с кодом:
{
"recipient": "ivan@example.com",
"recipientName": "Иван",
"text": "<h2 style='color:#1a73e8;margin:0 0 12px'>Подтверждение входа</h2><p>Здравствуйте, Иван!</p><p>Ваш код:</p><p style='font-size:28px;font-weight:700;letter-spacing:6px;color:#1a73e8'>{{code}}</p><p style='color:#888;font-size:12px'>Код действует 10 минут.</p>"
}Для SMS достаточно текста: "text": "Ваш код: {{code}}".
#Ограничения
- Каналы и тариф настраиваются в системе; код генерируется и списывается с баланса при отправке.
- Тип получателя определяется автоматически: есть
@вrecipient, уходит Email, иначе SMS. Нужен подходящий активный канал. {{code}}единственный обязательный плейсхолдер; без него вашtextигнорируется.
