# OTP API

OTP API можно использовать для генерации и проверки PIN-кодов в VAS-кампаниях, обеспечивая безопасную и эффективную аутентификацию пользователей.

### **Общие параметры**

<table data-header-hidden><thead><tr><th width="150">Путь</th><th width="150"> </th><th> </th></tr></thead><tbody><tr><td><strong>Запрос</strong></td><td><strong>Тип</strong></td><td><strong>Описание</strong></td></tr><tr><td>key</td><td>Строка</td><td>API ключ</td></tr><tr><td>aid</td><td>Целое</td><td>ID партнёра</td></tr><tr><td>mid</td><td>Целое</td><td>Ваш рекламодатель MID</td></tr></tbody></table>

## Сгенерировать OTP

```
POST https://api.offer18.com/api/af/otp_gen
```

### Параметры запроса

<table data-header-hidden><thead><tr><th width="212.5555419921875"></th><th width="191"></th><th></th></tr></thead><tbody><tr><td><strong>Тело</strong></td><td><strong>Тип</strong></td><td><strong>Описание</strong>  </td></tr><tr><td>type</td><td>строка</td><td>Тип запроса</td></tr><tr><td>userId</td><td>строка</td><td>ID пользователя (у Партнёра)</td></tr><tr><td>msisdn</td><td>строка</td><td>Мобильный номер (цифры)</td></tr><tr><td>partner</td><td>строка</td><td>Название партнёра</td></tr></tbody></table>

<pre data-overflow="wrap"><code><strong>https://api.offer18.com/api/af/otp_gen?key=000000000&#x26;aid=0000&#x26;mid=0000&#x26;msisdn=xxxxxxxx&#x26;partner=partnername&#x26;userId=xxxx
</strong></code></pre>

{% code title="Успех" overflow="wrap" %}

```json
{
  "status": "200",
  "response": "otp_sent",
  "data": "6xxxxx00f3fa55axxxxxxxxxx567a" // data[requestId] ключ и значение возвращаются, когда API партнёра возвращает в ответе 
} 
```

{% endcode %}

{% code title="Ошибка" overflow="wrap" %}

```json
{     
  "status": "400",     
  "error": "invalid_user_credentials" 
}
```

{% endcode %}

***

## Проверить OTP

```
POST https://api.offer18.com/api/af/otp_verify
```

### Параметры запроса

<table data-header-hidden><thead><tr><th width="212.5555419921875"></th><th width="191"></th><th></th></tr></thead><tbody><tr><td><strong>Тело</strong></td><td><strong>Тип</strong></td><td><strong>Описание</strong>  </td></tr><tr><td>userId</td><td>строка</td><td>Идентификатор пользователя</td></tr><tr><td>msisdn</td><td>строка</td><td>Мобильный номер</td></tr><tr><td>otp</td><td>строка</td><td>OTP, полученный пользователем</td></tr><tr><td>partner</td><td>строка</td><td>Название партнёра</td></tr><tr><td>request_id</td><td>строка</td><td>ID запроса для отслеживания</td></tr></tbody></table>

{% code overflow="wrap" %}

```
https://api.offer18.com/api/af/otp_verify?key=000000000&aid=0000&mid=0000&msisdn=xxxxxxxx&partner=partnername&userId=xxxx&request_id=xxxxx&otp=xxxxx
```

{% endcode %}

### Пример ответа API

{% code title="Успех" overflow="wrap" %}

```json
{     
  "status": "200",     
  "response": "otp_verified" 
} 
```

{% endcode %}

{% code title="Ошибка" overflow="wrap" %}

```json
{     
  "status": "400",     
  "error": "invalid_user_credentials" 
}
```

{% endcode %}

***

{% hint style="info" %}
**Для безопасного взаимодействия всегда вызывайте API с сервера.**
{% endhint %}
