API для разработчиков

Коды подтверждения

Кратко

Вебхук верификации tuk-tuk.online: один POST-запрос генерирует 6-значный код и отправляет его клиенту по SMS или Email, код возвращается в ответе для сверки на вашей стороне. Для сервисов, которым нужно подтверждать телефон или почту клиента.

  • Эндпоинт: POST https://back.tuk-tuk.online/api/verify/:token, авторизация токеном в URL, заголовки не нужны.
  • Система создаётся в кабинете: Связки → Подтверждение личности; там же копируется вебхук-URL. Доступно на платном тарифе.
  • Тело: recipient (обязательно, телефон или email), recipientName, text (свой текст, применяется только с {{code}}), rawEmail (письмо как есть).
  • Ответ: { "success": true, "code": "123456" }; при ошибке { "success": false, "error": "..." }.
  • Тип получателя по recipient: есть @, уходит Email, иначе SMS; нужен активный канал соответствующего типа.
  • Код 6-значный, отправка списывается с баланса. Для Email text может быть HTML; по умолчанию оборачивается в шаблон с футером отписки.
На этой странице

Система подтверждения отправляет клиенту 6-значный код по SMS или Email по одному POST-запросу на ваш персональный вебхук. Платформа сама генерирует код, подставляет его в шаблон и отправляет через настроенные каналы. В ответе код возвращается вам: сверяете его на своей стороне.

Доступно на платном тарифе. Система создаётся в личном кабинете: Связки → Подтверждение личности.

#Как подключить

  1. Откройте Связки → Подтверждение личности в личном кабинете.
  2. Создайте систему: задайте название, выберите канал или каналы (SMS и/или Email) и шаблон сообщения с плейсхолдером {{code}}.
  3. Скопируйте вебхук-URL вида https://back.tuk-tuk.online/api/verify/ВАШ-ТОКЕН.
  4. Отправляйте на него POST-запросы из своего сервиса: в ответе придёт { "success": true, "code": "..." }.

Авторизация: сам токен в URL. Заголовков не нужно, токен держите в секрете.

#Эндпоинт

#POST/api/verify/:token

Сгенерировать код и отправить его получателю по SMS или Email. Авторизация по токену в пути, заголовки авторизации не нужны.

ПолеТипОбязательноОписание
token (в пути)stringдаПерсональный токен вебхука из кабинета
recipientstringдаТелефон (для SMS) или email (для Email) получателя
recipientNamestringнетИмя получателя для персонализации
textstringнетСвой текст сообщения. Применяется только если содержит {{code}}
rawEmailbooleanнетEMAIL: true, отправить письмо как есть, без обёртки и футера с отпиской

Запрос

JavaScript
await fetch("https://back.tuk-tuk.online/api/verify/ВАШ-ВЕБХУК-ТОКЕН", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    recipient: "+79991234567",
    text: "Ваш код подтверждения: {{code}}",
  }),
});
PHP
$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"];
Python
import requests
r = requests.post(
    "https://back.tuk-tuk.online/api/verify/ВАШ-ВЕБХУК-ТОКЕН",
    json={
        "recipient": "+79991234567",
        "text": "Ваш код подтверждения: {{code}}",
    },
)
print(r.json()["code"])

Ответ

JSON
{ "success": true, "code": "123456" }

Сохраните code у себя и попросите клиента ввести его.

Ошибки

JSON
{ "success": false, "error": "Описание ошибки" }

#Своё сообщение в поле text

По умолчанию текст берётся из шаблона, заданного в системе. Поле text в запросе заменяет его: так удобно отправлять письмо, собранное на вашей стороне.

Для Email-каналов text может быть HTML: платформа определит разметку, обернёт её в адаптивный шаблон и добавит футер отписки (подробнее в REST API v1, поле rawEmail). Чтобы отправить письмо ровно как есть, без обёртки и футера, добавьте "rawEmail": true: уйдёт только ваш HTML, вёрстка и ссылка на отписку на вашей стороне. Тот же режим включается один раз в редакторе системы тумблером «Отправлять письмо как есть», тогда флаг в каждом запросе не нужен.

HTML-письмо с кодом:

JSON
{
  "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 игнорируется.