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

# Verificar y revocar cuentas

> Ciclo de autorización de una cuenta para el token del partner.

## 1. Verificar propiedad

Envía `POST /api/v1/accounts/{login}/verify` con el login de la cuenta y este cuerpo:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{"password": "CONTRASENA_MAESTRA_DEL_CLIENTE"}
```

`password` admite entre 1 y 128 caracteres. No se aceptan campos adicionales.
La API valida la contraseña maestra con MT5, comprueba los datos de la cuenta,
y guarda una verificación vinculada a tu token. La contraseña no se persiste.

Ejemplo ilustrativo de éxito; la fecha de expiración real la devuelve el servicio:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "valid": true,
  "verified": true,
  "login": 123456,
  "expires_at": "2026-10-01T12:00:00+00:00",
  "retcode": "0"
}
```

Solo continúa si `valid` y `verified` son `true`. Guarda `expires_at` y vuelve a
verificar cuando expire. No asumas una duración fija ni una renovación automática.
La verificación con otro token no se comparte.

La vigencia predeterminada es de **90 días** desde cada verificación exitosa.
El servicio puede configurar una duración distinta; usa siempre el `expires_at`
recibido. Cambiar la duración predeterminada no amplía las verificaciones existentes:
conservan su vencimiento hasta que se verifique la cuenta de nuevo.

La contraseña incorrecta puede producir HTTP 200 con:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{"valid": false, "retcode": "3006"}
```

Ese resultado no concede una nueva autorización. Los fallos repetidos pueden producir
`429`. No hagas reintentos automáticos de contraseñas; solicita al usuario que revise
sus datos y respeta el bloqueo. Una contraseña de inversor no verifica este flujo.

## 2. Consultar las verificaciones

`GET /api/v1/account-verifications` devuelve un arreglo de los registros de tu token,
con `login`, `verified_at`, `expires_at` y `revoked_at`.
Puede incluir verificaciones vencidas o revocadas; aparecer en la lista no implica
acceso vigente. Comprueba que `revoked_at` sea `null` y que `expires_at` sea futura,
además de mantener el token activo. Un token sin registros obtiene `[]`.

## 3. Retirar el acceso

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --fail-with-body -X DELETE \
  "$API_BASE/api/v1/account-verifications/123456" \
  -H "Authorization: Bearer $MT5_API_TOKEN"
```

`{"revoked":true}` indica que se revocó el vínculo; `{"revoked":false}` indica que
no había un registro revocable para ese token y login. La revocación no modifica la
contraseña MT5 ni afecta la verificación de otros tokens.

<Warning>
  Revocar no cierra posiciones ni cancela órdenes. Resuelve las operaciones pendientes
  antes de retirar el acceso si necesitas seguir consultándolas o cerrarlas con la API.
</Warning>

Después de la revocación o expiración, las operaciones que requieren esa cuenta
se rechazan. Para recuperar acceso, vuelve a verificarla con su contraseña maestra.

## 4. Conservar credenciales y volver a verificar

Si el partner no conserva la contraseña maestra, deberá pedir al cliente que la
introduzca de nuevo cuando sea necesario verificar la cuenta. La API no devuelve
la contraseña ni ofrece un mecanismo de renovación sin ella.

Conserva en tu backend el `login`, la referencia al token utilizado y `expires_at`.
Consulta las verificaciones para comprobar también `revoked_at`; los datos guardados
localmente no garantizan que el acceso siga vigente.

Para volver a verificar sin intervención del cliente, puedes conservar la contraseña
con su autorización en una bóveda de secretos del servidor. Aplica cifrado en reposo,
acceso limitado al servicio que verifica las cuentas y exclusión de contraseñas de
los registros. Elimina la credencial guardada cuando el cliente desconecte la cuenta
o retire su autorización.

<Warning>
  No guardes la contraseña en `localStorage`, `sessionStorage`, archivos en texto
  plano ni código del frontend. Guardarla es opcional; si no necesitas automatizar
  la reverificación, solicita la contraseña de nuevo al cliente.
</Warning>

Ante una caducidad, vuelve a verificar solo si el cliente mantiene autorizada la
integración. Ante una revocación deliberada, detén la automatización y solicita una
nueva autorización antes de verificar otra vez. Si la contraseña guardada falla,
solicita la actual al cliente y evita reintentos automáticos. Verificar una cuenta
no reactiva un token del partner vencido o revocado.

Consulta las [prácticas de gestión de secretos de OWASP](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html)
para implementar el almacenamiento protegido.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.