# Referencia de inicialización

Referencia de `ApoloSdk.Builder`, de la configuración de credenciales y de sub-merchant, y de los estados del warm-up. Para un recorrido paso a paso, consulta [Inicio rápido](https://docs.globalgetnet.com/es/products/in-store-payments/getnet-toolbox?doc=sdk-wl-quick-start).

## Métodos del Builder

| Método | Obligatorio | Descripción |
| :--- | :--- | :--- |
| `setCredentials(...)` | Sí | Credenciales de onboarding e identificadores del integrador. Sin ellas, el warm-up falla. |
| `setSubMerchantInformation(config)` | No | Datos del sub-merchant, enviados en cada solicitud de pago. Depende de tu modelo de negocio. |
| `setOnWarmUpStatus(callback)` | No (recomendado) | El canal para seguir el progreso del warm-up y reaccionar a las fallas. |
| `build()` | — | Devuelve el cliente `Apolo` e inicia el warm-up. Llámalo una sola vez por ciclo de vida de la aplicación. |

## setCredentials

| Parámetro | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `clientId` | `String` | Sí | Identificador de cliente para la autenticación con el servicio de pagos. |
| `clientSecret` | `String` | Sí | Secreto de cliente asociado al `clientId`. |
| `terminalCode` | `String` | Sí | Código del terminal que ejecuta el SDK. |
| `partnerName` | `String` | Sí | Nombre de la aplicación integradora. |
| `partnerPackageName` | `String` | Sí | Nombre del paquete Android de la aplicación integradora. Debe coincidir con el paquete real; si no, la autenticación falla. |

## SubMerchantConfig

Todos los campos son obligatorios, excepto `url`. Omitir un campo obligatorio genera un error de compilación.

| Campo | Tipo | Obligatorio | Descripción |
| :--- | :--- | :--- | :--- |
| `subMerchantId` | `String` | Sí | Identificador del sub-merchant. |
| `city` | `String` | Sí | Ciudad del sub-merchant. |
| `state` | `String` | Sí | Estado (UF). |
| `postalCode` | `String` | Sí | Código postal (CEP). |
| `taxId` | `String` | Sí | Número de identificación fiscal — CNPJ o CPF. |
| `street` | `String` | Sí | Dirección de la calle. |
| `phone` | `String` | Sí | Teléfono de contacto. |
| `corporateName` | `String` | Sí | Razón social. |
| `url` | `String?` | No | Su valor predeterminado es `null`. |

## Estados del warm-up

`setOnWarmUpStatus` informa el progreso del warm-up:

| Estado | Significado | Acción recomendada |
| :--- | :--- | :--- |
| `Loading` | Preparación interna en curso. | Mantén la UI en estado de espera; no llames a operaciones del SDK. |
| `Success` | El SDK está listo para operar. | Libera las operaciones del SDK. |
| `Failure(cause)` | La preparación no pudo completarse. | Revisa `cause`, muestra un mensaje y reintenta. |

## Ciclo de vida

| Símbolo | Comportamiento |
| :--- | :--- |
| `ApoloSdk.getClient()` | Devuelve el cliente `Apolo` actual. Lanza `IllegalStateException` si lo llamas antes de un `build()` exitoso. |
| `ApoloSdk.shutdown()` | Finaliza la sesión actual para que puedas reconstruirla. |

Para recuperarte de `Failure`, llama a `shutdown()` y después configura y ejecuta `build()` otra vez. No llames a `build()` más de una vez sin un `shutdown()` previo. Obtén siempre el cliente con `getClient()`, en lugar de conservar la referencia que devuelve `build()`.

Los códigos de error del warm-up que se informan mediante `Failure(cause)` — condiciones de red, `401`, `404`, `422` — están en la sección de warm-up de [Referencia de códigos de error](/es/getnet-toolbox/sdk-white-label/reference-sdk/error-codes).