# Conectando mediante la nube (CreateCloud)

Esta guía explica cómo conectar un terminal TPV Integrado de forma remota, a través de la nube de Getnet, usando `CreateCloud`.

---

## Cuándo usar la conexión Cloud2Cloud

Usa una conexión Cloud2Cloud cuando:

* El terminal esté remoto y no sea accesible en tu red local
* Tu sistema de automatización funcione como un backend o un servicio en la nube
* Administres terminales distribuidos en diferentes ubicaciones

La nube de Getnet retransmite cada comando al terminal registrado, por lo que no se requiere nombre de host ni puerto.

---

## Antes de comenzar

Antes de conectar a través de la nube, asegúrate de que:

* El terminal POS esté encendido y configurado para el modo TPV Integrado
* La Connector App esté instalada y activa en el terminal
* El terminal esté registrado para la comunicación en la nube y los servicios de nube requeridos estén disponibles
* Hayas integrado la biblioteca del TPV Integrado para Android (AAR) o JavaScript

---

## Paso 1: Crear el Cloud Connector

Establece el canal en la nube con `CreateCloud`. No se requiere host ni puerto; el transporte en la nube enruta cada comando al terminal registrado.

```javascript
import { Connector } from 'pos-integrated-lib-javascript';

// Initialize the cloud connector
const connector = Connector.CreateCloud();
```

En este punto, el canal en la nube está inicializado, pero el terminal aún no ha sido validado.

<Callout type="note">

`CreateCloud` acepta un mapa `setupParams` opcional para aplicar la configuración del terminal. Revisa el flujo de reconexión antes de usarlo.

</Callout>

---

## Paso 2: Validar el terminal

Valida el terminal con el comando `Polling` antes de ejecutar cualquier operación:

```javascript
const pollingResult = await connector.PollingAsync();
```

Una respuesta exitosa (`Code = 0`, `Connected = true`) indica que el POS está conectado y listo. Procede solo si la respuesta de Polling indica que está listo.

---

## Paso 3: Ejecutar operaciones

Una vez validado, usa el Connector para ejecutar operaciones como:

* `Sale`
* `Refund`
* `GetReports`

Las operaciones se procesan secuencialmente: una a la vez por Connector.

---

## Paso 4: Cerrar la conexión

Después de finalizar todas las operaciones, cierra el Connector:

```javascript
await connector.Close();
```

El cierre libera la sesión en la nube de forma limpia. La instancia del Connector no se puede reutilizar después del cierre.

---

## Consideraciones de la conexión en la nube

* Las conexiones en la nube dependen de un servicio externo, así que planifica considerando la latencia
* Las interrupciones de red o de servicio pueden requerir una reconexión y un nuevo `Polling`
* Si usas un `friendly_name` personalizado, envíalo en cada conexión, porque la reconexión restablece la configuración del terminal
* `CreateCloud` está disponible en las bibliotecas de Kotlin y JavaScript/TypeScript

---

## Siguientes pasos

* [Modelos de conexión](/es/integrated-pos/first-steps-pos/connection-models) — Comparación de los modos SDK (USB / HTTP) y Cloud2Cloud.
* [Connector y flujos de comunicación](/es/integrated-pos/core-concepts-pos/connector-communication-flows) — Regla del ciclo de vida y de ejecución secuencial.
* [Polling y reconexión](/es/integrated-pos/core-concepts-pos/polling-reconnection) — Cuándo hacer polling y cómo funciona la reconexión.
* [Referencia de métodos y parámetros](/es/integrated-pos/reference/methods-parameters) — Parámetros de CreateCloud y ejemplos de código.