Cuenta y equipo
La gestión de tu cuenta de desarrollador y de tu equipo vive en el
dashboard, bajo /platform/dashboard/*. Toda esta superficie es cookie-only:
la consume el dashboard web con la sesión access_token_dev que setea
POST /platform/dashboard/login. No se expone a API keys programáticas: no
hay scope que la habilite, igual que la conexión de canales y la facturación.
Distinto de la API. La superficie
/platform/v1/*(send, media, templates, data plane, webhooks, broadcasts, gestión de canales) se autentica conX-API-Key. La higiene de cuenta y el equipo NO: son plomería del dashboard.
Higiene de cuenta
Section titled “Higiene de cuenta”Verificación de correo
Section titled “Verificación de correo”Al registrarte (POST /platform/dashboard/register) tu cuenta arranca con
email_verified = false. El dashboard muestra un banner “verificá tu correo”
mientras siga en false.
| Método + ruta | Auth | Descripción |
|---|---|---|
POST /platform/dashboard/resend-verification | Cookie | Re-emite un token de verificación (TTL 24 h) y dispara el correo. Siempre 200: si el servicio de correo no está configurado, el envío se saltea y se loguea, sin bloquear. |
POST /platform/dashboard/verify-email | Token (el token ES el auth) | Consume el token y setea email_verified = true. 400 invalid_token si el token es inválido / vencido / ya usado / de otro propósito. |
El correo de verificación lleva un enlace a
https://devs.kalipto.app/app/verify-email?token=<token>; esa página del
dashboard hace el POST por vos.
// POST /platform/dashboard/verify-email{ "token": "<token de la URL>" }// → 200 { "message": "Email verified", "email_verified": true }Recuperación de contraseña
Section titled “Recuperación de contraseña”Dos pasos: pedir el enlace, y restablecer con el token.
| Método + ruta | Auth | Descripción |
|---|---|---|
POST /platform/dashboard/forgot-password | Ninguna | Pide un enlace de restablecimiento. Siempre 200, exista o no la cuenta (anti-enumeración). El token (TTL 1 h) + el correo solo se crean cuando la cuenta existe. |
POST /platform/dashboard/reset-password | Token | Consume el token y setea la contraseña nueva (password, 8-128 chars). 400 invalid_token si el token es inválido / vencido / ya usado. |
// POST /platform/dashboard/forgot-password// → 200 (idéntico exista o no la cuenta)// { "message": "Si la cuenta existe, te enviamos un correo para restablecer la contraseña." }Anti-enumeración.
forgot-passworddevuelve la misma respuesta exista o no el correo. No podés descubrir qué correos tienen cuenta sondeando este endpoint.
El correo de restablecimiento lleva a
https://devs.kalipto.app/app/reset-password?token=<token>.
Borrar la cuenta
Section titled “Borrar la cuenta”| Método + ruta | Auth | Descripción |
|---|---|---|
DELETE /platform/dashboard/account | Cookie | Borra tu cuenta de desarrollador + cascada FK sobre todas las filas hijas platform_* (canales, mensajes, conversaciones, contactos, templates, keys, webhooks, broadcasts, membresías). Devuelve 204 y limpia la cookie de sesión. |
- El borrado es síncrono: ves la operación completa antes de que se limpie la cookie.
- Antes de borrar, se intenta cancelar la suscripción de Polar (best-effort, nunca bloquea el borrado) para que la facturación se detenga.
- La cascada la hace el
ondelete="CASCADE"de las FKs. Cero FK abusinesses: la plataforma es un sistema independiente, así que borrar tu cuenta de desarrollador no toca ningún negocio managed.
Irreversible. No hay papelera ni restauración. Toda tu data del data plane (mensajes/conversaciones/contactos), tus canales, tus keys y tus membresías se borran.
Equipo
Section titled “Equipo”Podés invitar a otros desarrolladores a tu cuenta. Las membresías viven bajo
/platform/dashboard/team/* (cookie-only, owner-scoped).
| Método + ruta | Auth | Descripción |
|---|---|---|
POST /platform/dashboard/team/invite | Cookie (owner) | Invitá por correo. Body {email, role} con role ∈ {owner, member} (default member). Crea una membresía invited (token TTL 7 días) y dispara el correo de invitación. 201. 409 already_member si ese correo ya fue invitado (UNIQUE (owner_account_id, invited_email)) o si te invitás a vos mismo. |
GET /platform/dashboard/team | Cookie (owner) | Lista los miembros (invited + active), más nuevo primero. |
POST /platform/dashboard/team/accept | Cookie (el invitado, logueado en SU cuenta) | Acepta la invitación. Body {token} de la URL del correo. Linkea tu cuenta como miembro (status='active'), setea member_account_id, y limpia el token. 400 invalid_invite si la invitación falta / venció / fue revocada / ya no está invited. |
DELETE /platform/dashboard/team/{member_id} | Cookie (owner) | Revoca una membresía (la marca revoked). 204. 404 si el miembro no es tuyo (owner-scoped). |
El correo de invitación lleva a
https://devs.kalipto.app/app/accept-invite?token=<token>. El invitado tiene
que estar logueado en su propia cuenta de desarrollador para aceptar.
// POST /platform/dashboard/team/invite// → 201 { "id": 7, "invited_email": "[email protected]",// "member_account_id": null, "role": "member", "status": "invited",// "created_at": "...", "accepted_at": null }Estados de una membresía
Section titled “Estados de una membresía”| Estado | Significado |
|---|---|
invited | Invitación enviada, todavía sin aceptar. |
active | El invitado aceptó; member_account_id apunta a su cuenta. |
revoked | El owner revocó la membresía. |
Alcance del equipo (v1)
Section titled “Alcance del equipo (v1)”En esta versión, el equipo es solo el ciclo de vida de la membresía: invitar, aceptar, listar y revocar. Un miembro activo todavía NO opera sobre los recursos del owner (canales, mensajes, keys): eso es un WF futuro documentado. Hoy, ser miembro registra la relación; no delega autoridad sobre las otras superficies de la API.
Cada cuenta de desarrollador sigue autenticándose con su propia sesión / sus propias keys. La membresía es el primer paso del modelo de colaboración; el acceso compartido a recursos llega después.
Próximo paso
Section titled “Próximo paso”- Autenticación: cómo generar API keys y elegir
scopes para la superficie
/platform/v1/*. - Quickstart: registrar cuenta, conectar un canal y enviar tu primer mensaje.