# Referencia de métodos del SDK

Esta referencia documenta los gestores (managers), métodos y objetos de datos públicos disponibles en el Get Mini Android SDK.

---

## 1. Autenticación y configuración de comercio
Accede a las funciones a través de `RedCLSMerchantConfigurationManager`. La mayoría de las operaciones siguen un patrón: instanciar un objeto de datos para la entrada y recibir un objeto de respuesta que contiene los resultados y un indicador `Code` (0 para éxito).

### Login estándar y transparente
Métodos para autenticar al usuario o registrar el dispositivo para el acceso sin contraseña.

| Método | Parámetros / Entrada | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| `login()` | `RedCLSLoginData` | `RedCLSLoginSsmResponse` | Validación completa de credenciales. |
| `autoLogin()` | `Context`, `RedCLSLoginTransAutoLoginData`| `RedCLSLoginTransLoginResponse` | Registra el dispositivo para el acceso sin contraseña. |
| `loginWithoutUser()`| `Context` | `RedCLSLoginTransLoginResponse` | Inicio de sesión utilizando el token del dispositivo registrado. |
| `addTerminal()` | `Context`, `RedCLSLoginTransPetNuevoTerminal`| `ResponseData` | Vincula un nuevo terminal al dispositivo. |
| `disableLoginTrans()`| `Context` | `void` | Revoca el registro del dispositivo. |

### Cuenta y perfiles
Métodos para consultas de perfil y mantenimiento de seguridad.

| Método | Parámetros / Entrada | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| `changePass()` | `RedCLSChangePassData` | `RedCLSChangePassSsmResponse` | Actualiza la contraseña del comercio. |
| `peticionPerfilEntidad()`| `RedCLSTerminalData` | `RedCLSPerfilResponse` | Consulta las funcionalidades habilitadas en el perfil. |
| `recordarPassword()` | `Context`, `user: String` | `Boolean` | Activa un correo electrónico de recuperación. |

---

## 2. Modelos de datos compartidos
Estos objetos principales se reutilizan en múltiples gestores para identificar al comercio o representar una transacción completada.

### RedCLSTerminalData (token de identificación)
El token de identificación fundamental requerido por cada gestor de pagos y consultas en el SDK.

| Campo | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `MerchantName` | `String` | Sí | Nombre comercial completo. |
| `Fuc` | `String` | Sí | Código de comercio único (MCC/FUC). Consta de 9 dígitos. |
| `Terminal` | `String` | Sí | Número de identificación de terminal único. |
| `NSerie` | `String` | Sí | Número de serie del hardware del PIN pad. |
| `Type` | `String` | Sí | Clasificación ("1" para Virtual, "2" para PC). |
| `Csb` | `String` | Sí | Código de entidad bancaria. |
| `Currency` | `Integer` | Sí | Código numérico ISO de la moneda (ej. 978). |
| `CurrencyCode` | `String` | Sí | Código alfanumérico ISO de la moneda ("EUR"). |

### RedCLSTransactionData (registro de transacción)
El modelo principal que representa una transacción completada, conteniendo detalles del host y literales del recibo. Se utiliza para firmas, devoluciones y resultados de consultas.

| Campo | Tipo | Descripción |
| :---- | :---- | :---- |
| `type` | `String` | Tipo de operativa (ej. "PAGO", "PREAUTORIZACIÓN"). |
| `card` | `String` | Número de tarjeta enmascarado (o `panToken`) para el recibo del comercio. |
| `cardClient` | `String` | Número de tarjeta enmascarado para la copia del cliente del recibo. |
| `Literals` | `List` | Líneas de texto plano para la copia del cliente del recibo. |
| `LiteralsComercio`| `List` | Líneas de texto plano para la copia del comercio del recibo. |
| `identifierRTS` | `String` | ID de transacción único requerido para devoluciones y consultas. |
| `autorizationNumber` | `String` | Código de aprobación de autorización generado por el host. |
| `responseCode` | `String` | Código de respuesta estándar ("00" para aprobación). |
| `tokenRecurrente` | `String` | Token de pago recurrente (si se solicitó). |

---

## 3. Conectividad de hardware y estado de disponibilidad
Gestiona el vínculo entre el dispositivo Android y el PIN pad a través de `RedCLSPinPadManager`.

| Método | Parámetros | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| `connectWithPinPad()` | Ninguno | `void` | Inicia el vínculo Bluetooth/USB. |
| `inicializarPinpad()` | Ninguno | `RedCLSInitPinPadResponse` | Sincroniza el terminal y verifica la disponibilidad. |
| `isPinPadConnected()` | Ninguno | `Boolean` | Verifica el estado actual de la conexión. |
| `cerrarConexiones()` | Ninguno | `RedCLSCloseConnectionsResponse`| Realiza una limpieza de conexiones/desconexión forzada. |
| `getNumberOfPendingOfflineOperations()`| `Context` | `int` | Devuelve el recuento de pagos offline almacenados. |

---

## 4. Operaciones de pago (tarjeta presente)
Operaciones financieras principales gestionadas por `RedCLSPinPadManager`. Estos métodos interactúan con el hardware para leer tarjetas y procesar peticiones al host.

| Método | Parámetros | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| `operativaConTarjeta()` | `RedCLSOperativeWithCardData`| `RedCLSOperativeWithCardResponse`| Ventas, Preautorizaciones y Cuotas (Installments). |
| `pagoConReferencia()` | `ref: String`, `amount: double`, `tid: String?` | `RedCLSOperativeWithCardResponse`| Pagos recurrentes tokenizados. |
| `devolucionSinOriginal()`| `amount: Double`, `invoice: String` | `RedCLSRefundResponse` | Devolución con tarjeta presente (Manual/Banda). |
| `lecturaTarjetaPrivada()`| Ninguno | `RedCLSReadPrivateCardResponse` | Lee tarjetas privadas de combustible/propietarias. |

### Jerarquía de respuesta de pago
El método `operativaConTarjeta` devuelve una estructura anidada para gestionar tanto errores técnicos como resultados de la transacción.

#### RedCLSOperativeWithCardResponse (contenedor principal)
| Campo | Tipo | Descripción |
| :---- | :---- | :---- |
| `status` | `int` | Indicador de éxito (0 para OK, otros para error). |
| `Response` | `String` | Respuesta del servidor o detalles del error. |
| `msgKO` | `String` | Mensaje de error para el usuario. |
| `stackTraceKO` | `String` | Traza técnica del error para depuración. |
| `transactionData`| `RedCLSTransactionData`| [Detalles de la transacción](#redclstransactiondata-registro-de-transacción) si el status es OK. |

---

## 5. Modelos de datos detallados
Definiciones detalladas de los campos para los objetos de entrada y salida descritos anteriormente.

### Objetos de autenticación

#### RedCLSLoginData (entrada)
| Campo | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `user` | `String` | Sí | Nombre de usuario único del comercio. |
| `pass` | `String` | Sí | Contraseña de la cuenta. |

#### RedCLSLoginSsmResponse (salida)
| Campo | Tipo | Descripción |
| :---- | :---- | :---- |
| `merchantList` | `List` | Comercios autorizados y sus terminales (`RedCLSMerchantData`). |
| `daysExpire` | `Integer`| Días hasta la expiración de la contraseña. |
| `Code` | `Integer`| Código de resultado (0: Éxito). |
| `Desc` | `String` | Descripción del resultado. |

#### RedCLSLoginTransAutoLoginData (entrada)
| Campo | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `merchantTerminals`| `List` | Sí | Terminales a autorizar para el "Login Transparente". |
| `loginData` | `RedCLSLoginData` | Sí | Credenciales del inicio de sesión inicial. |
| `loginResponse` | `RedCLSLoginSsmResponse` | Sí | Respuesta del inicio de sesión inicial. |

#### RedCLSChangePassData (entrada)
| Campo | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `Oldpass` | `String` | Sí | Contraseña actual. |
| `Newpass` | `String` | Sí | Nueva contraseña (debe cumplir reglas de seguridad). |

#### RedCLSPerfilResponse (salida)
| Campo | Tipo | Descripción |
| :---- | :---- | :---- |
| `esAlipay` | `Boolean` | Soporte de Alipay habilitado. |
| `permitePreauto` | `Boolean` | Preautorizaciones habilitadas. |
| `permiteDevolSinOrigin`| `Boolean` | Devoluciones sin ID original habilitadas. |
| `permiteDCC` | `Boolean` | Conversión Dinámica de Moneda (DCC) habilitada. |

---

## 6. Flujos de pago avanzados
Gestores especializados para tipos de pago específicos o acciones post-autorización.

### Post-autorización y devoluciones
Gestionado por `RedCLSRefundManager` y `RedCLSPreautorizationManager`.

| Gestor | Método | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| **Devolución** | `peticionDevolucion()` | `RedCLSRefundResponse` | Devolución estándar solo por red. |
| **Preautorización** | `peticionConfirmacion()` | `RedCLSConfirmationResponse`| Captura (cierra) una preautorización. |
| **Preautorización** | `peticionAnulacionPreautorizacion()`| `String` | Cancela una preautorización abierta. |
| **Preautorización** | `peticionReemplazoPreautorizacion()`| `String` | Actualiza el importe de una preautorización. |

#### RedCLSRefundData (entrada)
Constructor obligatorio: `RedCLSRefundData(terminalData, comercioOriginal, pedidoOriginal, importeDevolucion, fechaOriginal, numAutorizacion)`.

| Campo | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `terminalData` | `RedCLSTerminalData` | Sí | Token del terminal autorizado. |
| `comercioOriginal` | `String` | Sí | FUC de la venta original. |
| `pedidoOriginal` | `String` | Sí | Número de pedido original. |
| `importeDevolucion`| `String` | Sí | Importe como cadena (ej. "1.00"). |
| `fechaOriginal` | `String` | Sí | Fecha en formato `yyyyMMdd`. |
| `numAutorizacion` | `String` | Sí | Código de aprobación original. |

### Métodos de pago especializados
Gestores para esquemas de pago alternativos y documentación digital.

| Gestor | Método | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| **RedCLSAlipayManager** | `peticionAlipay()` | `RedCLSOperativeWithCardResponse`| Procesa Alipay basado en QR. |
| **RedCLSSignatureManager** | `envioFirmaDigitalizada()` | `RedCLSSignatureResponse` | Sube la imagen de la firma capturada. |

#### RedCLSSignatureData (entrada)
| Campo | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `terminalData` | `RedCLSTerminalData` | Sí | Token del terminal autorizado. |
| `transactionData`| `RedCLSTransactionData` | Sí | La transacción a firmar. |
| `Signature` | `ByteArray`| Sí | Imagen de la firma (máx. 4999 bytes). |
| `Format` | `Int` | Sí | Formato de imagen (use `RedCLSConstantes.FORMAT_SIGNATURE_*`). |

---

## 7. Historial de transacciones y consultas
Accede a datos históricos y totales de sesión a través de `RedCLSQueryManager`.

| Método | Parámetros | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| `peticionConsultaFecha()` | `Context`, `RedCLSQueryData` | `RedCLSDateQueryResponse` | Lista operaciones por rango de fechas. |
| `peticionConsultaRts()` | `Context`, `RedCLSQueryData` | `RedCLSRtsQueryResponse` | Detalle de una transacción específica. |
| `peticionConsultaRangoImportes()`| `Context`, `RedCLSQueryData`| `RedCLSDateQueryResponse`| Filtrar por importe. |
| `queryTicket()` | `Context`, `RedCLSQueryTicketCloudData`| `RedCLSQueryTicketCloudResponse`| Literales detallados del recibo. |
| `peticionConsultaTotalesDia()` | `Context`, `RedCLSQueryData` | `RedCLSTotalsQueryResponse` | Consulta de totales o cierre del día. |
| `cierreSesion()` | `RedCLSTerminalData` | `RedCLSCloseSessionResponse` | Totales diarios y recuento de cierres. |

#### RedCLSQueryData (filtros de entrada)
| Campo | Tipo | Obligatorio por Defecto | Descripción |
| :---- | :---- | :---- | :---- |
| `terminalData`| `RedCLSTerminalData` | Sí | Token del terminal autorizado. |
| `startDate` | `String` | Sí | `yyyy-MM-dd HH:mm:ss` |
| `endDate` | `String` | Sí | `yyyy-MM-dd HH:mm:ss` |
| `idRts` | `String` | No | Coincidencia con identificador RTS específico. |
| `operationType` | `String` | No | Filtrar por tipo (PAGO, DEVOLUCION). |

---

## 8. Terminal virtual (Paygold y Bizum)
Enlaces de pago remotos y operaciones con monederos móviles a través de `RedCLSVirtualManager`.

| Método | Parámetros | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| `peticionPaygold()` | `RedCLSVirtualPaymentData` | `RedCLSVirtualPaymentResponse`| Envía enlace de pago (SMS/Email). |
| `peticionDevolucionVirtual()` | `RedCLSVirtualRefundData` | `RedCLSVirtualPaymentResponse`| Devolución para pagos virtuales. |
| `peticionConsultaFechaTPV_Virtual()`| `Context`, `RedCLSVirtualQueryData`| `RedCLSDateVirtualQueryResponse` | Historial virtual por fecha. |
| `queryRTP()` | `RedCLSVirtualPaymentData` | `RedCLSBizumRtpResponse` | Verifica disponibilidad de Bizum. |
| `rtpRestPayment()` | `RedCLSVirtualPaymentData` | `RedCLSVirtualPaymentResponse`| Solicita pago por Bizum. |

#### RedCLSVirtualPaymentData (entrada)
| Campo | Tipo | Obligatorio | Descripción |
| :---- | :---- | :---- | :---- |
| `Amount` | `Double` | Sí | Importe del pago. |
| `Order` | `String` | Sí | Referencia de pedido alfanumérica. |
| `description` | `String` | Sí | Texto identificativo. |
| `phone` | `String` | No | Móvil para Bizum/SMS. |
| `eMail` | `String` | No | Email para Paygold. |

---

## 9. Utilidades
Mantenimiento general del SDK y depuración.

| Gestor/Clase | Método | Tipo de Retorno | Descripción |
| :---- | :---- | :---- | :---- |
| **Logger** | `activateFileLogs()` | `boolean` | Habilita trazas de archivos de depuración locales. |

---

## Recursos relacionados
* [Inicializar el SDK](/es/get-mini/android-sdk/guides/initialize-sdk-lifecycle)
* [Crear una venta](/es/get-mini/android-sdk/guides/process-single-step-payments)
* [Gestión de recibos de transacciones](/es/get-mini/android-sdk/guides/send-digital-receipts)