Skip to main content

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:
El código es una cadena y se filtra antes de devolverlo. Un rechazo de ejecución también puede aparecer dentro del resultado asíncrono con HTTP 200.

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 encabezado Retry-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.