Verify (OTP)
API для создания и проверки одноразовых кодов верификации (OTP) через SMS, Email и другие каналы.
Запросы POST должны содержать заголовок Content-Type: application/json. Проверка кода (verify) также поддерживает метод GET.
Создание кода — синхронный
Создаёт код верификации и отправляет его по SMS или Email. Шлюз обрабатывает запрос сразу и возвращает verify_id.
URI: /api/verify.php
Метод: POST
Параметры запроса
Пример запроса
{
"auth": "API_KEY",
"command": "verify/create",
"phone": "441501234567",
"type": "sms",
"sender_name": "MyBrand",
"lang": "en",
"code_length": 6,
"code_type": "numeric",
"service_id": 1,
"custom_id": "abcdef1234567",
"hook": "https://example.com/webhook"
}
Пример ответа:
{
"success": true,
"verify_id": "14fb5f3d-20be-41ef-b31a-b9f5e499bc7a"
}
Ошибки HTTP: 400 (неверный формат/JSON), 401 (неверный auth), 413 (слишком большое тело запроса).
Создание кода — асинхронный
Постановка создания кода в очередь для фоновой обработки. Тело запроса такое же, как при синхронном с оздании, но поле command необязательно (воркер автоматически устанавливает verify/create).
URI: /v1/verify/create
Метод: POST
Content-Type: application/json
Пример ответа:
{
"request_id": "cf-ray-1234567890-ABC",
"success": true
}
verify_id в этом ответе не возвращается. Для обновления статуса после обработки используйте URL из поля hook в запросе.
Коды ошибок HTTP:
| Code | Описание |
|---|---|
400 | Неверный JSON |
401 | Отсутствует или неверный auth |
405 | Метод, отличный от POST |
413 | Слишком большое тело запроса |
415 | Отсутствует или неверный Content-Type (должен быть application/json) |
503 | Очередь недоступна |
Проверка кода
URI: /api/verify.php
Проверяет код, введённый пользователем, и возвращает статус верификации (только синхронный API).
Параметры запроса
Пример запроса (GET)
/api/verify.php?auth=API_KEY&command=verify&phone=380501234567&code=123456&verify_id=14fb5f3d-20be-41ef-b31a-b9f5e499bc7a
Пример запроса (POST, JSON)
{
"auth": "API_KEY",
"command": "verify",
"phone": "380501234567",
"code": "123456",
"verify_id": "14fb5f3d-20be-41ef-b31a-b9f5e499bc7a"
}
Пример успешного ответа:
{
"success": true,
"verify_id": "14fb5f3d-20be-41ef-b31a-b9f5e499bc7a",
"phone": "441501234567",
"type": "sms",
"status": "approved",
"service_id": 1
}
Возможные значения status:
| status | Описание |
|---|---|
approved | Код верный, верификация успешна |
pending | Код неверный, попытки ещё остались |
expired | Код истёк |
blocked | Превышен лимит попыток |
Коды ошибок HTTP:
400— неверный формат запроса или JSON401— отсутствует или неверный auth413— слишком большое тело запроса
Ограничения
- Время жизни кода: по умолчанию 300 секунд (5 минут), диапазон 60–3600 секунд.
- Максимальное число попыток: по умолчанию 5.