# Cotizar operación Global66

> Cotiza una transferencia, un P2P o una conversión en el MCP de Global66.



{/* AUTO-GENERATED by @emisso/codegen. DO NOT EDIT. */}

|                     |                                                                     |
| ------------------- | ------------------------------------------------------------------- |
| **Tool ID**         | `global66.cotizacion.crear`                                         |
| **Nombre MCP**      | `global66__cotizacion__crear`                                       |
| **Conector**        | `global66`                                                          |
| **Plano**           | `action`                                                            |
| **Scope (permiso)** | `global66:preparar`                                                 |
| **Auth**            | `connection_credentials`                                            |
| **Versión**         | `1`                                                                 |
| **Sensible**        | no                                                                  |
| **Deprecado**       | no                                                                  |
| **Comportamiento**  | readOnly=false, destructive=false, idempotent=false, 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`](/docs/referencia/conexiones/estado-consultar).

## Qué hace [#qué-hace]

No mueve ni reserva fondos y no valida saldo. El quoteId sirve para UNA preparación.

## Entrada [#entrada]

| Campo             | Tipo                                     | Requerido | Descripción                                                                                                                                                                        |
| ----------------- | ---------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `operation`       | `"TRANSFER"` · `"P2P"` · `"CONVERSION"`  | sí        | Transferencia, P2P o conversión entre cuentas propias.                                                                                                                             |
| `originCurrency`  | string                                   | sí        | Moneda de origen.                                                                                                                                                                  |
| `destinyCurrency` | string                                   | sí        | Moneda de destino.                                                                                                                                                                 |
| `amount`          | número                                   | sí        | Monto según amountType.                                                                                                                                                            |
| `amountType`      | `"SEND"` · `"RECEIVE"`                   | no        | SEND: amount es lo enviado; RECEIVE: lo recibido.                                                                                                                                  |
| `destinyCountry`  | string                                   | no        | País de destino.                                                                                                                                                                   |
| `beneficiaryId`   | string `^[1-9][0-9]{0,15}$`              | no        | beneficiaryId de global66.beneficiarios.listar. En TRANSFER se puede cotizar sin beneficiario (entonces paymentType es obligatorio); preparar sí lo exige. No aplica a CONVERSION. |
| `paymentType`     | `"WIRE_TRANSFER"` · `"BREB"` · `"SWIFT"` | no        | Solo TRANSFER. Debe coincidir con el medio del beneficiario al preparar.                                                                                                           |

<details>
  <summary>
    JSON Schema de entrada
  </summary>

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "operation": {
        "type": "string",
        "enum": [
          "TRANSFER",
          "P2P",
          "CONVERSION"
        ],
        "description": "Transferencia, P2P o conversión entre cuentas propias."
      },
      "originCurrency": {
        "type": "string",
        "description": "Moneda de origen."
      },
      "destinyCurrency": {
        "type": "string",
        "description": "Moneda de destino."
      },
      "amount": {
        "type": "number",
        "exclusiveMinimum": 0,
        "description": "Monto según amountType."
      },
      "amountType": {
        "description": "SEND: amount es lo enviado; RECEIVE: lo recibido.",
        "type": "string",
        "enum": [
          "SEND",
          "RECEIVE"
        ]
      },
      "destinyCountry": {
        "description": "País de destino.",
        "type": "string"
      },
      "beneficiaryId": {
        "description": "beneficiaryId de global66.beneficiarios.listar. En TRANSFER se puede cotizar sin beneficiario (entonces paymentType es obligatorio); preparar sí lo exige. No aplica a CONVERSION.",
        "type": "string",
        "pattern": "^[1-9][0-9]{0,15}$"
      },
      "paymentType": {
        "description": "Solo TRANSFER. Debe coincidir con el medio del beneficiario al preparar.",
        "type": "string",
        "enum": [
          "WIRE_TRANSFER",
          "BREB",
          "SWIFT"
        ]
      }
    },
    "required": [
      "operation",
      "originCurrency",
      "destinyCurrency",
      "amount"
    ]
  }
  ```
</details>

## Salida [#salida]

| Campo     | Tipo   | Requerido | Descripción                                                                |
| --------- | ------ | --------- | -------------------------------------------------------------------------- |
| `estado`  | string | sí        | Global66 cotizó. No se movieron ni reservaron fondos y no se validó saldo. |
| `quoteId` | string | sí        | Id de la cotización, como texto; sirve para UNA preparación.               |
| `datos`   | objeto | sí        | Cotización de Global66 (montos, tasas, comisiones y límites).              |

<details>
  <summary>
    JSON Schema de salida
  </summary>

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "estado": {
        "type": "string",
        "const": "cotizado",
        "description": "Global66 cotizó. No se movieron ni reservaron fondos y no se validó saldo."
      },
      "quoteId": {
        "type": "string",
        "description": "Id de la cotización, como texto; sirve para UNA preparación."
      },
      "datos": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {},
        "description": "Cotización de Global66 (montos, tasas, comisiones y límites)."
      }
    },
    "required": [
      "estado",
      "quoteId",
      "datos"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Errores de esta tool [#errores-de-esta-tool]

| Código                           | HTTP | Reintentable | Qué hacer                                                                                                                                                                                |
| -------------------------------- | ---- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `connection_disabled`            | 403  | no           | Reactívala en /connections o usa otra conexión del mismo sistema.                                                                                                                        |
| `connection_not_found`           | 404  | no           | Usa uno de los connectionId que lista el error, o revisa la conexión en /connections. No hace falta reactivar nada.                                                                      |
| `connection_credential_required` | 428  | no           | Crea 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_busy`                | 409  | sí           | Espera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez.                                                          |
| `upstream_error`                 | 502  | sí           | Reintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración.                                                                                          |
| `timeout`                        | 504  | sí           | Reintenta. Para sincronizaciones largas usa la vía asíncrona y consulta el estado del trabajo.                                                                                           |
| `connector_onboarding_required`  | 428  | no           | Lee 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_enabled`   | 403  | no           | Pide 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_limited`                   | 429  | sí           | Espera y reintenta con backoff exponencial.                                                                                                                                              |
| `upstream_unexpected_response`   | 502  | no           | No 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](/docs/referencia/errores).
