# Requisições

Contamos atualmente com 4 endpoints em nossa API de Parceiros, aprenda à seguir como utilizá-los da maneira correta e a função de cada um.

{% hint style="success" %}
**A URL de base de todos os endpoints é**: <https://web.smsfunnel.com.br/api/parceiros/v1>
{% endhint %}

### Padrão de corpo e regras das requisições

1. Todas requisições de consulta devem ter pelo menos as chaves user\_id ou email preenchidas, `user_id` sendo o ID do usuário e o `email` sendo o email do usuário que deseja consultar as métricas. Não permitido o uso simultâneo das duas chaves.
2. Você só terá acesso às informações sobre os seus usuários afiliados.
3. As requisições não poderão constar headers como set-cookie e afins.

### Código de Erros Comuns

* `400 Bad Request`: A requisição não pôde ser processada devido a um erro genérico.
* `401 Unauthorized`: Sua Chave de API é inválida.
* `403 Forbidden`: Seu usuário não tem a API de Parceiros habilitada.
* `404 Not Found`: O usuário solicitado não foi encontrado ou não pertence aos seus afiliados.
* `422 Unprocessable Entity`: Seu postback está com algum problema.
* `500 Internal Server Error`: Ocorreu um erro interno ao processar a requisição.

### Corpo de Resposta de Erros Comuns

```json
{
    "error": "The error message here" 
}
```

***

## Endpoints

<mark style="color:green;">**GET**</mark>**&#x20;/recharges**

**Função:** Obter dados de recargas do usuário.

**Corpo de envio:**

```json5
{ 
    "email": "meu_usuario@example.com",
    // Campos de data (Opcionais), devem ter no máximo 90 dias de diferença entre si.
    "from_date": "2024-01-01", // Data inicial
    "to_date": "2024-02-01" // Data final
}
```

**Corpo de resposta:**

```json
{
    "recharges": [
        {
            "created_at": "2024-11-21 00:00:00", // Data da recarga
            "description": "Recarga Direta", // Descrição
            "service": "SMS", // Serviço
            "credits": 0, // Quantidade de créditos recarregados
            "price": 0, // Preço
            "total": 0, // Valor
            "situation": "APPROVED" // Situação
        }, ...
    ]
}
```

#### <mark style="color:green;">GET</mark> /sent-messages

**Função:** Obter mensagens enviadas do usuário.

**Corpo de envio:**

```json5
{ 
    "email": "meu_usuario@example.com",
    // Campos de data (Opcionais), devem ter no máximo 90 dias de diferença entre si.
    "from_date": "2024-01-01", // Data inicial
    "to_date": "2024-02-01" // Data final
}
```

**Corpo de resposta:**

```json
{
    "sms": 123, // Quantidade de SMS enviados no período
    "whatsapp": 321, // Quantidade de mensagens WhatsApp enviados no período
    "clicks": 10 // Quantidade de Clicks nos links no período
}
```

####

#### <mark style="color:green;">GET</mark> /credits

**Função:** Obter dados de créditos gerais do usuário.

**Corpo de envio:**

```json5
{
    "email": "meu_usuario@example.com" 
}
```

**Corpo de resposta:**

```json
{
    "sms": {
        "contracted": 0, // SMS Contratados
        "sent": 0, // SMS Enviados
        "available": 0 // SMS Disponíveis
    },
    "whatsapp": {
        "contracted": 0, // WhatsApp Contratados
        "sent": 0, // WhatsApp Enviados
        "available": 0 // WhatsApp Disponíveis
    }
}

```

#### <mark style="color:green;">GET</mark> /clicks

**Função:** Obter o número de clicks nos envios do usuário

**Corpo de envio:**

{% code fullWidth="false" %}

```json
{
    "email": "meu_usuario@example.com", //campo obrigatório
    "Id": "id da automação ou id do broadcast", //campo opcional, caso preenchido, retornará dados apenas do id informado.
    //Campos de data (Opcionais), devem ter no máximo 90 dias de diferença entre si.
    "from_date": "2024-01-01", //Data inicial 
    "to_date": "2024-02-01" // Data final
}

```

{% endcode %}

**Corpo de resposta:**

```json
{
    "sms": 123, // quantidade total de clicks
    "whatsapp": 321, // quantidade total de envios de mensagem whatsapp
    "clicks": 10, // quantidade total de envios de SMS
    "campaigns": [
        {
            "id": "9fe358e0-5ffa-4aee-90f4-c010eef2aede", // ID da campanha
            "name": "pix gerado", // nome da campanha de automação 
            "sms": 23, // quantidade de SMS disparados na automação 
            "clicks": 2, // quantidade de clicks da campanha em específico da automação 
            "messages": [
                {
                    "text": "Ola {first_name}, seu pix foi gerado. Clique no link para 
                        efetuar o pagamento: {url_pix}",
                    "interval": 0,
                    "interval_type": "Minuto(s)",
                    "url": "https://meupix.com/019c7116-3c27-797d-91b3-aa49a5bea42a"
                },
                {
                    "text": "Ola {first_name}, ainda nao identificamos o seu pagamento. 
                        Clique no link para o pagamento: {url_pix}",
                    "interval": 5,
                    "interval_type": "Minuto(s)",
                    "url": "https://meupix.com/019c7116-3c27-797d-91b3-aa49a5bea42a"
                }
            ]
        }, 
        { 
            "id": "019c7114-3b02-7d1d-83b9-a8a23052aa37",
            "name": "cartao pago", 
            "sms": 10,
            "clicks": 2, 
            "messages": [
                {
                    "text": "Ola {first_name}, seu pagamento foi confirmado. Em breve
                        voce recebera o codigo de rastreio",
                    "interval": 0,
                    "interval_type": "Minuto(s)",
                    "url": "https://minhaloja.com/ck=019c7116-3c27-797d-91b3-aa49a5bea42a"
                }
            ] 
        }
    ], 
    "broadcasts": [
        { 
            "id": "019c7114-7c4b-77b6-8deb-12cb5c885ea5", // ID do broadcast
            "name": "promoção Carnaval", // nome da campanha do broadcast 
            "total_leads": 100, // quantidade de leads
            "sent": 92, // quantidade de envios (subtraindo inválidos - cancelados)
            "cancelled": 8, // quantidade de envios cancelados (números inválidos)
            "sent_date": "2026-01-30 15:06:54", // Data/hora do envio
            "clicks": 54, // quantidade de clicks da campanha em específico do broadcast 
            "message": "Ola {first_name}, aproveite nossa promocao de carnaval. Faca
                uma compra no link {meu_link} e ganhe 10% OFF", // mensagem enviada,
            "url": "https://minhaloja.com/ck=019c7116-3c27&c=10OFF",
            "short_url": "https://gosite.cc/3c2710of"
        }, 
        {
            "id": "019c7114-abab-7da9-9a46-4da50bd49147",
            "name": "aposta tbt", 
            "total_leads": 5800,
            "sent": 5671,
            "cancelled": 129,
            "clicks": 4684, 
            "message": "MINHASORTE: aproveite nossa promocao aposta TBT e faca
                uma aposta no link {meu_link} e ganhe 10% de cashback", // mensagem enviada,
            "url": "https://minhaloja.com/?source=sms&p=cash10",
            "short_url": "https://gosite.cc/3c4810of"
        }
    ]
}
```

#### <mark style="color:green;">GET</mark> /phones-blacklist

Recupera todos os números da blacklist na conta de e-mail informada, com paginação de 1.000 registros por vez.&#x20;

**Corpo de envio:**

```json
{
    "email": "johndoe@email.com",
    // Campos opcionais de paginação
    "page": 1,
    "per_page": 1000
}
```

**Corpo de resposta:**

```json
{
    "phones": [
        "51989261101",
        "51989261102",
        "51989261103"
    ],
    "total": 6000,
    "page": 1,
    "per_page": 3,
    "total_pages": 2000
}
```

#### <mark style="color:green;">POST</mark> /phones-blacklist

Inclusão de telefones na blacklist na conta de e-mail informada. Caso o número seja inválido, ele será descartado, não sendo incluído na blacklist.

**Corpo de envio:**

```json
{
    "email": "johndoe@email.com",
    "phones": [
        51989261101,
        "51989261103"
    ]
}
```

**Corpo de resposta:**

```json
{
    "message": "Blacklist atualizada com sucesso",
    "phones_count": 2
}
```

#### <mark style="color:red;">DELETE</mark> /phones-blacklist

Exclusão de telefones na blacklist.&#x20;

**Corpo de envio:**

```json
{
    "email": "johndoe@email.com",
    "phones": [
        51989261101,
        "51989261103"
    ]
}
```

**Corpo de resposta:**

```json
{
    "message": "Números removidos da blacklist com sucesso",
    "phones_removed": 2
}
```

### Dúvidas?

Em caso de dúvidas, entre em contato com nosso suporte.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.smsfunnel.com.br/api/parceiros/requisicoes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
