# Verifique a conectividade do terminal (Polling)

Este guia mostra como verificar se o Getnet Payment App está conectado e pronto para receber comandos. A operação de Polling checa a conectividade e confirma que o terminal está pronto para processar novas requisições.

## Antes de começar

Antes de começar, confirme que você tem:

* Getnet Payment App instalado no terminal Android
* Sua aplicação configurada para tratar Android Intents
* Conhecimento básico do modelo de integração App2App

> **Recomendação**: execute uma requisição de Polling como primeiro passo antes de qualquer operação. Assim você garante que o terminal está pronto e não está processando outra transação.

## Passo 1: envie a requisição de Polling

Para verificar a conectividade do terminal, crie um Intent com a URI de Polling e envie para o 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)
}
```

O deeplink de Polling não exige nenhum parâmetro. O terminal responde imediatamente com o status atual.

## Passo 2: trate a resposta

Capture e processe a resposta retornada pelo Getnet Payment App no 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 resposta**

| Parâmetro | Tipo | Descrição |
| :---- | :---- | :---- |
| result | String | Código de status: `"0"` indica que o terminal está pronto |
| resultDetails | String | Mensagem detalhada sobre o status do terminal |

Exemplo de resposta quando o terminal está pronto:

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

## Próximos passos

Depois de confirmar que o terminal está pronto via Polling, você pode seguir para:

* [Crie um pagamento em etapa única](/pt/app2app/payment-guides-a2a/create-single-step-payment)
* [Crie um pagamento parcelado](/pt/app2app/payment-guides-a2a/create-installments-and-plan)
* [Processe um reembolso](/pt/app2app/post-payment-a2a/refund-payment)