> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducción

> Chat 1:1 y grupos dentro de tu app: identidad estable, JWT en tu backend y WebSocket en tiempo real.

<Tip>
  Chat in-app es la **conversación dentro de tu producto**. No es el [Chat en el sitio](/es/ai-web-widget/index) (widget con IA en la página). Aquí el usuario ya está autenticado en **tu** app.
</Tip>

## ¿Qué es Chat en Notifique?

El canal para **mensajes 1:1 y grupos** en iOS, Android o web de tu producto. Creas un **Chat App** en el workspace, das de alta usuarios con un `externalUserId` estable y emites un **JWT en tu backend**. La app móvil o el front **nunca** ve el signing secret.

Puedes:

* **Crear Chat Apps** con orígenes permitidos (CORS) y flags de lo que el JWT puede hacer
* **Sincronizar usuarios** (`PUT /v1/chat/users`) y **agentes** del equipo (`POST /v1/chat/agents`)
* **Emitir JWT** (`POST /v1/chat/users/token`) con TTL de 60 s a 24 h (por defecto 1 h)
* **Abrir conversaciones** 1:1 o grupo con la API Key; el cliente solo crea si activas las flags
* **Enviar y listar mensajes** por REST (`POST /v1/chat/messages`) o WebSocket
* **Espejar en Inbox** automáticamente
* **Recibir webhooks** `chat.received` (usuario) y `chat.sent` (agente), más ciclo de conversación y miembros

<Note>
  A diferencia de WhatsApp, el chat **no usa instancia** de canal. Basta Chat App, usuarios y API Key (o JWT del usuario) con los alcances correctos.
</Note>

## Identidad

El id del usuario en **tu** sistema es `externalUserId` (inmutable). Notifique guarda un `chatUserId` interno. El JWT lleva:

| Claim  | Valor                    |
| ------ | ------------------------ |
| `iss`  | `notifique-chat`         |
| `aud`  | id del Chat App          |
| `sub`  | `chatUserId`             |
| `ext`  | `externalUserId`         |
| `kind` | `USER` o `AGENT`         |
| `jti`  | id del token (revocable) |

El **signing secret** queda en el servidor. Rótalo en el panel o con `POST /v1/chat/apps/{id}/rotate-secret`.

## Tiempo real

Conecta a `wss://api.notifique.dev/v1/chat/ws`. **No** pongas el JWT en la query. Primer frame:

```json theme={null}
{ "type": "auth", "token": "<jwt>" }
```

Luego `auth.ok`. Después: `subscribe` / `unsubscribe`, `message.send`, `message.read`, `typing.start` / `typing.stop`, `ping` → `pong`.

Hay un tope de **conexiones simultáneas** por plan. Si se supera, el gateway rechaza el socket.

## Cobro y límites

Cada mensaje enviado usa el SKU **`CHAT_MESSAGE`**: **1 crédito** (o **R\$ 0,01** en Pague por uso).

| Plan     | Apps | Conexiones WS | Miembros por grupo |
| -------- | ---- | ------------- | ------------------ |
| Free     | 1    | 25            | 32                 |
| Basic    | 1    | 100           | 32                 |
| Pro      | 2    | 400           | 128                |
| Business | 9    | 1.500         | 256                |

Los mismos números aparecen en **Planes y precios** del panel.

## Flags por defecto (restrictivas)

* `allowClientCreateDirect` = **false**
* `allowClientCreateGroup` = **false**
* `allowClientAddMembers` = **false**

El JWT **no** crea conversación ni agrega miembros. La API Key sí. JWT con la flag apagada → **403** `CHAT_CLIENT_CREATE_DISABLED`.

## Cuándo usarlo

**Inbox del producto**, **soporte 1:1** y **grupos pequeños**. Difusión, OTP o reenganche fuera de la app → [Push](/es/push-api/como-funciona/introducao), [email](/es/emails-api/como-funciona/introducao) o [WhatsApp](/es/whatsapp-api/como-funciona/introducao). Widget en landing → [Chat en el sitio](/es/ai-web-widget/index).

<Info>
  Cada **API Key** pertenece a **un** workspace. En v1 **no envíes** `x-workspace-id`.
</Info>

## Próximos pasos

* [Quick Start](/es/chat-api/como-funciona/quick-start)
* [Usuario y agente](/es/chat-api/como-funciona/usuario-e-agente): `USER` vs `AGENT`
* [Enviar mensajes](/es/chat-api/como-funciona/enviar-mensagens): texto, imagen, audio y archivo
* [Alcances de la API Key](/es/chat-api/como-funciona/escopos-da-api-key)
* [Eventos de webhooks](/es/chat-api/como-funciona/eventos-do-webhooks)
