# Solicitações de suporte

Os comerciantes podem pedir ajuda à equipe da Fluxis dentro do dashboard. A solicitação é salva primeiro e a equipe é avisada depois, então ela nunca se perde, mesmo que o canal de notificação esteja fora do ar.

## Enviar uma solicitação

`POST /app/support/requests`, a partir de uma sessão iniciada no dashboard. Qualquer papel de colaborador pode enviar.

| Campo | Obrigatório | Descrição |
| ----- | ----------- | --------- |
| `category` | Sim | Uma de `payment_issue`, `point_of_sale`, `subscriptions`, `account`, `other` |
| `message` | Sim | O que aconteceu, até 2000 caracteres |
| `reference` | Não | O ID de uma transação ou de um link de pagamento, até 100 caracteres |

A organização e o usuário vêm da sessão. Nunca são lidos do corpo.

```json
{
  "status": "success",
  "data": { "ticket_id": "SUP-0042" }
}
```

Cite o ID do ticket em qualquer acompanhamento. As respostas chegam por email, no endereço da sua conta.

## O que acontece depois

1. A solicitação é salva com o status `pending` e a chamada responde `201`.
2. Em cerca de um minuto a equipe recebe uma mensagem no canal de suporte, com a categoria, uma prévia e o ID do ticket.
3. A solicitação passa a `dispatched` quando essa mensagem é publicada. Se a publicação falhar, ela continua `pending` e é tentada de novo.

## Limites e erros

| Status | Quando |
| ------ | ------ |
| `400` | A mensagem está vazia ou é longa demais, ou a categoria não é uma das cinco acima |
| `401` | Não há sessão iniciada |
| `429` | O usuário já enviou cinco solicitações na última hora. O header `Retry-After` informa quantos segundos esperar |

::::note
O texto do comerciante nunca pode mencionar ninguém no canal de suporte. Apenas a pessoa da equipe configurada pela Fluxis é avisada.
::::
