---
title: "Conectar un sistema que no pide clave"
method: POST
path: "/v1/tools/conexiones.conexion.crear/execute"
tags: ["conexiones"]
---

# Conectar un sistema que no pide clave

`POST /v1/tools/conexiones.conexion.crear/execute`

## Request

- Base URL: `https://connect.emisso.ai/api`
- URL: `https://connect.emisso.ai/api/v1/tools/conexiones.conexion.crear/execute`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://connect.emisso.ai/authorize`, token URL `https://connect.emisso.ai/token`, scopes: `conexiones:write`)

Crea la conexión de un sistema público que no pide credenciales (hoy Mercado Público) para una empresa, y devuelve su connectionId. La conexión se cobra como cualquier otra del plan de la organización: créala sólo si la persona quiere usar ese sistema. Si esa empresa ya tiene una conexión activa con el sistema, devuelve la misma y no crea otra. Para los sistemas que piden clave usa conexiones.enlace.crear.

## Request body

- object
  - `input` ConexionesConexionCrearInput, required
    - `sistema` string, required: Código del sistema, tal como lo devuelve conexiones.sistemas.listar. Sólo sirve para sistemas sin clave.
    - `empresaRut` string, required: RUT de la empresa para la que se usa el sistema, con dígito verificador. Ejemplo: 76.123.456-0.

## Response `200`

La tool corrió bien. 'data' es la salida de la tool tal cual, y 'meta' trae el 'request_id' que identifica esta llamada en la bitácora.

- object
  - `data` ConexionesConexionCrearOutput, required
    - `id` string, required: El id de la conexión (conn_…). Pásalo como connectionId al usar las tools de ese sistema.
    - `sistema` string, required: El código del sistema conectado.
    - `sistemaNombre` string, required: El nombre del sistema, para presentarlo.
    - `nombre` string, required: El nombre con que quedó la conexión en el panel.
    - `empresaRut` string, required: El RUT de la empresa de esta conexión, canonizado sin puntos y con guion (76123456-0).
    - `creada` boolean, required: true si esta llamada creó la conexión; false si esa empresa ya tenía una activa con este sistema y se devolvió la misma, sin crear otra ni sumar un cobro.
  - `meta` ResponseMeta
    - `request_id` string, required: Identificador que el servidor le da a esta llamada (req_…). Correlaciona con la fila de la bitácora y es lo primero que pide soporte: guárdalo en tus logs.
    - `operation_request_id` string, uuid: Identidad del intento e-Boleta original. Se conserva al reproducir el resultado del journal; request_id identifica la llamada actual.
    - `tool_id` string, required: La tool que se ejecutó, con su id punteado.
    - `plane` 'action' | 'read', required: 'read' = la llamada escribió en el plano persistido (un sync). 'action' = efímera, no persistió nada de negocio: actuar afuera, o leer lo que un sync ya dejó.
    - `latency_ms` integer, required: Cuánto tardó la ejecución, en milisegundos.
    - `audit_status` 'recorded' | 'degraded', required: 'recorded' = la bitácora recibió la fila de esta llamada. 'degraded' = la acción se hizo pero el registro cayó a un respaldo duradero. Nunca convierte una acción exitosa en un error, porque reintentar por eso sería pagar o emitir dos veces.
    - `idempotency` 'replayed': Presente solo cuando una tool destructiva devolvió la respuesta guardada de un intento previo con la misma Idempotency-Key. Significa que en ESTA llamada no ocurrió ningún efecto nuevo.

## Other responses

- `400`: validation_error (400)
- `401`: unauthorized (401)
- `403`: scope_not_granted | connection_scope_not_enabled | alcance_not_enabled
- `404`: tool_not_found (404)
- `409`: connection_ambiguous | connection_busy
- `428`: connection_credential_required (428)
- `500`: internal_error (500)

---

[API](https://skmtc.dev/emisso/apis/emisso-connect-api.md) · [All operations](https://skmtc.dev/emisso/apis/emisso-connect-api/llms.txt) · [OpenAPI document](https://skmtc.dev/emisso/apis/emisso-connect-api/revisions/e766c01ef2a0?raw)
