Connect

Preparar operación Global66 para aprobación

Deja una operación en Global66 PENDIENTE DE APROBACIÓN humana en la app de Global66 (PENDING_CONFIRMATION_MCP), a partir de una cotización.

Tool IDglobal66.operacion.preparar
Nombre MCPglobal66__operacion__preparar
Conectorglobal66
Planoaction
Scope (permiso)global66:preparar
Authconnection_credentials
Versión1
Sensiblesí
Deprecadono
ComportamientoreadOnly=false, destructive=true, idempotent=true, openWorld=true

Requiere conexión. Indica cuál en cada llamada: header X-Connect-Connection en REST y campo connectionId en el execute_write de MCP. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale de conexiones.estado.consultar.

Qué hace

NO envía dinero: nadie puede aprobarla, cancelarla ni modificarla desde Connect. El quoteId es de un solo uso, así que repetirla no crea otra operación.

Entrada

CampoTipoRequeridoDescripción
operation"TRANSFER" · "P2P" · "CONVERSION"síDebe coincidir con la cotización.
quoteIdstring ^[1-9][0-9]{0,15}$síquoteId de global66.cotizacion.crear; de un solo uso.
originAccountIdstring ^[1-9][0-9]{0,15}$síCuenta de origen (accountId de Global66).
beneficiaryIdstring ^[1-9][0-9]{0,15}$noObligatorio en TRANSFER y P2P.
currencyCodestringnoSolo P2P.
destinyAccountIdstring ^[1-9][0-9]{0,15}$noCuenta propia de destino; solo y obligatoria en CONVERSION.
descriptionstringnoGlosa de la operación.
purposeslista de objetonoPropósitos sin repetir; la suma no puede superar receiveAmountUsd de la cotización. Obligatorio en COMEX.
purposes[].purposeIdstring ^[1-9][0-9]{0,15}$sípurposeId real de global66.propositos_operacion.listar.
purposes[].amountUsdnúmerosíMonto en USD asignado a este propósito.
JSON Schema de entrada
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "TRANSFER",
        "P2P",
        "CONVERSION"
      ],
      "description": "Debe coincidir con la cotización."
    },
    "quoteId": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,15}$",
      "description": "quoteId de global66.cotizacion.crear; de un solo uso."
    },
    "originAccountId": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,15}$",
      "description": "Cuenta de origen (accountId de Global66)."
    },
    "beneficiaryId": {
      "description": "Obligatorio en TRANSFER y P2P.",
      "type": "string",
      "pattern": "^[1-9][0-9]{0,15}$"
    },
    "currencyCode": {
      "description": "Solo P2P.",
      "type": "string"
    },
    "destinyAccountId": {
      "description": "Cuenta propia de destino; solo y obligatoria en CONVERSION.",
      "type": "string",
      "pattern": "^[1-9][0-9]{0,15}$"
    },
    "description": {
      "description": "Glosa de la operación.",
      "type": "string",
      "maxLength": 66
    },
    "purposes": {
      "description": "Propósitos sin repetir; la suma no puede superar receiveAmountUsd de la cotización. Obligatorio en COMEX.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "purposeId": {
            "type": "string",
            "pattern": "^[1-9][0-9]{0,15}$",
            "description": "purposeId real de global66.propositos_operacion.listar."
          },
          "amountUsd": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Monto en USD asignado a este propósito."
          }
        },
        "required": [
          "purposeId",
          "amountUsd"
        ]
      }
    }
  },
  "required": [
    "operation",
    "quoteId",
    "originAccountId"
  ]
}

Salida

CampoTipoRequeridoDescripción
estadostringsíLa operación espera que una persona la apruebe con PIN en la app de Global66 (vence a las 24 h). No es dinero enviado.
estadoGlobal66stringsíEstado verbatim de Global66.
operacionIdstringsíId de la operación preparada en Global66, como texto.
datosobjetosíRespuesta de Global66 sin reinterpretar.
JSON Schema de salida
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "estado": {
      "type": "string",
      "const": "pendiente_aprobacion_en_global66",
      "description": "La operación espera que una persona la apruebe con PIN en la app de Global66 (vence a las 24 h). No es dinero enviado."
    },
    "estadoGlobal66": {
      "type": "string",
      "const": "PENDING_CONFIRMATION_MCP",
      "description": "Estado verbatim de Global66."
    },
    "operacionId": {
      "type": "string",
      "description": "Id de la operación preparada en Global66, como texto."
    },
    "datos": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Respuesta de Global66 sin reinterpretar."
    }
  },
  "required": [
    "estado",
    "estadoGlobal66",
    "operacionId",
    "datos"
  ],
  "additionalProperties": false
}

Errores de esta tool

CódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
connection_not_found404noUsa uno de los connectionId que lista el error, o revisa la conexión en /connections. No hace falta reactivar nada.
connection_credential_required428noCrea un enlace con conexiones.enlace.crear (modo reconectar si la conexión ya existe) y pide a la persona que entregue la credencial de nuevo. No reintentes con la credencial anterior.
connection_busy409síEspera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez.
upstream_error502síReintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración.
timeout504síReintenta. Para sincronizaciones largas usa la vía asíncrona y consulta el estado del trabajo.
connector_onboarding_required428noLee el mensaje: dice qué falta. Se completa en el portal de ese sistema, no en Connect, y después la llamada funciona sin cambios.
connection_scope_not_enabled403noPide a un owner/admin que habilite el scope en /connections para esa conexión, o usa otra que ya lo tenga activo. Cambiar la credencial del actor no resuelve este error.
rate_limited429síEspera y reintenta con backoff exponencial.
upstream_unexpected_response502noNo reintentes: la respuesta es determinista. Repórtalo con el request_id para que actualicemos el conector.

Toda llamada puede devolver además los códigos transversales (validation_error, unauthorized, scope_not_granted, rate_limited, entre otros): el detalle vive en el catálogo de errores.

En esta página