Autenticación
access_token, token_type, expires_in, expires_at y manager. Usa Authorization: Bearer <access_token> en llamadas administrativas; GET /api/v1/admin/auth/me verifica la sesión. Protege esa credencial en el backend del broker o en una sesión segura del panel; no la incluyas en un iframe o frontend público.
Un SUPER_ADMIN puede emitir tokens de sistema mediante POST /api/v1/admin/auth/system-token. Ese permiso es exclusivo del operador autorizado; un broker no debe asumir que puede emitirlo. La vigencia y rotación se acuerdan con Exura Tech.
Compañía y conexión
Para crear compañía se envían
name, slug, logo_url opcional e is_active. Para conexión se envían company_id, name, host, port opcional, login, password, platform: "MT5" e is_active. La API no devuelve la contraseña de conexión en las lecturas. Las credenciales de servidor MT5 se configuran en el backend, nunca en JavaScript público. Normalmente Exura Tech prepara estos recursos durante el onboarding del broker.
Torneos en un panel propio
POST /api/v1/tournaments crea el torneo con la sesión administrativa y devuelve ID, UUID y enlaces. PATCH /api/v1/tournaments/{id} edita; POST/PUT /api/v1/tournaments/{uuid}/registration-dates administra la ventana de inscripción; GET /api/v1/tournaments/{id}/registrations lista inscritos y cuentas. Esta última respuesta contiene credenciales: limita el acceso y evita guardarla en registros del navegador. Consulta la referencia de torneos para campos y rutas públicas.
Competencias en un panel propio
Concompany_id y connection_id autorizados, crea con POST /api/v1/competitions, lista con GET /api/v1/competitions y edita con PUT /api/v1/competitions/{uuid}. El inicio de una competencia en vivo no se puede cambiar, el fin debe seguir en el futuro y una competencia terminada ya no se edita. Consulta GET /api/v1/competitions/{uuid}/admin para rellenar el formulario.
El panel debe separar claramente generar/rotar clave CRM de consultar detalles: GET .../integration no revela un token anterior; POST .../integration-key devuelve uno nuevo y revoca el anterior. Lista inscritos con GET .../participants, revisa GET .../incidents y conserva el motivo de cualquier corrección final hecha mediante POST .../adjustment. Las correcciones solo se aceptan tras finalizar.

