# Inicio rápido

Este tutorial te lleva desde un SDK inicializado hasta tu primera venta en el terminal.

## Antes de comenzar

Completa los [Requisitos previos](https://docs.globalgetnet.com/es/products/in-store-payments/getnet-toolbox?doc=sdk-wl-prerequisites) y [Agrega el SDK a tu proyecto](/es/getnet-toolbox/sdk-white-label/first-steps-sdk/add-the-sdk).

## Paso 1: Inicializa el SDK

Inicializa el SDK una sola vez, durante el arranque de tu aplicación, con `ApoloSdk.Builder`. La llamada a `build()` inicia el warm-up, que carga la configuración del terminal y se autentica con los servicios de pago.

```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()
```

Espera `WarmUpStatus.Success` antes de iniciar cualquier operación. Un `Failure` trae su causa — por ejemplo, un `401` por credenciales inválidas. Para recuperarte, llama a `ApoloSdk.shutdown()` y luego a `build()` otra vez.

## Paso 2: Obtén el cliente

Después de un warm-up exitoso, obtén el cliente inicializado:

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

## Paso 3: Ejecuta tu primera venta

Inicia una venta de crédito directa por un monto fijo en centavos. El terminal conduce la captura de la tarjeta, el PIN y la confirmación, y el resultado llega en el callback.

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

## Verifica la integración

| Verificación | Qué esperar |
| :--- | :--- |
| Sincronización de Gradle | Se completa sin errores de JDK. |
| Dependencia | El SDK se resuelve desde `brazil-hml` en el tipo de build `debug`. |
| Inicialización | `setOnWarmUpStatus` emite `WarmUpStatus.Success`. |
| Acceso al cliente | Después del warm-up, `ApoloSdk.getClient()` devuelve el cliente sin lanzar excepciones. |

## Siguientes pasos

* [Procesa una venta](/es/getnet-toolbox/sdk-white-label/how-to-guides-sdk/process-a-sale) — todos los métodos de pago y modos.
* [Procesa un reembolso](/es/getnet-toolbox/sdk-white-label/how-to-guides-sdk/process-a-refund) — revierte una transacción aprobada.
* [Referencia de inicialización](/es/getnet-toolbox/sdk-white-label/reference-sdk/initialization) — el conjunto completo de opciones del Builder.