Документация API

REST API OTPID: отправка и проверка одноразовых кодов, каскад каналов, вебхуки.

Быстрый старт

Базовый адрес API — https://api.otpid.ru/v1. Все запросы и ответы в формате JSON, кодировка UTF-8. Для работы нужен API-ключ из личного кабинета, раздел «API-ключи».

Авторизация

Ключ передаётся в заголовке каждого запроса:

Authorization: Bearer otp_live_8f2c1a9b…

Отправка кода

POST/otp/send — сгенерировать код и доставить его получателю.

POST /v1/otp/send
{
  "recipient": "+79000000000",
  "channels": ["push", "sms"],
  "ttl": 300,
  "length": 6,
  "template": "login"
}

// ответ
{ "request_id": "req_8f2c1a", "status": "sent", "channel": "push" }

Проверка кода

POST/otp/verify — сверить код, который ввёл пользователь.

POST /v1/otp/verify
{ "request_id": "req_8f2c1a", "code": "482913" }

// ответ
{ "valid": true, "attempts_left": 2 }

Каналы и каскад

Если первый канал не доставил код за отведённое время, OTPID автоматически переключается на следующий из списка channels. Поддерживаются: push, sms, call, email, totp.

Вебхуки

OTPID уведомляет ваш сервер о событиях доставки и подтверждения. Укажите адрес в разделе «Вебхуки» личного кабинета.

{ "event": "otp.verified", "request_id": "req_8f2c1a", "ts": 1793122988 }

SDK

Официальные библиотеки: PHP, Python, Node.js, Go, Java, 1С. Пример на Python:

from otpid import Client
c = Client("otp_live_…")
req = c.send("+79000000000", channels=["push", "sms"])
c.verify(req.id, "482913")

Коды ошибок

КодЗначение
400Некорректные параметры запроса
401Неверный или отозванный API-ключ
409Код для этого получателя уже активен
422Неверный код или истёк срок действия
429Превышен лимит запросов