# Listar SAC

O endpoint `/sac` permite ao *seller* a consulta e interação com tickets pós-venda abertos através do marketplace. Neste guia será apresentada a consulta geral destes tickets.

{% hint style="info" %}
**Importante ressaltar que a consulta geral para o endpoint `/sac` não retornará as instâncias abertas.**

A consulta geral para o endpoint `/sac` traz uma listagem dos tickets nos quais houve qualquer troca de mensagens. Para os casos em que apenas foi aberta uma instância, sem interação, será necessário consultar o endpoint [`/sac/{code}/instances`](https://desenvolvedores.skyhub.com.br/sac/instancias_sac).
{% endhint %}

&#x20;

## GET - Consultando o SAC

Ao listar o SAC serão retornados todos os pedidos que possuem ticket no marketplace, além do status do atendimento, datas de criação e atualização e informações sobre mediação.

Para listar o SAC é necessário utilizar o método GET, aplicando os headers padronizados na API, para o endpoint abaixo:

```
https://api.skyhub.com.br/sac 
```

#### **Request headers:**

| Key                  | Value                                       |
| -------------------- | ------------------------------------------- |
| X-User-Email         | email\_de\_usuario                          |
| X-Api-Key            | token\_de\_integracao de sua conta SkyHub   |
| X-Accountmanager-Key | token\_account único de cada Plataforma/ERP |
| Accept               | application/json                            |
| Content-Type         | application/json                            |

#### **Example request:**

```
curl --location --request GET 'https://api.skyhub.com.br/sac' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: O retorno trará todos os tickets de SAC recebidos pela conta, conforme exemplo disponibilizado a seguir:
{% endhint %}

```
{
    "next_page": "https://api.skyhub.com.br/sac?cursor=eyJwYWd...In0=",
    "sacs": [
        {
            "code": "Lojas Americanas-201000000004001",
            "created_at": "2023-06-06T21:41:57-03:00",
            "mediation": false,
            "order_code": "02-1000000004",
            "platform": "B2w",
            "status": "UNREAD",
            "updated_at": "2023-06-06T21:41:57-03:00",
            "warehouse": "98"
        },
        {
            "code": "Lojas Americanas-201000000006001",
            "created_at": "2023-06-04T18:04:58-03:00",
            "mediation": false,
            "order_code": "02-1000000006",
            "platform": "B2w",
            "status": "ARCHIVED",
            "updated_at": "2023-06-04T18:04:58-03:00",
            "warehouse": "98"
        },
        {
            "code": "Lojas Americanas-201000000000001",
            "created_at": "2023-06-01T08:37:27-03:00",
            "mediation": false,
            "order_code": "02-1000000000",
            "platform": "B2w",
            "status": "READ",
            "updated_at": "2023-06-01T08:37:27-03:00",
            "warehouse": "98"
        },
        (...)
    ]
}
```

{% hint style="info" %}
**Observe que o retorno da consulta traz o campo&#x20;***<mark style="color:green;">**next\_page**</mark>***, sinalizando a URL com o parâmetro&#x20;***<mark style="color:green;">**cursor**</mark>***&#x20;que será utilizado para avançar as páginas.**

O endpoint de SAC não utiliza a paginação através dos parâmetros page/per\_page, sendo possível apenas avançar na consulta, sem retrocedê-la.&#x20;

Caso este parâmetro esteja presente, os demais filtros de status e platform serão ignorados.
{% endhint %}

## Filtros para consulta de SAC

É possível limitar a listagem de pedidos com SAC ao aplicar filtros às consultas. Através da URL de SAC e dos headers informados no início deste guia é possível realizar os filtros por:

* [Status](#filtro-de-sac-por-status);
* [Mediação](#filtro-de-sac-com-mediacao);
* [Data de atualização](#filtro-por-data-de-atualizacao-do-sac);

{% hint style="info" %}
Existe também o parâmetro ***platform*** passível de ser incluso na *query*, porém este sempre conterá o valor **b2w** e engloba os três canais de venda do marketplace Americanas (Lojas Americanas, Shoptime e Submarino), assim, a consulta não terá diferença daquela resultante do GET (sem filtros) em `/sac`.
{% endhint %}

### Filtro de SAC por status

É possível aplicar os valores **READ**, **UNREAD** e **ARCHIVED** para listar os atendimentos através de seus status. Para esta consulta serão aplicados os [headers](#request-headers) padronizados na API para a execução de um GET para o endpoint base `/sac`, utilizando o parâmetro `status`:

```
https://api.skyhub.com.br/sac?status={status}
```

#### **Example request:**

```
curl --location --request GET 'https://api.skyhub.com.br/sac?status=UNREAD' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: O retorno trará todos os tickets de SAC com o status definido na consulta, conforme breve exemplo disponibilizado a seguir:
{% endhint %}

```
{
    "next_page": "https://api.skyhub.com.br/sac?cursor=eyJwYWd...In0=",
    "sacs": [
        {
            "code": "Lojas Americanas-201000000004001",
            "created_at": "2023-06-06T21:41:57-03:00",
            "mediation": false,
            "order_code": "02-1000000004",
            "platform": "B2w",
            "status": "UNREAD",
            "updated_at": "2023-06-06T21:41:57-03:00",
            "warehouse": "98"
        },
        (...)
    ]
}
```

### Filtro de SAC com mediação

Uma conversa passa a ser mediada pelo marketplace sempre que o cliente solicitar tal ação para o seu pedido. Através do `/sac` é possível aplicar o filtro `mediation` para listagem de atendimentos que possuíram ou não mediação. Para isto, serão aplicados os [headers](#request-headers) padronizados na API para a execução de um GET para o endpoint base acrescido do filtro de mediação:

```
https://api.skyhub.com.br/sac?mediation={true / false}
```

#### **Example request:**

```
curl --location --request GET 'https://api.skyhub.com.br/sac?mediation=true' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: Seguindo o cURL utilizado como exemplo, serão retornados os tickets que passaram por mediação (`?mediation=true`) pelo marketplace:
{% endhint %}

```
{
    "next_page": "https://api.skyhub.com.br/sac?cursor=eyJwYWd...SJ9",
    "sacs": [
        {
            "code": "Lojas Americanas-201000000001001",
            "created_at": "2023-01-16T18:53:09-03:00",
            "mediation": true,
            "order_code": "02-1000000001",
            "platform": "B2w",
            "status": "ARCHIVED",
            "updated_at": "2023-01-26T13:11:27-03:00",
            "warehouse": "98"
        },
        {
            "code": "Lojas Americanas-201000000003001",
            "created_at": "2023-01-17T16:17:22-03:00",
            "mediation": true,
            "order_code": "02-1000000003",
            "platform": "B2w",
            "status": "ARCHIVED",
            "updated_at": "2023-01-25T17:44:17-03:00",
            "warehouse": "98"
        },
        (...)
    ]
}
```

### Filtro por data de atualização do SAC

Também é possível aplicar o filtro para listagem de tickets conforme uma data de atualização selecionada.

{% hint style="info" %}
Compreende **atualização** qualquer mudança recebida pelo SAC, sendo interação, instância ou alteração do status de atendimento.&#x20;
{% endhint %}

Para utilização do filtro por data de atualização serão aplicados os [headers](#request-headers) padronizados na API para a execução de um GET para o endpoint base acrescido do filtro de `updated_at`:

```
https://api.skyhub.com.br/sac?updated_at=AAAA-MM-DD
```

#### **Example request:**

```
curl --location --request GET 'https://api.skyhub.com.br/sac?updated_at=2023-06-04' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: Como retorno serão apresentados os atendimentos atualizados na data referenciada na consulta:
{% endhint %}

```
{
    "next_page": "https://api.skyhub.com.br/sac?cursor=eyJ1cGR...ifQ==",
    "sacs": [
        {
            "code": "Lojas Americanas-201000000006001",
            "created_at": "2023-06-04T18:04:58-03:00",
            "mediation": false,
            "order_code": "02-1000000006",
            "platform": "B2w",
            "status": "ARCHIVED",
            "updated_at": "2023-06-04T18:04:58-03:00",
            "warehouse": "98"
        }
    ]
}
```

## GET - Consultando o SAC por pedido

No endpoint de SAC é possível buscar um atendimento de acordo com o pedido. Para esta consulta será aplicado um GET, utilizando os [headers](#request-headers) padronizados na API, para o endpoint:&#x20;

```
https://api.skyhub.com.br/sac/{code}
```

#### **Example request:**

```
curl --location --request GET 'https://api.skyhub.com.br/sac/Lojas Americanas-201111111114001' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: Como retorno serão apresentadas as informações sobre o atendimento para o pedido referenciado na URL:
{% endhint %}

```
{
    "code": "Lojas Americanas-201111111114001",
    "created_at": "2023-06-06T21:41:57-03:00",
    "mediation": false,
    "order_code": "02-1111111114",
    "platform": "B2w",
    "status": "UNREAD",
    "updated_at": "2023-06-06T21:41:57-03:00",
    "warehouse": "98"
}
```
