# Referencia de clientes del SDK

Esta referencia asocia cada interfaz de cliente del SDK Demo App con la llamada al SDK que envuelve. Úsala para encontrar la llamada exacta de la capacidad que quieres integrar.

## Estructura de paquetes

La aplicación se divide en dos áreas claramente separadas. Solo la primera es material para tu integración.

| Capa | Paquete | Función |
| :--- | :--- | :--- |
| Clientes del SDK | `com.pagonxt.apolo.devkit.sdk` | Envoltorios ligeros que llaman al SDK — exactamente las llamadas que necesitas para integrar. |
| Componentes internos del demo app | `com.pagonxt.apolo.devkit.internal` | La aplicación de demostración en sí (interfaz, estado, almacenamiento, DI). Útil como inspiración, no necesaria para integrar el SDK. |

## Interfaces de cliente

Cada capacidad del SDK se expone mediante una interfaz pequeña en el paquete `sdk/`. Lo que importa para tu integración es el cuerpo de cada método del cliente, que contiene la llamada exacta al SDK.

| Interfaz del cliente | Responsabilidad del SDK | Llamada al SDK subyacente |
| :--- | :--- | :--- |
| `ISetupClient` | Ciclo de vida del SDK: `setup(…)`, `reinitialize(…)`, `shutdown()` | `ApoloSdk.Builder(…).build()` y `ApoloSdk.shutdown()` |
| `ISaleClient` | Iniciar un pago (predeterminado, solo importe o totalmente parametrizado) | `ApoloSdk.getClient().initSale(context, setup, onPaymentResult)` |
| `IRefundClient` | Reembolsar un pago (por id o mediante la pantalla del SDK) | `ApoloSdk.getClient().initRefund(context, refundData, onResult)` |
| `IPrinterClient` | Imprimir un `Bitmap` | `ApoloSdk.getClient().printBitmap(bitmap, onStatus)` |
| `INavCustomizationClient` | Insertar o reemplazar pantallas en el flujo del SDK | `ApoloSdk.getClient().customizeNavigation(config)` |
| `IPaymentTypesClient` | Consultar los tipos de pago habilitados para el terminal | `ApoloSdk.getClient().getAvailablePaymentTypes()` |

## Estructura de source sets

Las interfaces y las implementaciones específicas por país viven en source sets distintos.

| Ubicación | Contiene |
| :--- | :--- |
| `src/main/.../sdk/` | Las interfaces de cliente compartidas, más las implementaciones `ApoloPrinterClient` y `PaymentTypesClient`. |
| `src/brazil/.../sdk/Br*.kt` | Implementaciones de cliente específicas por país, enlazadas mediante un módulo de Koin. |

La inicialización es el único paso que toda integración debe hacer primero. En el demo app la controla `BrSetupClient`.

## Recursos relacionados

* [Inicio rápido](/es/getnet-toolbox/sdk-demo-app/first-steps-demo/quickstart) — pon la aplicación en marcha antes de rastrear sus llamadas.
* [Referencia de inicialización](/es/getnet-toolbox/sdk-white-label/reference-sdk/initialization) — el contrato del SDK detrás de `ISetupClient`.
* [Referencia de resultado de transacción](/es/getnet-toolbox/sdk-white-label/reference-sdk/transaction-result) — lo que devuelven `ISaleClient` e `IRefundClient`.