Skip to main content
GET /api/v1/trading/requests/{request_id} obtiene el resultado MT5 de una apertura o cierre enviado con el mismo token. También exige que la verificación de la cuenta siga vigente. El ID procede de answer.id o answer.ID en la respuesta de envío.
12345 es un ejemplo de ID de solicitud, no un ticket de posición.

Recogida persistente y consultas repetidas

La API recoge eventos MT5 por lotes en segundo plano usando la conexión física que envió la solicitud. El GET del cliente lee RDS: no consume eventos de MT5. El envío devuelve su ID sin esperar la ejecución. Puede haber una breve demora hasta que el recolector guarde el resultado.
  • 200: resultado final guardado, incluso rechazo o ejecución parcial. Revisar códigos MT5.
  • 202: {"status":"pending","request_id":1586,"result":null}. Esperar al menos lo indicado en Retry-After (un segundo) y repetir únicamente este GET.
  • 409 con TRADE_RESULT_UNAVAILABLE: no se conservó un resultado final. El campo result puede contener la última instantánea pública. Reconciliar posiciones y órdenes; no reenviar automáticamente la operación.
  • 409 con TRADE_RESULT_AMBIGUOUS: MT5 reutilizó un ID entre sesiones para ese token. Reconciliar sin adivinar a qué operación corresponde.
El resultado final guardado se puede consultar después de reiniciar mientras el token y la verificación sigan vigentes. Los resultados consumidos antes de instalar esta mejora no se recuperan con la caché. Una caída entre consumir y guardar un evento todavía puede perderlo; no disponible no significa operación fallida.

Proceso de confirmación

  1. Conserva la respuesta de envío asociada a la intención y a su clave de idempotencia.
  2. Consulta el ID con el token que lo creó.
  3. Examina el resultado MT5: recibir una respuesta HTTP correcta no implica ejecución.
  4. Si aún no hay un resultado concluyente, espera antes de consultar otra vez. Usa un intervalo configurable, respetando el límite de tu token, y un plazo máximo local.
  5. Cuando MT5 confirme ejecución o rechazo, consulta posiciones y órdenes para reconciliar el efecto real sobre la cuenta.
  6. Si vence tu plazo sin poder confirmar, marca la intención como incierta y solicita soporte.
La respuesta usa una lista explícita de campos públicos. Mantiene retcode y answer; si MT5 devuelve eventos agrupados por ID, conserva ese formato solo para la solicitud consultada. También admite resultados planos y listas de eventos. Los campos ausentes se omiten; no se inventan estados ni valores. En result se conservan ID, Retcode, DealID, OrderID, Volume y Price; los resultados planos también admiten ResultRetcode, ResultDeal, ResultOrder, ResultVolume y ResultPrice. En el evento answer se conservan IDClient, Symbol, Type, TypeFill, Volume, PriceOrder, Position y esos cinco campos Result*. Se excluyen cuentas, login Manager, IP, comentarios, datos del gateway, volúmenes extendidos, ApiData y campos nuevos no autorizados. Volume en el evento answer es el volumen solicitado; ResultVolume es el volumen ejecutado informado. Un ID de solicitud, orden o deal no debe confundirse con el ticket de posición. Consulta posiciones para reconciliar el resultado.

Casos que requieren atención

  • Un 403 con Trade request not owned by this token indica que el ID no está registrado para ese token. Usar otro token no permite recuperar la solicitud original.
  • Una verificación vencida debe renovarse para seguir consultando la cuenta.
  • Un timeout al consultar el resultado permite repetir la consulta GET; no implica que debas reenviar la apertura o el cierre.
  • Si no recibiste el ID, no hay búsqueda partner por clave de idempotencia. Reconcilia la cuenta y escala el caso si no puedes determinar qué ocurrió.
Sigue la recuperación de resultados inciertos.