Dos niveles de resultado
Comprueba el código HTTP y el contenido. Algunas consultas conservan el sobre MT5, por ejemplo{"retcode":"0 Done","answer":{}}; la forma de answer depende de la ruta.
Un éxito de transporte no equivale a una ejecución de trading confirmada.
Una verificación de contraseña fallida puede devolver HTTP 200 con valid:false.
Errores HTTP
Los errores de validación del servicio se simplifican a
{"detail":"Invalid request"} para no devolver datos sensibles. No dependas de
que detail contenga una lista de campos o el valor que enviaste. El cierre también
puede devolver un mensaje específico cuando los parámetros no coinciden con la posición.
Un error MT5 puede devolver:
Recuperación
Las consultas GET pueden repetirse con espera y un máximo de intentos. No apliques esa misma política automáticamente a las aperturas y cierres. Sigue idempotencia y recuperación para resultados inciertos. No se garantiza un encabezadoRetry-After; no inventes una espera fija del servidor.
Si recibes HTML o un bloqueo del proxy en vez de JSON, trátalo como una respuesta no
válida para tu flujo. Mantén la validación HTTPS y confirma el estado antes de operar.
Información para soporte
Conserva método, ruta, hora UTC, código HTTP,X-Request-ID, X-Audit-ID cuando exista,
login, ID de solicitud MT5 y clave de idempotencia para operaciones.
Las respuestas generadas por la aplicación incluyen X-Request-ID; un fallo previo
en el proxy o la red puede no incluirlo. X-Audit-ID depende de que se registre la auditoría.
Nunca envíes tokens, contraseñas ni el cuerpo de verificación en un reporte.