# Início rápido

Este tutorial leva você do SDK inicializado até a sua primeira venda no terminal.

## Antes de começar

Conclua os [Pré-requisitos](https://docs.globalgetnet.com/pt/products/in-store-payments/getnet-toolbox?doc=sdk-wl-prerequisites) e o guia [Adicione o SDK ao seu projeto](/pt/getnet-toolbox/sdk-white-label/first-steps-sdk/add-the-sdk).

## Passo 1: Inicialize o SDK

Inicialize o SDK uma única vez, durante a inicialização do seu aplicativo, com `ApoloSdk.Builder`. A chamada `build()` inicia o warm-up, que carrega a configuração do terminal e autentica nos serviços de pagamento.

```kotlin
ApoloSdk.Builder(applicationContext)
    .setCredentials(
        clientId = "your_client_id",
        clientSecret = "your_client_secret",
        terminalCode = "your_terminal_code",
        partnerName = "your_partner_name",
        partnerPackageName = "com.yourcompany.app",
    )
    .setOnWarmUpStatus { status ->
        when (status) {
            WarmUpStatus.Loading -> { /* keep the UI in a waiting state */ }
            WarmUpStatus.Success -> { /* the SDK is ready to operate */ }
            is WarmUpStatus.Failure -> { /* show the cause; recover with shutdown() + build() */ }
        }
    }
    .build()
```

Aguarde `WarmUpStatus.Success` antes de iniciar qualquer operação. Um `Failure` traz a causa — por exemplo, um `401` de credenciais inválidas. Para se recuperar, chame `ApoloSdk.shutdown()` e depois `build()` novamente.

## Passo 2: Obtenha o cliente

Depois de um warm-up bem-sucedido, obtenha o cliente inicializado:

```kotlin
val apolo = ApoloSdk.getClient()
```

## Passo 3: Execute sua primeira venda

Inicie uma venda direta no crédito com um valor fixo em centavos. O terminal conduz a captura do cartão, a senha e a confirmação, e o resultado chega no callback.

```kotlin
apolo.initSale(
    context = activity,
    saleSetup = BrSaleSetup.Credit(amountInCents = 1000L), // R$ 10.00
    onPaymentResult = { result ->
        // result.result == "00" indicates an approved transaction
    },
)
```

## Verifique a integração

| Verificação | O que esperar |
| :--- | :--- |
| Sincronização do Gradle | Conclui sem erros de JDK. |
| Dependência | O SDK é resolvido de `brazil-hml` no build type `debug`. |
| Inicialização | O `setOnWarmUpStatus` emite `WarmUpStatus.Success`. |
| Acesso ao cliente | Após o warm-up, `ApoloSdk.getClient()` retorna o cliente sem lançar exceção. |

## Próximos passos

* [Processe uma venda](/pt/getnet-toolbox/sdk-white-label/how-to-guides-sdk/process-a-sale) — todos os meios de pagamento e modalidades.
* [Processe um estorno](/pt/getnet-toolbox/sdk-white-label/how-to-guides-sdk/process-a-refund) — reverta uma transação aprovada.
* [Referência de inicialização](/pt/getnet-toolbox/sdk-white-label/reference-sdk/initialization) — o conjunto completo de opções do Builder.