# Crear un enlace para conectar un sistema

> Crea un enlace de un solo uso donde la persona entrega sus credenciales del sistema para conectarlo.



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

|                     |                                                                      |
| ------------------- | -------------------------------------------------------------------- |
| **Tool ID**         | `conexiones.enlace.crear`                                            |
| **Nombre MCP**      | `conexiones__enlace__crear`                                          |
| **Conector**        | `conexiones`                                                         |
| **Plano**           | `action`                                                             |
| **Scope (permiso)** | `conexiones:write`                                                   |
| **Auth**            | `none`                                                               |
| **Versión**         | `1`                                                                  |
| **Sensible**        | sí                                                                   |
| **Deprecado**       | no                                                                   |
| **Comportamiento**  | readOnly=false, destructive=false, idempotent=false, openWorld=false |

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

Devuelve el enlace SIEMPRE con su dominio completo visible y explicando quién lo pidió y para qué; nunca lo presentes como un aviso del banco ni del SII. La credencial se cifra en el vault de esta misma organización y no la ve nadie más, tampoco tú. El enlace vence y sirve una sola vez. Si 'costoAdicional' no es null, la conexión nueva se suma al próximo cobro de la organización: díselo a la persona antes de entregar el enlace. Después de que la persona lo complete, usa 'conexiones.estado.consultar' para saber si ya hay datos.

## Entrada [#entrada]

| Campo        | Tipo                       | Requerido              | Descripción                                                                                                                                                                                                                                                                              |
| ------------ | -------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sistema`    | string                     | no                     | Código del sistema, tal como lo devuelve conexiones.sistemas.listar. OMÍTELO si no sabes con cuál trabaja quien va a recibir el enlace: entonces el enlace abre el catálogo y la persona elige ahí. Es obligatorio cuando modo es 'reconectar', porque esa conexión ya tiene su sistema. |
| `modo`       | `"crear"` · `"reconectar"` | no · default `"crear"` | 'crear' para una conexión nueva; 'reconectar' para renovar la credencial de una que ya existe.                                                                                                                                                                                           |
| `conexionId` | string                     | no                     | conn\_…, obligatorio cuando modo es 'reconectar'.                                                                                                                                                                                                                                        |

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

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "sistema": {
        "description": "Código del sistema, tal como lo devuelve conexiones.sistemas.listar. OMÍTELO si no sabes con cuál trabaja quien va a recibir el enlace: entonces el enlace abre el catálogo y la persona elige ahí. Es obligatorio cuando modo es 'reconectar', porque esa conexión ya tiene su sistema.",
        "type": "string"
      },
      "modo": {
        "default": "crear",
        "description": "'crear' para una conexión nueva; 'reconectar' para renovar la credencial de una que ya existe.",
        "type": "string",
        "enum": [
          "crear",
          "reconectar"
        ]
      },
      "conexionId": {
        "description": "conn_…, obligatorio cuando modo es 'reconectar'.",
        "type": "string"
      }
    }
  }
  ```
</details>

## Ejemplo [#ejemplo]

```bash title="curl"
curl -X POST https://connect.emisso.ai/api/v1/tools/conexiones.enlace.crear/execute \
  -H "Authorization: Bearer connect_sk_…" \
  -H "Content-Type: application/json" \
  -d '{"input":{"sistema":"sii"}}'
```

```ts title="SDK TypeScript"
const data = await connect.tools.conexiones.enlace.crear({ sistema: "sii" });
```

```json title="MCP · meta-tool execute"
{
  "tool": "conexiones.enlace.crear",
  "params": {
    "sistema": "sii"
  }
}
```

**Salida esperada (200):**

```json
{
  "data": {
    "url": "https://connect.emisso.ai/c/mYw2kQ81xR4tPnZs",
    "dominio": "connect.emisso.ai",
    "sistema": "sii",
    "sistemaNombre": "Servicio de Impuestos Internos",
    "modo": "crear",
    "expiraEn": "2026-08-07T15:32:11.000Z",
    "intentosMaximos": 5,
    "advertencia": "Este enlace pide credenciales de acceso al sistema. Muéstralo siempre con su dominio completo y di quién lo pidió y para qué. No lo presentes como un aviso del banco ni del SII.",
    "costoAdicional": null
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "conexiones.enlace.crear",
    "plane": "action",
    "latency_ms": 24,
    "audit_status": "recorded"
  }
}
```

> El enlace vence una hora después de acuñado y sirve una sola vez.

## Salida [#salida]

| Campo                               | Tipo                       | Requerido | Descripción                                                                    |                                                                                                                                                                                                                                                                                                                                                                                                        |
| ----------------------------------- | -------------------------- | --------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `url`                               | string                     | sí        | El enlace de un solo uso. Compártelo tal cual, con el dominio visible.         |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `dominio`                           | string                     | sí        | El dominio del enlace, ya extraído para mostrarlo junto a la URL.              |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `sistema`                           | string                     | null      | sí                                                                             | Código del sistema que se va a conectar, o null si el enlace deja que la persona lo elija.                                                                                                                                                                                                                                                                                                             |
| `sistemaNombre`                     | string                     | null      | sí                                                                             | Nombre del sistema, para presentar el enlace con claridad. null cuando el enlace no fija uno.                                                                                                                                                                                                                                                                                                          |
| `modo`                              | `"crear"` · `"reconectar"` | sí        | Si el enlace crea una conexión nueva o renueva la credencial de una existente. |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `expiraEn`                          | string                     | sí        | Cuándo vence el enlace (ISO 8601). Vencido, hay que crear otro.                |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `intentosMaximos`                   | entero                     | sí        | Cuántos intentos de login admite antes de agotarse.                            |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `advertencia`                       | string                     | sí        | Texto de presentación segura del enlace, listo para mostrar a la persona.      |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `costoAdicional`                    | objeto                     | null      | sí                                                                             | Lo que suma a la próxima renovación la conexión que nazca de este enlace, porque la organización ya usa lo que cubre el precio de su plan. null cuando no suma nada. Si no es null, díselo a la persona ANTES de entregar el enlace, con 'mensaje', en dólares + IVA. Con un enlace sin sistema aplica si el que elija se cobra. Si trae 'montoUsdConEmision', dile los dos montos: leer y emitir DTE. |
| `costoAdicional.montoUsd`           | número                     | sí        | Lo que suma al mes, en dólares y sin IVA.                                      |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `costoAdicional.montoUsdConEmision` | número                     | null      | sí                                                                             | Lo que suma al mes si la conexión del SII se crea emitiendo DTE, que cuesta más que una de lectura. null si el sistema no emite. Siempre null en conexiones.conexion.habilitar, donde la variante ya está fijada.                                                                                                                                                                                      |
| `costoAdicional.planNombre`         | string                     | sí        | El plan de la organización, como lo ve la persona.                             |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `costoAdicional.incluidas`          | entero                     | sí        | Cuántas conexiones incluye ese plan.                                           |                                                                                                                                                                                                                                                                                                                                                                                                        |
| `costoAdicional.mensaje`            | string                     | sí        | La frase lista para decírsela a la persona antes de entregar el enlace.        |                                                                                                                                                                                                                                                                                                                                                                                                        |

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

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "url": {
        "type": "string",
        "description": "El enlace de un solo uso. Compártelo tal cual, con el dominio visible."
      },
      "dominio": {
        "type": "string",
        "description": "El dominio del enlace, ya extraído para mostrarlo junto a la URL."
      },
      "sistema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "Código del sistema que se va a conectar, o null si el enlace deja que la persona lo elija."
      },
      "sistemaNombre": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "Nombre del sistema, para presentar el enlace con claridad. null cuando el enlace no fija uno."
      },
      "modo": {
        "type": "string",
        "enum": [
          "crear",
          "reconectar"
        ],
        "description": "Si el enlace crea una conexión nueva o renueva la credencial de una existente."
      },
      "expiraEn": {
        "type": "string",
        "description": "Cuándo vence el enlace (ISO 8601). Vencido, hay que crear otro."
      },
      "intentosMaximos": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991,
        "description": "Cuántos intentos de login admite antes de agotarse."
      },
      "advertencia": {
        "type": "string",
        "description": "Texto de presentación segura del enlace, listo para mostrar a la persona."
      },
      "costoAdicional": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "montoUsd": {
                "type": "number",
                "description": "Lo que suma al mes, en dólares y sin IVA."
              },
              "montoUsdConEmision": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Lo que suma al mes si la conexión del SII se crea emitiendo DTE, que cuesta más que una de lectura. null si el sistema no emite. Siempre null en conexiones.conexion.habilitar, donde la variante ya está fijada."
              },
              "planNombre": {
                "type": "string",
                "description": "El plan de la organización, como lo ve la persona."
              },
              "incluidas": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "Cuántas conexiones incluye ese plan."
              },
              "mensaje": {
                "type": "string",
                "description": "La frase lista para decírsela a la persona antes de entregar el enlace."
              }
            },
            "required": [
              "montoUsd",
              "montoUsdConEmision",
              "planNombre",
              "incluidas",
              "mensaje"
            ],
            "additionalProperties": false
          },
          {
            "type": "null"
          }
        ],
        "description": "Lo que suma a la próxima renovación la conexión que nazca de este enlace, porque la organización ya usa lo que cubre el precio de su plan. null cuando no suma nada. Si no es null, díselo a la persona ANTES de entregar el enlace, con 'mensaje', en dólares + IVA. Con un enlace sin sistema aplica si el que elija se cobra. Si trae 'montoUsdConEmision', dile los dos montos: leer y emitir DTE."
      }
    },
    "required": [
      "url",
      "dominio",
      "sistema",
      "sistemaNombre",
      "modo",
      "expiraEn",
      "intentosMaximos",
      "advertencia",
      "costoAdicional"
    ],
    "additionalProperties": false
  }
  ```
</details>

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

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](../errores).
