# Services API - Affiliates
> Todas os endpoints são autenticados pelo token JWT que deve ser enviado no header da requisição:
```json
Authorization: Bearer eyJh.......WertyPrV
```
> O token a ser enviado no header, é adquirido no endpoint de authorize
> Todas as requisições deve ter o `Content-Type: application/json` para serem válidas.
---
### https://services-api-stg.pravaler.com.br/affiliates/auth - `POST`
##### Payload `JSON`
```json
{
public_key: md5
}
```
> HASH MD5: `24a5b7b0080e781ba2397ecccba6aac1`
> Optamos por manter a criação do JWT atrás desse MD5, por se tratar de uma ferramenta interna e de uso prioritário de sistema para sistema.
##### Response - `200`
```json
{
token: eyJh.......WertyPrV
}
```
> O token gerado tem expiração em 24h a partir do momento que é gerado
##### Error - `401`
```json
{
message: 'Public key not authorized or not provided'
}
```
---
### https://services-api-stg.pravaler.com.br/affiliates/verify - `POST`
##### Payload `JSON`
```json
{
cpf: varchar(100)
}
```
> Campo de CPF a ser consultado para o estado da matrícula, entradas permitidas:
> `"12345678900"`
> `"123.456.789-00"`
> entradas não permitidas:
> `12345678900`
##### Response - `200`
```json
{
veteran: bool,
active: bool
}
```
##### Error - `401` - Erro padrão caso o token não seja enviado no header
```json
{
status: 401
message: "The provided token is not authorized"
}
```
##### Error - `400`
```json
{
status: 400
message: [Context specific error message]
}
```
---
### https://services-api-stg.pravaler.com.br/affiliates/converted - `POST`
##### Payload `JSON`
```json
{
date: date,
limit: int,
indicateds: [
varchar(100),
...
]
}
```
> **date**: DD-MM-YYYY (if this property has sent, indicateds is ignored),
**limit** (optional): 1-9999, if not sended, or sended 0 or null, limit is seted to 1000;
**indicateds**: one or mores CPF to consulting specific indicateds (if this property has sent, date is ignored)
*if 'date' and 'indicateds' are sended, date have priority on request*
##### Response - `200`
```json
[
{
cpf: varchar(50),
email: varchar(200),
status: bool
},
{
cpf: varchar(50),
email: varchar(200),
status: bool
},
...
]
```
> Retorno da lista de convertidos dentro dos parametros definidos com cpf, email e status do afiliado em nossa base
> cpf: lista o afiliado da nossa base,email: email do afiliado na nossa base,status: retorna true se o status na nossa base for correspondente a convertido, se não, retorna false.
> Disclaimer of internal status on pravaler base:
- Em preenchimento de cadastro ( 0.0 e 40.12 );
- Envio de documentos ( 40.13 e 50.0 )
- Convertido ( 51.0 e 51.1 )
##### Error - `401` - Erro padrão caso o token não seja enviado no header
```json
{
status: 401
message: "The provided token is not authorized"
}
```
##### Error - `400`
```json
{
status: 400
message: [Context specific error message]
}
```
---
### https://services-api-stg.pravaler.com.br/affiliates/register - `POST`
##### Payload `JSON`
```json
{
cpf: varchar(100),
name: varchar(255),
email: varchar(100),
phone: int,
how_know: varchar(10)
}
```
> cpf: "12345678900"
> name: "Fulano da Silva",
> email: "fulanodasilva@dominio.com.br,
> phone: 13991191919,
> how_know: "Saber em Rede"
##### Response - `200`
```json
{
token: varchar(255)
}
```
> Retorna token de validação de início de cadastro do indicado, no Pravaler, a ser utilizado para o seguimento do processo de cadastro, exemplo:https://cadastro.pravaler.com.br/?origin={saber_em_rede_origin}&token={token_recebido_no_response_da_requisição}?utm_source=saberemrede&utm_medium=afiliados&utm_campaign=cadastroprv
##### Error - `401` - `Erro padrão caso o token não seja enviado no header`
```json
{
status: 401
message: "The provided token is not authorized"
}
```
##### Error - `400`
```json
{
status: 400
message: [Context specific error message]
}
```