# Integración de la biblioteca JavaScript

Integra el TPV Integrado en tu aplicación usando nuestra biblioteca JavaScript.

## Entornos compatibles

Usa la biblioteca `pos-integrated-lib-javascript` en implementaciones del lado del servidor y del lado del cliente:

* ESM (ECMAScript Modules)
* CommonJS
* Entornos de navegador

## Instalación

El paquete es privado y no se publica en el registro público de npm. Instálalo desde el archivo `.tgz` local que proporciona Getnet:

```bash
npm install ./lib/pos-integrated-lib-javascript-<VERSION>.tgz
```

## Flujo de trabajo y ciclo de vida

Sigue el patrón estricto del ciclo de vida de conexión para garantizar una comunicación robusta con el terminal.

### Establecimiento de la conexión

Crea un connector con uno de los métodos de fábrica (`CreateHttp`, `CreateUsb` o `CreateCloud`). La creación es síncrona: devuelve el Connector directamente, no una Promise. Espera con `await` los métodos operativos asíncronos como `SaleAsync` o `GetInfoAsync`. Usa `CreateCloud` para llegar a un terminal remoto a través de la nube de Getnet, sin hostname ni puerto.

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

async function processPayment() {
    // Initialize the connector (synchronous — no await)
    const connector = Connector.CreateHttp('192.168.1.100', 8080);
    
    // Execute a sale or other operations...
}
```

### Cierre del connector (obligatorio)

Cierra el connector inmediatamente después de que finalicen tus operaciones o cuando termine el ciclo de vida de la aplicación. Liberar el connector libera los recursos del terminal TPV y garantiza que los siguientes intentos de conexión tengan éxito.

```javascript
// ...after operations complete
await connector.Close();
```

<Callout type="warning">

No llamar a `Close()` provoca fugas de estados de conexión en el dispositivo TPV, lo que causa un bloqueo de "Terminal Busy" para las solicitudes futuras.

</Callout>

## Siguientes pasos

* Ejecuta el flujo completo de principio a fin con la guía de [Inicio rápido](/es/integrated-pos/first-steps-pos/quickstart-integrated-pos).
* Consulta la firma y los parámetros de cada método en la [Referencia de métodos y parámetros](/es/integrated-pos/reference/methods-parameters).