# Referência de inicialização

Referência do `ApoloSdk.Builder`, da configuração de credenciais e de sub-merchant e dos estados do warm-up. Para um passo a passo, consulte [Início rápido](https://docs.globalgetnet.com/pt/products/in-store-payments/getnet-toolbox?doc=sdk-wl-quick-start).

## Métodos do Builder

| Método | Obrigatório | Descrição |
| :--- | :--- | :--- |
| `setCredentials(...)` | Sim | Credenciais de onboarding e identificadores do integrador. Sem elas, o warm-up falha. |
| `setSubMerchantInformation(config)` | Não | Dados do sub-merchant, enviados em cada requisição de pagamento. Depende do seu modelo de negócio. |
| `setOnWarmUpStatus(callback)` | Não (recomendado) | O canal para acompanhar o progresso do warm-up e reagir a falhas. |
| `build()` | — | Retorna o cliente `Apolo` e inicia o warm-up. Chame uma vez por ciclo de vida da aplicação. |

## setCredentials

| Parâmetro | Tipo | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `clientId` | `String` | Sim | Identificador do cliente para autenticação no serviço de pagamento. |
| `clientSecret` | `String` | Sim | Segredo do cliente associado ao `clientId`. |
| `terminalCode` | `String` | Sim | Código do terminal que executa o SDK. |
| `partnerName` | `String` | Sim | Nome da aplicação integradora. |
| `partnerPackageName` | `String` | Sim | Nome do pacote Android da aplicação integradora. Precisa corresponder ao pacote real, ou a autenticação falha. |

## SubMerchantConfig

Todos os campos são obrigatórios, exceto `url`. Omitir um campo obrigatório gera erro em tempo de compilação.

| Campo | Tipo | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `subMerchantId` | `String` | Sim | Identificador do sub-merchant. |
| `city` | `String` | Sim | Cidade do sub-merchant. |
| `state` | `String` | Sim | Estado (UF). |
| `postalCode` | `String` | Sim | Código postal (CEP). |
| `taxId` | `String` | Sim | Número fiscal — CNPJ ou CPF. |
| `street` | `String` | Sim | Endereço (rua). |
| `phone` | `String` | Sim | Telefone de contato. |
| `corporateName` | `String` | Sim | Razão social. |
| `url` | `String?` | Não | Padrão: `null`. |

## Estados do warm-up

`setOnWarmUpStatus` informa o progresso do warm-up:

| Estado | Significado | Ação recomendada |
| :--- | :--- | :--- |
| `Loading` | Preparação interna em andamento. | Mantenha a interface em espera e não chame operações do SDK. |
| `Success` | O SDK está pronto para operar. | Libere as operações do SDK. |
| `Failure(cause)` | A preparação não foi concluída. | Inspecione `cause`, exiba uma mensagem e tente novamente. |

## Ciclo de vida

| Símbolo | Comportamento |
| :--- | :--- |
| `ApoloSdk.getClient()` | Retorna o cliente `Apolo` atual. Lança `IllegalStateException` se for chamado antes de um `build()` bem-sucedido. |
| `ApoloSdk.shutdown()` | Encerra a sessão atual para que ela possa ser reconstruída. |

Para recuperar de um `Failure`, chame `shutdown()` e depois configure e execute `build()` novamente. Não chame `build()` mais de uma vez sem um `shutdown()` anterior. Sempre obtenha o cliente por meio de `getClient()`, em vez de guardar a referência retornada por `build()`.

Para os códigos de erro de warm-up informados por `Failure(cause)` — condições de rede, `401`, `404`, `422` — consulte a seção de warm-up na [Referência de códigos de erro](/pt/getnet-toolbox/sdk-white-label/reference-sdk/error-codes).