De cero al primer mensaje: Chat App → usuarios → JWT en tu backend → conversación → envío.
En pocas palabras
- Crea un Chat App y guarda
id, publicKey y el signing secret (solo en el servidor).
- Da de alta usuarios con
externalUserId estable.
- Emite el JWT en tu backend (
POST /v1/chat/users/token). La app solo recibe el token.
- Abre el 1:1 con la API Key (las flags de creación por JWT vienen apagadas).
- Envía con la API Key (
senderExternalUserId) o con el JWT del miembro.
Contexto: Introducción. Alcances: Alcances de la API Key.
Nunca incrustes el signing secret en la app. Solo tu servidor firma JWT.
1. Crear Chat App
Panel: Visión general → Chat → Nuevo app. O API:
Alcance: chat:apps:create. Guarda el id. El signingSecret solo aparece en la creación o al rotar.
2. Usuarios
Repite para user_bob. Alcance: chat:users.
3. JWT (tu backend)
Entrega data.token solo al cliente autenticado como Alice. TTL por defecto 3600 s; máximo 86400.
4. Conversación 1:1 (API Key)
Con las flags por defecto el JWT no crea conversación (403 CHAT_CLIENT_CREATE_DISABLED).
DIRECT exige exactamente dos USER. El par ya existe → 409 CHAT_DIRECT_EXISTS.
5. Enviar
Mismo contrato PIV1 que los otros canales: from (id del Chat App), to (id de la conversación), type y payload.
Cada envío consume 1 crédito (CHAT_MESSAGE).
Con JWT del miembro: el mismo path, sin senderExternalUserId. El path antiguo POST /v1/chat/conversations/{id}/messages sigue funcionando.
6. WebSocket
wss://api.notifique.dev/v1/chat/ws — primer frame { "type": "auth", "token": "<jwt>" } (sin token en la query).
Próximos pasos