# API de OTP

A API OTP pode ser usada para gerar e validar PINs em campanhas VAS, garantindo autenticação de usuário segura e eficiente.

### **Parâmetros Comuns**

<table data-header-hidden><thead><tr><th width="150">Caminho</th><th width="150"> </th><th> </th></tr></thead><tbody><tr><td><strong>Query</strong></td><td><strong>Tipo</strong></td><td><strong>Descrição</strong></td></tr><tr><td>key</td><td>String</td><td>Chave da API</td></tr><tr><td>aid</td><td>Inteiro</td><td>Id do Afiliado</td></tr><tr><td>mid</td><td>Inteiro</td><td>Seu MID de Anunciante</td></tr></tbody></table>

## Gerar OTP

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

### Parâmetros da Requisição

<table data-header-hidden><thead><tr><th width="212.5555419921875"></th><th width="191"></th><th></th></tr></thead><tbody><tr><td><strong>Corpo</strong></td><td><strong>Tipo</strong></td><td><strong>Descrição</strong>  </td></tr><tr><td>type</td><td>string</td><td>Tipo de requisição</td></tr><tr><td>userId</td><td>string</td><td>ID do usuário (sob o Parceiro)</td></tr><tr><td>msisdn</td><td>string</td><td>Número móvel (numérico)</td></tr><tr><td>partner</td><td>string</td><td>Nome do parceiro</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="Sucesso" overflow="wrap" %}

```json
{
  "status": "200",
  "response": "otp_sent",
  "data": "6xxxxx00f3fa55axxxxxxxxxx567a" // data[requestId] key and value return when patner api return in response 
} 
```

{% endcode %}

{% code title="Falha" overflow="wrap" %}

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

{% endcode %}

***

## Verificar OTP

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

### Parâmetros da Requisição

<table data-header-hidden><thead><tr><th width="212.5555419921875"></th><th width="191"></th><th></th></tr></thead><tbody><tr><td><strong>Corpo</strong></td><td><strong>Tipo</strong></td><td><strong>Descrição</strong>  </td></tr><tr><td>userId</td><td>string</td><td>ID do usuário</td></tr><tr><td>msisdn</td><td>string</td><td>Número móvel</td></tr><tr><td>otp</td><td>string</td><td>OTP recebido pelo usuário</td></tr><tr><td>partner</td><td>string</td><td>Nome do parceiro</td></tr><tr><td>request_id</td><td>string</td><td>ID da requisição para rastreamento</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 %}

### Resposta de API de exemplo

{% code title="Sucesso" overflow="wrap" %}

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

{% endcode %}

{% code title="Falha" overflow="wrap" %}

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

{% endcode %}

***

{% hint style="info" %}
**Para interações seguras, sempre chame a API a partir do lado do servidor.**
{% endhint %}
