# Verifica la conectividad del terminal (Polling)

Esta guía te muestra cómo verificar si la Getnet Payment App está conectada y lista para recibir comandos. La operación de Polling comprueba la conectividad y confirma que el terminal está listo para procesar nuevas solicitudes.

## Antes de comenzar

Antes de comenzar, asegúrate de contar con lo siguiente:

* Getnet Payment App instalada en el terminal Android
* Tu aplicación configurada para manejar Android Intents
* Conocimientos básicos del modelo de integración App2App

> **Recomendación**: Ejecuta una solicitud de Polling como paso inicial antes de cualquier operación. Así confirmas que el terminal está listo y no está procesando otra transacción.

## Paso 1: Envía la solicitud de polling

Para verificar la conectividad del terminal, crea un Intent con el URI de Polling y envíalo a la Getnet Payment App.

```kotlin
private val POLLING_REQUEST_CODE = 1001

fun checkTerminalStatus() {
    val intent = Intent(Intent.ACTION_VIEW, Uri.parse("getnet://payment/v1/polling"))
    startActivityForResult(intent, POLLING_REQUEST_CODE)
}
```

El deeplink de Polling no requiere parámetros. El terminal responde de inmediato con su estado actual.

## Paso 2: Procesa la respuesta

Captura y procesa la respuesta que devuelve la Getnet Payment App en el método `onActivityResult`.

```kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    
    if (requestCode == POLLING_REQUEST_CODE && resultCode == RESULT_OK) {
        val result = data?.extras?.getString("result")
        val resultDetails = data?.extras?.getString("resultDetails")
        
        when (result) {
            "0" -> {
                // Terminal is ready
                Log.d("Polling", "Terminal ready: $resultDetails")
                // Proceed with your operation
            }
            else -> {
                // Terminal is not ready or error occurred
                Log.e("Polling", "Terminal not ready: $resultDetails")
                // Handle error appropriately
            }
        }
    }
}
```

**Parámetros de respuesta**

| Parámetro | Tipo | Descripción |
| :---- | :---- | :---- |
| result | String | Código de estado: `"0"` indica que el terminal está listo |
| resultDetails | String | Mensaje detallado sobre el estado del terminal |

Ejemplo de respuesta cuando el terminal está listo:

```json
{
  "result": "0",
  "resultDetails": "success"
}
```

## Siguientes pasos

Una vez que verificaste que el terminal está listo mediante Polling, puedes continuar con:

* [Crea un pago en un solo paso](/es/app2app/payment-guides-a2a/create-single-step-payment)
* [Crea un pago en cuotas](/es/app2app/payment-guides-a2a/create-installments-and-plan)
* [Procesa una devolución](/es/app2app/post-payment-a2a/refund-payment)