# Conectando via Nuvem (CreateCloud)

Este guia explica como conectar um terminal POS Integrado remotamente, pela nuvem da Getnet, usando `CreateCloud`.

---

## Quando usar a conexão Cloud2Cloud

Use uma conexão Cloud2Cloud quando:

* O terminal for remoto e não estiver acessível na sua rede local
* Seu sistema de automação funcionar como um serviço de backend ou de nuvem
* Você gerenciar terminais distribuídos em locais diferentes

A nuvem da Getnet encaminha cada comando ao terminal registrado, então não é necessário informar hostname nem porta.

---

## Antes de começar

Antes de conectar pela nuvem, confirme que:

* O terminal POS está ligado e configurado para o modo POS Integrado
* O Connector App está instalado e ativo no terminal
* O terminal está registrado para comunicação em nuvem e os serviços de nuvem necessários estão disponíveis
* Você integrou a biblioteca do POS Integrado para Android (AAR) ou JavaScript

---

## Passo 1: Criar o Cloud Connector

Estabeleça o canal de nuvem com `CreateCloud`. Não é necessário informar host nem porta; o transporte de nuvem roteia cada comando ao terminal registrado.

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

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

Neste ponto, o canal de nuvem está inicializado, mas o terminal ainda não foi validado.

<Callout type="note">

`CreateCloud` aceita um mapa `setupParams` opcional para aplicar a configuração do terminal. Verifique o fluxo de reconexão antes de usá-lo.

</Callout>

---

## Passo 2: Validar o terminal

Valide o terminal usando o comando `Polling` antes de executar qualquer operação:

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

Uma resposta bem-sucedida (`Code = 0`, `Connected = true`) indica que o POS está conectado e pronto. Prossiga apenas se a resposta do Polling indicar prontidão.

---

## Passo 3: Executar operações

Uma vez validado, use o Connector para executar operações como:

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

As operações são processadas sequencialmente — uma por vez em cada Connector.

---

## Passo 4: Fechar a conexão

Após finalizar todas as operações, feche o Connector:

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

O fechamento libera a sessão de nuvem de forma limpa. A instância do Connector não pode ser reutilizada após o fechamento.

---

## Considerações sobre a conexão em nuvem

* As conexões em nuvem dependem de um serviço externo, então planeje a latência
* Interrupções de rede ou de serviço podem exigir reconexão e um novo `Polling`
* Se você usar um `friendly_name` personalizado, envie-o em toda conexão, porque a reconexão redefine a configuração do terminal
* `CreateCloud` está disponível nas bibliotecas Kotlin e JavaScript/TypeScript

---

## Próximos passos

* [Modelos de Conexão](/pt/integrated-pos/first-steps-pos/connection-models) — Comparação entre os modos SDK (USB / HTTP) e Cloud2Cloud.
* [Connector e Fluxos de Comunicação](/pt/integrated-pos/core-concepts-pos/connector-communication-flows) — Ciclo de vida e regra de execução sequencial.
* [Polling e reconexão](/pt/integrated-pos/core-concepts-pos/polling-reconnection) — Quando fazer polling e como funciona a reconexão.
* [Referência de Métodos e Parâmetros](/pt/integrated-pos/reference/methods-parameters) — Parâmetros do CreateCloud e exemplos de código.