# Solicitudes de soporte

Los comercios pueden pedir ayuda al equipo de Fluxis desde el dashboard. La solicitud se guarda primero y se avisa al equipo después, por lo que nunca se pierde aunque el canal de notificación esté caído.

## Enviar una solicitud

`POST /app/support/requests`, desde una sesión iniciada en el dashboard. Cualquier rol de colaborador puede enviarla.

| Campo | Obligatorio | Descripción |
| ----- | ----------- | ----------- |
| `category` | Sí | Una de `payment_issue`, `point_of_sale`, `subscriptions`, `account`, `other` |
| `message` | Sí | Qué ocurrió, hasta 2000 caracteres |
| `reference` | No | El ID de una transacción o de un link de pago, hasta 100 caracteres |

La organización y el usuario salen de la sesión. Nunca se leen del cuerpo.

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

Cita el ID del ticket en cualquier seguimiento. Las respuestas llegan por email, a la dirección de tu cuenta.

## Qué pasa después

1. La solicitud se guarda con estado `pending` y la llamada responde `201`.
2. En aproximadamente un minuto el equipo recibe un mensaje en el canal de soporte, con la categoría, una vista previa y el ID del ticket.
3. La solicitud pasa a `dispatched` cuando ese mensaje se publica. Si la publicación falla, sigue en `pending` y se reintenta.

## Límites y errores

| Estado | Cuándo |
| ------ | ------ |
| `400` | El mensaje está vacío o es demasiado largo, o la categoría no es una de las cinco anteriores |
| `401` | No hay una sesión iniciada |
| `429` | El usuario ya envió cinco solicitudes en la última hora. El header `Retry-After` indica cuántos segundos esperar |

::::note
El texto del comercio nunca puede mencionar a nadie en el canal de soporte. Solo se avisa a la persona del equipo que Fluxis tiene configurada.
::::
